Perl and Unix for Bioinformaticians - #27619
10 points course, Spring 2014
IMPORTANT - do preparation for the course.
DTU's Studies Handbook about #27619
Time: Course starts February 3, 2013 and runs Mondays 13.00 - 17.00 and Thursdays 9.00-12.00
Module: F2-A and F2-B
Place: Aud. 062 in build. 208, 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 3 pages of abbreviated perl will be available.
Exam date: 9.00 - 13.00, May 21, 2014
Exam location: Building 210, room 052/152
Teacher: Peter Wad Sackett, firstname.lastname@example.org
Signing up: "Normal" DTU students sign up the normal way.
Guest Students check here,
Everyone else look here and ask the
Signing up for a course has nothing to do with the teacher and everything to do with the DTU study administration.
Tools: Optional software for the course for your own computer. VirtualBox with a
linux installation is strongly recommended, if you dont have a Mac or Linux already.
Textbooks: Unix notes.
"Learning Perl" is a fairly systematic book, but offer no insights in bioinformatics and does not go too deep into perl.
- Learning Perl, 4th ed. by Randal Schwartz & Tom Christiansen (O'Reilly) or
- Learning Perl, 5th ed. by Randal Schwartz & Tom Christiansen (O'Reilly) or
- Learning Perl,
6th ed. by Randal Schwartz & Tom Christiansen (O'Reilly) ISBN-13: 9781449303587
There is an online book on perl at
http://learn.perl.org/library/beginning_perl, but the course is not taught from that.
However, it might be good for you as an alternative source of wisdom.
The Korf Lab has made a Unix & Perl Primer for Biologists,
which could also be a good starting point - or perhaps a refresher.
Perl is very well documented at http://perldoc.perl.org/.
Other perl books
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 learn in this course
Exercises has to mailed to the teacher Saturday before the next lesson on
Monday or before. Word documents are NOT accepted.
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 at least 70% 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.
Exercise Delivery Status for Course Participants
Solutions to exercises
Solutions to each week's exercises are published before the next
lesson on CampusNet (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. There will be chocolate for the winner. At the end of the course there will
also be chocolate for the person who voted for (picked) most winners. Both the upload and the voting
is 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 evaualtion page.
Reading ahead and using not yet covered techniques
Sometimes people read ahead in the text book and discover some techniques, that makes
life much easier in solving the exercises. That can be good or bad depending on the student.
I generally disprove of that - not reading ahead - but using the advanced techniques in
simple exercises. Two reasons for this: Some people use the techniques in a wrong or
sub-optimal manner - usually because they haven't understood them properly.
More importantly, the exercises are designed in such a way that they get more difficult
- you have to think more - structure the code more logically - gain insight in the natural
flow of problem solving. When using advanced techniques, there are certain shortcuts you make
- shortcuts, that easily gain the desired result and at the same time does not force you
to get into this structured thinking. Then, later, when you really need the right mindset
to solve the exercises, you don't have it.
Of course I may be wrong in this, you might be able to handle it. People are very different.
My argument might even be wrong, perhaps people who rightly use advanced techniques also
have the mindset necessary to solve later difficult exercises.
There is one thing, I am sure of, though: Doing it without the advanced techniques will
NOT harm your growing skills.
Everybody has to do an individual project during the course.
See the list here.
and who should make cake.
- 03/02 UNIX
- 06/02 Perl Basics 1
- 10/02 Perl Basics 2
- 17/02 Perl I/O
- 24/02 Perl Program Structure and Bug Finding
- 03/03 Perl Arrays
- 10/03 Perl Regular Expressions
- 17/03 Perl Hashes and Project Intro
- 24/03 Perl Subroutines and Project Start
- 31/03 Perl References and Advanced Data Structures
- 07/04 Perl Advanced Data Structures, part 2
- 24/04 Perl Seldom Used Functions and Objects ONLY THURSDAY
28/04 Repeat + runtime evaluation of algorithms.
- 05/05 Perl One-Liners and Trial Exam Set
- 12/05 Repetition, Project work and Tank Wars
- 13/05 The project is given in at 15.00
The following is not a part of the course.