Perl and Unix for Bioinformaticians - #27619

10 points course, Spring 2015
IMPORTANT - do preparation for the course.

DTU's Studies Handbook about #27619

Time: Course starts February 2, 2015 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, 2015
Exam location: Building 308, room 001, 009 and 017
Teacher: Peter Wad Sackett,
Signing up: "Normal" DTU students sign up the normal way. other students check here, and/or 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. MobaXterm or VirtualBox with a linux installation is strongly recommended, if you dont have a Mac or Linux already.
Textbooks: Unix notes and Unix powerpoint.

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

Online tutorial on unix
There is an online book on perl at, 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
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).

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


  1. 02/02 UNIX
  2. 05/02 Perl Basics 1
  3. 09/02 Perl Basics 2
  4. 16/02 Perl I/O
  5. 23/02 Perl Program Structure and Bug Finding
  6. 02/03 Perl Arrays
  7. 09/03 Perl Regular Expressions
  8. 16/03 Perl Hashes
    19/03 Project Intro
  9. 23/03 Perl Subroutines and Project Start
    09/04 Perl subroutines - a deeper look, ONLY THURSDAY, no exercises
  10. 13/04 Perl References and Advanced Data Structures
  11. 20/04 Perl Advanced Data Structures, part 2
  12. 27/04 Perl Seldom Used Functions and Objects
    30/04 Runtime evaluation of algorithms.
  13. 04/05 Perl One-Liners and Trial Exam Set
    07/05 Repetition, Project work and Tank Wars
  14. 11/05 The project is given in at 15.00 on Campusnet
More Perl
The following is not a part of the course.