Programming with Python (MSc Bioinformatics) Prof. Dr. Sven Rahmann Required programming course for Bioinformatics Master program

Registration for this course is open until Monday, 31.10.2022 23:59.


Currently, no news are available

Programming with Python

This course is the required programming course for first semester students in the Bioinformatics Master program.

Students of other programs may take this course after consulting with their study coordinators. Since the course is ungraded this year, it can be used for the ungraded credit section. In particular, the course can (only) be used for the "freie Punkte" in the "Master Informatik" program.

We are in the process of changing the study regulations to upgrade the current ungraded 5 credits course to a graded 8 credits course in the future and to offer alternating courses between C++ and Python.

This year, for the last time, we will have the ungraded 5 credits course, but already in the Python version.



The course will be structured into three phases. Each week during the lecture period (25.10. to 10.02.), there will be a 2h lecture (V2) and 4h of tutorials (Ü4), during which you are expected to do most of the programming work, i.e., there should be very little homework (in comparison to a V4+Ü2 course, for example, which usually yields 9 credits). You should expect to spend 150 h on the course in total (~10h/week, 6 of which are done in presence). Please consult the calendar page to review the exact times of lectures and tutorials.

Phase 1: Start of lecture period till end of November (6 lectures)

The basic elements of Python and how to write and run simple Python programs will be taught. Several assignments (to be completed in presence) will be given each week. You should be able to write a short program that interacts with the outside world (e.g., file I/O) by the end of November. In this phase, the workload will be relatively low.

Phase 2: December: Algorithms and Advent of Code (4 lectures)

We will participate in "Advent of Code" as a group. Each day, December 1 - 25, an individualized two-part problem will be posted on Advent of Code. You get one star for solving each part for a possible maximum of 50 stars. You will need to get at least 35 stars until the deadline (see below) to be admitted to the exam. Lecture in December will explain necessary algorithms to solve some of the more difficult problems. The problems usually start out quite easy, but become more and more difficult as the month progresses.

Phase 3: Special topics (January till end of lecture period, 5 lectures)

After the holiday break, the lectures will introduce useful Python modules for bioinformaticians, such as different plotting libraries, workflow management using Snakemake, just-in-time compilation using numba, and others. There will be a small amount of assignments to work on some examples with these libraries. Otherwise, you have time to finish the Advent of Code assignments.


Short oral exams (~15-20 min) take place in the first week after the lecture period. You are qualified if you have 35 stars in Advent of Code until the last Friday of the lecture period, 23:59. In the exam, you have to explain your code for some of the more complex Advent of Code problems and answer questions about it.


  • Before the lecture period, or in the first week: Register here in the CMS to access the Materials section. Unregister if you drop the course. If you do not have an account yet on the CMS, be sure to get one early.
  • During the lecture period, achieve at least 35 stars in the Advent of Code problems to qualify for the exam.
  • ONE WEEK BEFORE the exam (or earlier), register for
  1. a time slot for the oral exam using the provided scheduler
  2. the exam itself in LSF; this will be explained further in a News item when the time comes.


Ethics and Plagiarism Policy

You may ask for help, either the tutors or other students, or people on the internet, or even books. However, you may not use or copy their code directly. All implementations must be your own. In case you use other peoples' work beyond the Python standard library (e.g. numpy, scipy), this must be clearly stated up-from and properly cited. Violation of these rules will result in removal from the course and in reporting you to the examination office. If you get reported more than once, you may have to leave the university.

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators