Events News Research CBS CBS Publications Bioinformatics
Staff Contact About Internal CBS CBS Other

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.
Language: English
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, pws@cbs.dtu.dk
Signing up: "Normal" DTU students sign up the normal way. Guest Students check here, Everyone else look here and ask the study administration. 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, 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
"Learning Perl" is a fairly systematic book, but offer no insights in bioinformatics and does not go too deep into perl.

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
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).

Peer evaluation
Every week you should upload your solution to one of the weeks exercises. The exercise is the red one - there can be no mistake. 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.

Projects
Everybody has to do an individual project during the course. See the list here.

Lessons
and who should make cake.

  1. 03/02 UNIX Anders, Kristian, Kristian
  2. 06/02 Perl Basics 1
  3. 10/02 Perl Basics 2 Anne Bali, Inge, Louise
  4. 17/02 Perl I/O Anne Birk, Barbara
  5. 24/02 Perl Program Structure and Bug Finding Carsten, Christina, Christine
  6. 03/03 Perl Arrays Janina, Kasper, Katrine
  7. 10/03 Perl Regular Expressions Lasse, Lasse, Lasse
  8. 17/03 Perl Hashes and Project Intro Mia S, Michael
  9. 24/03 Perl Subroutines and Project Start Mia R, Mikala
  10. 31/03 Perl References and Advanced Data Structures Ove, Øystein, Bartek
  11. 07/04 Perl Advanced Data Structures, part 2 Rune, Sofie, Zina
  12. 24/04 Perl Seldom Used Functions and Objects ONLY THURSDAY No cake
    28/04 Repeat + runtime evaluation of algorithms.
  13. 05/05 Perl One-Liners and Trial Exam Set Kennie, Rohullah
  14. 12/05 Repetition, Project work and Tank Wars
  15. 13/05 The project is given in at 15.00
More Perl
The following is not a part of the course.