Practical Course: Algorithms for Programming Contests

  • Lecturer
    Prof. Dr. Harald Räcke
  • Teaching Assistant
    Stefan Toman
    Chris Pinkau
    Moritz Fuchs
    Philipp Hoffmann
    Christian Müller
    Please use the following e-mail address:
  • Module
    IN0012, IN2106, TUMonline
  • Preliminary Discussion
    The preliminary discussion will take place on Monday, July 6 at 10:00 a.m. in room 5620.01.102 (102, Interims Hörsaal 2).
  • Time and Place
    Wednesday, 12:00 p.m. - 1:30 p.m., Room MI 00.08.038
  • Computer Room
    The problems may be solved using our computer room MI 03.09.034, the "Rechnerhalle" or your own computer.
  • Area
    Computer Science III (Theoretical Computer Science)
  • Prerequisites
    Basics of programming in C, C++ or Java, for instance from the lecture Introduction to Informatics 1
    Lecture Fundamentals of Algorithms and Data Structures
  • Grading
    To pass the practical course you need to solve enough of the excercise problems on your own and pass an oral examination in the end of the semester. The mark is computed using the quality and amount of problems solved as well as the oral examination.


Programming contests are competitions for solving problems with the help of computer programs. By taking part in these contests one may improve skills in using algorithms and data structures as well as in problem solving, software development and teamwork through fun and games. Important topics in computer science are combined with the fun in programming.

There are plenty of programming contests by now, each of them having a different mode and focus. The excercise problems in this course will be similar to the ones used in the International Collegiate Programming Contest (ICPC), an international programming contest for students which is run by the Association for Computing Machinery (ACM) since the 1970s. In this contest, groups of up to three students each need to solve eight to ten problems in five hours using one computer only. The Computer Science Department of TUM has been participating in the ICPC with multiple teams for several years. A sample problem of our practical course gives an impression of the problems we are going to solve in this course.

There will be a lecture where we explain algorithms for a new topic each week. During the following week, the participants need to solve problems related to this topic. Solutions, different ideas and remarks regarding the problems will be presented in the next lecture. The problems differ in the level of difficulty: There will be problems asking for straightforward implementations of the presented algorithms as well as harder problems taken from several contests. For submitting and judging the submissions we will use DOMJudge, the system which is used for almost all rounds of the ICPC.

Goals of this course are

  • a deep understanding of fundamental algorithms and data structures,
  • getting to know specialized algorithms used in current research,
  • improved skills in problem solving and problem analysis,
  • practice in recognizing needed algorithms for given problems on one's own,
  • improved capacities in teamwork by taking part in team contests,
  • the application of important mathematical techniques as well as
  • preparing the participants for programming contests.

July 2022: Jens Quedenfeld completed his doctoral degree.

June 2022: Maximilian Janke completed his doctoral degree.

March 2022: Alexander Eckl completed his doctoral degree.

June 2021: Leon Ladwig completed his doctoral degree.

February 2020: The Program Committee of SWAT 2020 is chaired by Susanne Albers.

February 2020: Susanne Albers is invited speaker at the ACM India Annual Event.

ESA/ALGO 2019 will be organized by Susanne Albers and her group.

May 2019: Susanne Albers is invited speaker at the symposium 50 Years Informatics

July 2019: Susanne Albers is invited speaker at SIROCCO 2019, Italy.

December 2017: Susanne Albers will give keynote address at the Graduation Day, Department of Computer Science at RWTH Aachen University.

April 2017: New Research Training Center AdONE, funded by the German Research Foundation.

Susanne Albers receives ERC Advanced Grant. Press release of the Bavarian State Ministry of the Sciences, Research and the Arts.

August 2016: Susanne Albers is keynote speaker at Euro-Par 2016, Grenoble.

Susanne Albers, Nicole Megow and Andreas S. Schulz will organize MAPSP 2017.

Juni 2016: Susanne Albers gives an invited lecture at the Academy of Sciences and Literature, Mainz.

September 2015: Susanne Albers is invited speaker at MPI-INF – 25th Anniversary. The program features several Turing Award winners, Leibniz Prize winners, Humboldt Prize winners and ERC Grant winners.

June 2015: Susanne Albers is keynote speaker at the 31st International Symposium on Computational Geometry (SOCG15), Eindhoven.

June 2015: Susanne Albers is invited speaker of the tutorial on Network Creation Games: How Does the Internet Form? organized by Erik D. Demaine (MIT) and MohammadTaghi Hajiaghayi (University of Maryland). 16th Conference on Electronic Commerce (EC15), Portland, Oregon.

Lehrstuhl für Algorithmen und Komplexität
Prof. Dr. Susanne Albers

Boltzmannstr. 3
85748 Garching bei München

Tel +89.289.17706
Fax +89.289.17707