Python and Unix for Bioinformaticians - #27610
10 points course, Spring 2016
IMPORTANT - do preparation for the course.
DTU's Studies Handbook about #27610
Time: Course starts January 30, 2016 and runs Mondays 13.00 - 17.00 and Thursdays 9.00-12.00
Module: F2-A and F2-B
Place: Aud. 142/148 in building 210, both days
Evaluation form: Exercises during the course 25%.
Project during the course 25%. 4 hour written examination 50%, no books or notes allowed,
but some pages of abbreviated python will be available.
Exam date: 9.00 - 13.00, May 16, 2017
Exam location: Building 308, room 127, 117, 109, and 101
Teacher: Peter Wad Sackett, firstname.lastname@example.org
Signing up: "Normal" DTU students sign up the normal way.
other students check here,
and/or ask the
Signing up for a course has nothing to do with the teacher and everything to do with the DTU study administration.
Tools: See top link: Preparation for the course. A more general guide is
Optional software for the course for your own computer.
MobaXterm or VirtualBox with a linux installation is strongly recommended, if you dont have a Mac or Linux already.
Textbooks: There are no text books for the course. I will make do with powerpoints and references to online resources.
You can find the material under the individual lessons.
Some online Unix/Python resources:
Online tutorial on unix
Python for Non-Programmers
- Clean Code by Lukasz Dynowski. An amazing read that is mandatory. Read it once around lesson 4 and once more around lesson 8.
- Coursera course: Programming for Everybody is a beginner course in Python. Everyone who wants
to prepare for course 27610 can start here. Just get far enough so you understand what programming is and how it works. That will benefit you a lot as a newbie.
- Learning Python, 5th ed. by Mark Lutz (O'Reilly) ISBN: 978-1-449-35573-9
This is the best Python book I have read. It covers all the basics and then some. All from the perspective of being a novice programmer. However, it is a brick; big, heavy and unwieldy. If you only want one Python book, then this should be the one. The course will not be taught from this book, but it could be good to have if you really want to do something with Python. Again, you can always find info on the net.
Official Python 3 tutorial
Python 3 reference manual
Python 3 standard library
A fun read: Top 12 reasons you know you are a Big Data biologist
Lesson for the beginner: How programming and your life is similar
What most schools don't teach: But you are taught in this course
Go to China for Msc: powerpoint and document
How the exam is conducted
Exercises has to uploaded to "DTU inside - Assignments" Saturday before the next lesson on
Monday or before. Word or pdf documents are NOT accepted - use only simple .txt or .py
As stated the exercises count as a part of the final evaluation.
Exercises which are given in after the solutions are published on CampusNet,
are voided and will not count in the evaulation, no matter the reason for being late.
The difficulty of the exam is such that in order to be able
to pass you probably have to get a average score of 70% or better in the exercises.
The course is a hands-on course in programming with a focus on "Learning by doing".
So if you are not doing (exercises) you are not learning anything and can not
pass the exam.
Purple exercises has to be done in pseudo code before you start
implementing them in Python. The pseudo code is part of the hand-in for these exercises.
So - make first pseudocode AND then real python programs for purple exercises.
Red exercises are part of the peer evaluation. They must be uploaded
BUT they are also to be handed in together with the other exercises.
Exercise Delivery Status for Course Participants
Solutions to exercises
Solutions to each week's exercises are published before the next
lesson on DTU inside (file sharing for this course).
Every week you should upload your solution to one of the weeks exercises. The exercise is the
red one - there can be no mistake. No red excercise - no upload.
In the following week the class will
vote for the best solution. Both the upload and the voting
are anonymous but tracked.
Doing this is actually one of the learning objectives of the course; Learning to read other peoples code,
and write good understandable code yourself.
See the peer evaluation page.
Reading ahead and using not yet covered techniques
Sometimes people read ahead in the text book or the net and discover some techniques,
that makes solving the exercises much easier.
While you should learn whatever you can, then there is a reason for why the exercises
are as they are, and the learning material (powerpoint) is a it is. A very important
part of the course is to learn how program, how to think "programming", how to analyse
a problem, how to formulate a strategy/workflow/algorithm that will solve the problem.
If you just pull a magic rabbit out of the hat, then you are not learning that, and
you will be doing yourself an enormous disservice.
By not thinking - structuring the code more logically - gaining insight in the natural
flow of problem solving, you will lack those skills - that mindset - when you really
need it to solve more difficult exercises and/or problems.
Python is full of rabbits, so it is rather tempting, but damaging to use them during the course.
You will have plenty of opportunity later in the project to show techniques and skills.
Everybody has to do an individual project during the course.
See the list here.
and who should make cake.
- 30/01 UNIX
- 02/02 Python Basics
03/02 Voluntary extra time for exercises and questions, 10.30 - 14.30, aud 062, build 208
- 06/02 Python Simple file reading
Sule, Alexander Kruh??ffer, Line Andresen
09/02 Pseudocode and comments - Powerpoint here
- 13/02 Python I/O
Sanne, Annie, Anna Henius
16/02 Continuing lesson
- 20/02 Exceptions and Bug Handling
Alexander Pil, Taner, Leo
23/02 Stateful parsing
- 27/02 Lists/Sequences
Katrine, Joachim, Niels
02/03 Midterm evaluation, part 1
- 06/03 Pattern Matching and Regular Expressions
Natasha, Ole, Ida
09/03 Midterm evaluation, part 2
- 13/03 Sets and Dictionaries
Alvaro, Aimilla, Annette
16/03 How to python and Project Intro
- 20/03 Python Functions and start of Project
Hans-Christian, Nicoline, Alejandro
23/03 Continuing lesson
- 27/03 Python and Advanced Data Structures
Caroline, Xiaochen, Rasa
30/03 Random numbers
- 03/04 Comprehension and Generators
Eirini, Xenia, Anna Pors
06/04 Continuing lesson
20/04 Runtime evaluation of algorithms (Thursday)
- 24/04 Useful Functions and Methods
Kirstine, Veronika, Maria
27/04 Continuing lesson
- 01/05 Q/A Session
04/05 Repetition and Project work.
- 08/05 The project is given in at 15.00 on Campusnet