Teaching
The members of the algorithms group of MPI-INF offer courses and thesis (bachelor, master, and PhD) topics in algorithmics. We offer the core course Optimization in every summer term.
Subsequent to these courses, we offer advanced courses and seminars for students who want to specialize in algorithmics. You will find our course offers for the next semester and past semesters below.
For thesis topics, contact one of the senior members of the group.
For advanced master students and above, every summer the algorithms group of MPI-INF organizes the Max Planck Advanced Course on the Foundations of Computer Science (ADFOCS).
Winter 2023/2024
- Core Course: Algorithms and Data Structures (Karl Bringmann and Philip Wellnitz)
- Advanced Course: Sublinear Algorithms (Karl Bringmann and Nithin Varma)
- General Education: Ideen und Konzepte der Informatik (Kurt Mehlhorn and Corinna Coupette)
Summer 2023
- Advanced Course: Techniques for Counting Problems (Jacob Focke, Philip Wellnitz)
- Advanced Course: Parametrized Algorithms (Dániel Marx, Roohani Sharma)
- Seminar: Foundations of Machine Learning (Coordinators: Yonggang Jiang, Kurt Mehlhorn, Adam Polak, Roohani Sharma, Hans Simon, Shreyas Srinivas)
Winter 2022/2023
Advanced Course: Randomized Algorithms and Probabilistic Analysis of Algorithms (Philip Wellnitz, Tutor: Baris Can Esmer)
Advanced Course: Approximation Algorithms (Joachim Spoerhase, Tutor: Martin Herold)
General Education: Ideen und Konzepte der Informatik (Kurt Mehlhorn and Corinna Coupette)
Summer 2022
- Core Course: Optimization (Andreas Karrenbauer)
- Advanced Course: How to Clock Your Computer (Christoph Lenzen, Danny Dolev, Ian Jones; external)
- Advanced Course: Competitive Programming (Markus Bläser, Karl Bringmann, Martin Bromberger, Christoph Weidenbach; external)
- Seminar: Reading Group: String Algorithms (Karl Bringmann, Tomasz Kociumaka; external)
- Seminar: Coping with Computational Hardness (Dániel Marx; external)
Winter 2021/2022
- Advanced Course: Fine-Grained Complexity Theory (Karl Bringmann)
- Advanced Course: Metastability-Containing Synchronization Circuits (Christoph Lenzen and Johannes Bund)
- Advanced Course: Parametrized Algorithms (Dániel Marx and Roohani Sharma)
- Seminar: Reading Group Algorithms - Continuous Methods for Combinatorial Problems
(Kurt Mehlhorn, Roohani Sharma, Hans Simon, and Philip Wellnitz) - General Education: Ideen und Konzepte der Informatik (Kurt Mehlhorn and Corinna Coupette)
Summer 2021
- Advanced Course: Clock Synchronization and Adversarial Fault Tolerance (Christoph Lenzen and Ben Wiederhake)
- Advanced Course: Coping with computational hardness: approximation, moderately exponential-time, and parameterized algorithms (external) (external) (Dániel Marx)
- Advanced Course: Geometric algorithms with limited resources (Sándor Kisfaludi-Bak and Themis Gouleakis)
- Core Course: Optimization (Andreas Karrenbauer)
Winter 2020/2021
- Core Course: Algorithms and Data Structures (Karl Bringmann and Marvin Künnemann)
- Advanced Course: How to clock your computer (Christoph Lenzen and Shreyas Srinivas)
- General Education: Ideen und Konzepte der Informatik (Kurt Mehlhorn and Corinna Coupette)
- Advanced Course: Property Testing (Themis Gouleakis)
- Advanced Course: Theory of Distributed Systems (Christoph Lenzen and Corinna Coupette)
- Advanced Course: Topics in Algorithmic Game Theory and Computational Economics (Pieter Kleer)
Summer 2020
- Advanced Course: Computational Geometry (Sándor Kisfaludi-Bak and Raimund Seidel)
- Core Course: Optimization (Andreas Karrenbauer)
- Advanced Course: Parameterized Algorithms (Pranabendu Misra and Dániel Marx)
- Seminar: Reading Group Algorithms (Bhaskar Ray Chaudhury and Karl Bringmann)
- Advanced Course: Sublinear Algorithms (Karl Bringmann and Vasileios Nakos)
Winter 2019/2020
- Lecture: Ideen und Konzepte der Informatik (Kurt Mehlhorn)
- Seminar: Optimization and Entrepreneurship (Andreas Karrenbauer)
- Lecture: Theory of Distributed Systems (Christoph Lenzen)
- Seminar: Topics in Fair Division (Kurt Mehlhorn and Bhaskar Ray Chaudhury)
Summer 2019
- Lecture: Distributed and Sequential Graph Algorithms (Saeed Amiri, Pranabendu Misra)
- Lecture: Fine-Grained Complexity Theory (Karl Bringmann, Marvin Künnemann)
- Lecture: Introduction to Boolean Function Complexity (Nitin Saurabh)
- Lecture: Optimization (Andreas Karrenbauer)
- Lecture: Keeping Time in Distributed Systems (Christoph Lenzen)
- Seminar: Reading Group Algorithms (Kurt Mehlhorn)
Winter 2018/2019
- Lecture: Ideen und Konzepte der Informatik (Kurt Mehlhorn)
- Lecture: Multivariate Algorithmics (Karl Bringmann, Holger Dell)
- Lecture: Randomized and Approximation Algorithms (Marvin Künnemann, Antonios Antoniadis)
- Lecture: Algorithms on Directed Graphs (Will Rosenbaum, Saeed Amiri, Eunjin Oh)
- Lecture: Theory of Distributed Systems (Christoph Lenzen)
- Seminar: Reading Group Algorithms (Daniel Vaz, Kurt Mehlhorn)
Summer 2018
- Lecture: Keeping Time in Distributed Systems (Christoph Lenzen, Saeed Amiri)
- Lecture: Selected Topics in Fine-Grained Complexity Theory (Karl Bringmann, Marvin Künnemann)
- Lecture: A first introduction to geometric complexity theory (Christian Ikenmeyer)
- Lecture: Optimization (Andreas Karrenbauer, Maximilian John)
- Seminar: Reading Group Algorithms (Kurt Mehlhorn, Daniel Vaz)
Winter 2017/2018
- Lecture: Computer Algebra (Michael Sagraloff)
- Lecture: Algorithmic Game Theory, Mechanism Design and Computational Economics (Yun Kuen (Marco) Cheung)
- Lecture: Fine-Grained Complexity Theory (Karl Bringmann, Marvin Künnemann)
- Lecture: Geometric Complexity Theory II (Markus Bläser, Christian Ikenmeyer)
- Lecture: Theory of Distributed Systems (Christoph Lenzen)
- Lecture: Ideen und Konzepte der Informatik (Antonios Antoniadis, Kurt Mehlhorn)
Summer 2017
- Lecture: Optimization (Andreas Karrenbauer)
- Lecture: Approximation Algorithms (Tobias Mömke, Hang Zhou)
- Lecture: Introduction to Geometric Complexity Theory (Markus Bläser, Christian Ikenmeyer)
- Seminar: Reading Group Algorithms (Kurt Mehlhorn, Ruben Becker, Emanuele Natale)
Winter 2016/2017
- Lecture: Algorithms and Data Structures (Karl Bringmann, Erik Jan van Leeuwen)
- Lecture: Theory of Distributed Systems (Christoph Lenzen)
- Lecture: Grundzüge von Algorithmen und Datenstrukturen (Andreas Karrenbauer)
- Lecture: Ideen und Konzepte der Informatik (Kurt Mehlhorn)
- Seminar: Reading Group Algorithms (Kurt Mehlhorn, Ruben Becker)
Summer 2016
- Lecture: Optimization (Parinya Chalermsook, Andreas Wiese)
- Lecture: Complexity Theory of Polynomial-Time Problems (Karl Bringmann, Sebastian Krinninger)
- Lecture: Randomized Algorithms and Probabilistic Analysis of Algorithms (Thomas Kesselheim, Kurt Mehlhorn)
- Lecture: Mathematik für Informatiker (Michael Sagraloff)
- Seminar: Reading Group Algorithms (Kurt Mehlhorn, Marvin Künnemann, Ruben Becker)
- Doctoral Privatissimum: State of the Art Linear Programming Theory (Andreas Karrenbauer, Ruben Becker)
Winter 2015/2016
- Lecture: Algorithms and Data Structures (Martin Hoefer, Raimund Seidel)
- Lecture: Approximation Algorithms (Mayank Goswami, Andreas Wiese)
- Lecture: Theory of Distributed Systems (Christoph Lenzen)
- Lecture: Ideen und Konzepte der Informatik (Kurt Mehlhorn)
- Seminar: Reading Group Algorithms (Kurt Mehlhorn, Marvin Künnemann, Ruben Becker)
- Seminar: Algorithmic Lower Bound Techniques (Parinya Chalermsook)
- Seminar: Optimization and Entrepreneurship (Andreas Karrenbauer)