Competitive Programming - Overview

Lecturers: Prof. Dr. Bernhard Nebel and Dr. Gregor Behnke.
Lectures will start on 11 May.


Lecture: Monday, 14:00-16:00
Exercises: Tuesday, 16:00-18:00


Lecture and exercise will take place on-line.


Programming contests (such as the ICPC, Google Code Jam, or Facebook Hacker Cup) allow students to compete against other students and measure their abilities in algorithmics, programming, and mathematics. Usually, these contest require knowledge of and experience with algorithms that goes beyond a standard CS curriculum. In this course we will look at topics often covered in programming contests. We will present and study relevant algorithms and deal with implementing them.

We will cover the following topics
  • Simple Algorithms
  • Data Structures
  • Problem Solving Paradigms
  • Greedy Algorithms
  • Dynamic Programming
  • Graphs
  • Computational Geometry
  • Mathematics
  • String Processing


For this course, no particular prerequisites are required. It is aimed both at second or thrid year Bachelor's and Master's students. Students with computer science as their minor subject are also welcome, however (significant) experience in programming is required.

Bachelor's and Master's students in computer science can get credit points for this lecture as a specialization course in the area of Informationssysteme. An oral exam will take place during the semester break after the lecture period.

This course is worth 6 ECTS credits.

Exercises and Exam Admission Prerequisites

During the semester there will be weekly programming exercises, each containing six problems. These exercises are handed in via DOMjudge and will be graded automatically. The problem statements are also available via DOMjudge. You may submit your solutions in any of the following languages: C, C++, Haskell, Java, Python 2, or Python 3. Upon request, further programming languages can be made available. For the "Studienleistung" it is necessary to reach at least 50% of the points for the posed problems.

All problems must be solved by each student alone. All submitted solutions will be checked for plagiarism. Any copied solution or other type of plagiarism will not be accepted and will, on repetition, lead to disqualification from the final exam.


Lecture slides and lecture recordings will be made available via ILIAS.