Practical Course: Algorithms for Programming Contests

  • Lecturer
    Prof. Dr. Ernst W. Mayr
  • Teaching Assistant
    Stefan Toman
    Chris Pinkau
    Philipp Hoffmann
    Chris Müller
    Please use the following e-mail address: conpra@in.tum.de.
  • Module
    IN0012, IN2106
  • Preliminary Discussion
    The preliminary discussion will take place on Monday, 27.01.2014, 14:00 in room MI 03.11.018.
  • Time and Place
    Monday, 12:30-14:00, MI 02.13.010 NEW
  • 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.

Problem Sets


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

In this practical course we will get to know several algorithms and data structures which are widely used in programming contests. There are plenty of these 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 three students each need to solve eight to ten problems in five hours using one computer only. The competition is run in several local and regional contests until the best teams compete in the World Finals. The Computer Science Department of TUM has been participating in the ICPC with multiple teams for several years. Some sample problems of the German Collegiate Programming Contest (GCPC) 2012 give an impression of the problems we are going to solve in this practical 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 the same system which is used for almost all rounds of the ICPC.

The goal of this course is a deeper understanding of fundamental algorithms and data structures, getting to know specialized algorithms and preparing the participants for programming contests. At the end of the semester, there is the possibility of participating in the GCPC, the German regional contest of the ICPC.