Courses given by Algorithm Engineering
Winter 2026/2027
Algorithms and Data Structures
- Lecturer: Kevin Buchin, Carolin Rehs
- Module: INF-MSc-241
- Type: 4 SWS lecture + 2 SWS exercise
- Moodle: 59634 (enroll via lsf)
- Language: English
Topics this term: approximation algorithms, linear programming and parameterized algorithms.
Selected Topics in Algorithms: Algorithms and Sustainability
- Lecturer: Kevin Buchin
- Module: INF-MSc-603
- Type: 2 SWS lecture + 2 SWS tutorial
- Moodle: 59636 (enroll via lsf)
- Language: English
This course explores how algorithms research can contribute to addressing challenges of sustainability. We will study algorithmic techniques and applications with a focus on both theoretical foundations and practical impact. Details see here.
Seminar on Algorithms
- Lecturer: Kevin Buchin
- Module: Seminar
- Moodle: 59637 (enroll via lsf)
- Type: 2 SWS seminar (block seminar; the date of the kick-off meeting will be set via a Moodle poll)
Proseminar: Algorithms and Data Structures for Route Planning
- Lecturer: Kevin Buchin, Joachim Krallmann, Dominik Riemer
- Module: Undergraduate Seminar and Presentation Techniques
- Type: 2 SWS seminar + 1 SWS presentation course
- Kick-off meeting: Mon, 12.10.2026, 14:15, OH14 E33
Computer Science and Sustainability (Informatik und Nachhaltigkeit)
- Lecturers: Kevin Buchin, Beate Bollig, Matthias Feurer, Lars Hildebrand, Daniel Losch, Frank Weichert
- Module: CS228 (Bachelor elective, Track B: Theory and Algorithms)
- Type: 2 SWS lecture + 2 SWS exercise, combined in one weekly block (Wed 14:15-18:00, OH16 205), starting 14.10.2026
- Moodle: 59635 (enroll via lsf)
- Language: German
Specialized Project: Digital Entertainment Technologies (Godot)
- Lecturer: Kevin Buchin, Fabian Ostermann
- Module: Undergraduate Project
- Type: 4 SWS project
Specialized Project: Digital Entertainment Technologies (Unity)
- Lecturer: Kevin Buchin, Nicolas Fischöder
- Module: Undergraduate Project
- Type: 4 SWS project
Regularly offered courses
Bachelor
Description
In the lecture "Data Structures, Algorithms and Programming 2" (DAP 2) we deal with techniques for designing and analyzing algorithms and data structures.
In this course you will learn to:
- Describe basic algorithms and data structures, apply them to small examples and adapt them to new problems
- Determine, compare and mathematically prove properties such as the runtime and correctness of algorithms
- Develop new algorithms and data structures using basic design methods
Examples for basic algorithms:
- Algorithms for sorting numbers such as MergeSort, InsertionSort, Quicksort, Heapsort, CountingSort and RadixSort and algorithms for the selection problem
- Algorithms for basic organization problems such as the knapsack problem
- Graph algorithms such as breadth-first search, depth-first search, topological sorting, minimum spanning trees and shortest paths
Examples for basic data structures:
- Heaps
- Hash tables
- Balanced binary search trees such as red-black trees
- Graph representations such as adjacency lists and adjacency matrices
For many algorithmic problems it is necessary to adapt these basic algorithms and data structures or to develop new algorithms and data structures. In the lecture we will learn about design techniques such as divide-and-conquer, incremental algorithms, greedy algorithms and dynamic programming.
To analyze the runtime of algorithms, we learn about O-notation. To analyze the runtime of recursive algorithms, the recurrence for the runtime must be determined and solved using techniques such as recursion trees or the master theorem. We also learn various techniques such as loop invariants to show the correctness of algorithms.
Description
The basic techniques introduced in DAP 2 are deepened and applied to more complex problems, in addition to selected problems with large application areas, advanced aspects such as approximation and advanced design methods.
Topics include:
- Hashing methods, string matching
- Graph algorithms, e.g. strong connection in graphs, maximum matchings, network flow problems, cutting problems (min-cut and max-flow), traveling salesperson problem, vertex cover, maxSAT
- Advanced data structures, e.g. B-trees, data structures for disjoint sets, augmentation of data structures
- Analysis techniques, e.g. amortized analysis of algorithms, analysis of randomized algorithms
- Optimization techniques, e.g. linear programming, approximation quality and schemes
Literature
- Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms (also available at the university library as an e-book in English and German)
- Additional literature references and scripts will be made available on Moodle
Examination
- Coursework: successful participation (50 % of the points) in the weekly Moodle quizzes
- For Bachelor students of Computer Science and Applied Computer Science: written exam, 90 minutes, 2 dates
- Students of other disciplines have either oral or written exams. The exact requirements will be announced in the lecture (see slides). In case of a written exam, it will take place at the same time as the exams above. Please note the registration deadlines for examinations at the examinations office, which are very early for written exams (usually 2 weeks in advance).
Description
Competitive programming is about developing algorithmic solutions for specific problems and implementing them in the shortest possible time. In this course, students deepen their understanding of basic efficient algorithms and practise applying the algorithms and programming under time pressure. Since 1970, the Association for Computing Machinery (ACM) has organized the annual International Collegiate Programming Contest (ICPC), which we will use as a guide.
In our project, important algorithms and data structures for solving problems from previous years of the ICPC are presented in lectures and approaches to solutions are discussed. In addition to the lectures, tasks are solved and programmed in a simulated competition situation in teams of 3. At the end of the semester, participants will take part in the Winter Contest or GCPC.
Timetable and process
The specialized project takes place every Thursday from 12 to 4 pm. The first two hours deal with specific techniques for solving competition problems. The last two hours are dedicated to working on exercises.
Programming language: C, C++, Java or Python (you need to find two other participants for your preferred language)
Course language is German, but the problem descriptions / assignments will be in English!
Prerequisites
- Programming skills (internships DAP 1 and 2)
- Data Structures, Algorithms and Programming 2
- Basic knowledge in the following areas:
- Algorithm design methods: greedy, divide and conquer, dynamic programming, backtracking and recursion
- Basic data structures: arrays, lists, stacks, queues, binary search trees, heaps, adjacency lists and matrices
- Standard algorithmic topics: O-notation, sorting, searching, hashing, simple graph algorithms (e.g. tree traversal, breadth-first and depth-first search)
- Basic knowledge of matching and flow algorithms (EA) is helpful, but not necessary
Examination
All final module examinations are carried out in teams of 3
- 30 min presentation on a data structure or programming paradigm as well as guiding the participants to solve the corresponding task types
- 3 out of 5 of the weekly problems per task type solved
- Successful participation in the internal programming challenge
Materials
Description
Competitive programming is about developing algorithmic solutions for specific problems and implementing them in the shortest possible time. Since 1970, the Association for Computing Machinery (ACM) has organized the annual International Collegiate Programming Contest (ICPC), which we will use as a guide.
In our seminar, advanced algorithms and data structures for solving problems from previous years of the ICPC are presented and approaches to solutions are discussed.
Prerequisites
This course ties to the specialized project "Algorithms for Competitive Programming". Previous knowledge from this course is desirable, but not necessary. You can also take the specialized project simultaneously (Wednesday morning: seminar, Wednesday afternoon: project).
We expect basic knowledge of algorithm design methods (e.g. dynamic programming, backtracking), data structures (e.g. queues, binary search trees, heaps, graphs) and standard algorithmic topics (O-notation, sorting, searching, hashing).
Description
This course introduces concepts of sustainability from the perspective of computer science. On the one hand, we discuss the impact of computing technologies and solutions on the environment and society. On the other hand, we study how methods from computer science can contribute to addressing sustainability challenges. Possible topics include:
- Foundations of sustainability
- Ethical questions in computer science
- Societal implications of computer science applications
- Development of resource-efficient digital systems
- Algorithms for sustainable mobility
- Sustainability in machine learning
The course is taught jointly by lecturers from several research groups of the Department of Computer Science. Lecture and exercise are combined in one weekly block with plenty of room for discussion. In teams, students carry out a project on a topic in computer science and sustainability and present their results in a scientific format.
Prerequisites
None. The module is an elective in the Bachelor programmes Computer Science and Applied Computer Science (Track B: Theory and Algorithms) and can be taken from the 3rd semester on.
Examination
- Coursework: active participation and successful completion of the project
- Oral or written exam, as announced at the beginning of the course
Master
Description
The lecture "Algorithms and Data Structures" with the accompanying exercise provides the basis for most of the more advanced special lectures in the field of algorithmic and formal foundations, and also deals with more advanced and complex algorithms and data structures.
The lecture focuses on approximation algorithms and linear optimization. In addition to these topics, various advanced algorithmic topics are covered, such as parameterized algorithms and advanced data structures.
There are many algorithmic problems for which we cannot expect to find efficient algorithms. In order to find solutions to such problems, approximation algorithms are of central importance. Approximation algorithms calculate a solution that is not necessarily optimal, but for which we can give a quality guarantee. For example, Christofides' algorithm for the round trip problem (TSP) calculates a tour that is at most 1.5 times as long as the optimal tour in the worst case. We learn about different approximation algorithms and techniques for the design of approximation algorithms.
Linear optimization together with integer optimization can be used to solve a variety of optimization problems, which are essential for computer science. Linear optimization plays a particularly important role in approximation algorithms and we will take a closer look at this application of linear optimization in the lecture.
Description
Geometric algorithms comprise the design and analysis of algorithms and data structures for geometric problems. In the lecture, some basic problems are considered first: Computing the convex hull of a set of points, the intersection points of a set of lines, or a triangulation of a simple polygon. We then look at algorithms for calculating known geometric structures, such as Voronoi diagrams, Delaunay triangulations and arrangements. We also look at data structures for efficient queries on geometric data, such as range trees, kd-trees and quadtrees. Three main types of algorithms are used: incremental, divide-and-conquer, and sweep. Some of these occur as randomized algorithms.
Prerequisites
Previous knowledge of the lecture "Algorithms and Data Structures" or comparable knowledge is expected.
Examination
- Coursework: active participation (incl. presentation of your own solutions)
- Oral exam
Description
This course explores how algorithms research can contribute to addressing challenges of sustainability. We study algorithmic techniques and applications with a focus on both theoretical foundations and practical impact. Topics include:
- Computational Movement Analysis
- Routing Algorithms for Sustainable Mobility
- Energy-efficient Algorithms
- Algorithmic Fairness
The course features guest lectures, and each student works on a small project, individually or in pairs. The course is taught in English and can also be taken as part of the studium oecologicum.
Prerequisites
- Solid background in algorithms and data structures
- Interest in both the theory of algorithms and in practical, application-driven algorithm design
Examination
- Coursework: project
- Oral exam
Details on the current iteration, previous guest lectures and student projects can be found on the course page.
Description
In this seminar we will deal with current research topics of the Algorithm Engineering research group based on selected recent publications in the field of algorithms. The group conducts research on a wide range of algorithmic topics, in particular geometric algorithms and data structures, algorithm engineering, geometric networks and algorithms for geoinformation systems.
Prerequisites
Previous knowledge of the lectures "Algorithms and Data Structures" or "Geometric Algorithms" or comparable knowledge is expected.
*Alternating with the research group Efficient Algorithms and Complexity Theory
Past Terms
Algorithmic Geometry
- Lecturer: Kevin Buchin
- Module: INF-MSc-602
- Type: 2 SWS lecture + 2 SWS exercise
- Moodle: 57903
Efficient Algorithms
- Lecturer: Kevin Buchin, Dominik Riemer
- Module: INF-BSc-221
- Type: 4 SWS lecture + 2 SWS exercise
- Moodle: 57904
Proseminar: Sports Informatics
- Lecturer: Kevin Buchin, Günter Rudolph, Antonia Kalb, Joachim Krallmann, Torben Scheele
- Module: Undergraduate Seminar and Presentation Techniques
- Type: 2 SWS seminar + 1 SWS presentation course
Specialized Project: Algorithms for Competitive Programming
- Lecturer: Kevin Buchin, Mart Hagedoorn
- Module: Undergraduate Project
- Type: 4 SWS project
- Moodle: 57550
Selected Topics in Algorithms: Algorithms and Sustainability
- Lecturer: Kevin Buchin
- Module: INF-MSc-603
- Type: 2 SWS lecture + 2 SWS tutorial
- Moodle: 54282 (enroll via lsf)
- Language: English
This course explores how algorithms research can contribute to addressing challenges of sustainability. We will study algorithmic techniques and applications with a focus on both theoretical foundations and practical impact. Details see here.
Seminar on Algorithms
- Lecturer: Kevin Buchin
- Module: Seminar
- Moodle: 54283 (enroll via lsf)
- Type: 2 SWS seminar
Proseminar: Advanced Algorithms for Competitive Programming
- Lecturer: Kevin Buchin, Antonia Kalb
- Module: Undergraduate Seminar and Presentation Techniques
- Moodle: 54284 (no self-enrollment)
- Type: 2 SWS seminar + 1 SWS presentation course
- You will need to implement advanced algorithms in this seminar!
Specialized Project: Algorithms for Competitive Programming
- Lecturer: Mart Hagedoorn
- Module: Undergraduate Project
- Type: 4 SWS project
Algorithmic Geometry
- Lecturer: Kevin Buchin
- Module: INF-MSc-602
- Type: 3 SWS lecture + 1 SWS exercise
- Moodle: 51565
Data Structures, Algorithms and Programming 2
- Lecturer: Kevin Buchin, Antonia Kalb, Torben Scheele, Mart Hagedoorn, Carolin Rehs
- Module: INF-BSc-104
- Type: 4 SWS lecture + 2 SWS exercise + 2 SWS lab
- Moodle: 50412
Seminar on Algorithms
- Lecturer: Kevin Buchin
- Module: Seminar
- Type: 2 SWS seminar
Algorithms and Data Structures
- Lecturer: Kevin Buchin, Carolin Rehs
- Module: Algorithmen und Datenstrukturen
- Type: 4 SWS lecture + 2 SWS exercise
Proseminar: Advanced Algorithms for Competitive Programming
- Lecturer: Kevin Buchin, Antonia Kalb
- Module: Undergraduate Seminar and Presentation Techniques
- Type: 2 SWS seminar + 1 SWS presentation course
- You will need to implement advanced algorithms in this seminar!
Specialized Project: Algorithms for Competitive Programming
- Lecturer: Mart Hagedoorn
- Module: Undergraduate Project
- Type: 4 SWS project
Algorithmic Geometry
- Lecturer: Kevin Buchin
- Module: Algorithmische Geometrie (Master INF-MSc-602 (Informatik, Angewandte Informatik))
- Type: 2 SWS lecture + 2 SWS exercise
Data Structures, Algorithms and Programming 2
- Lecturer: Kevin Buchin, Carolin Rehs, Antonia Kalb
- Module: INF-BSc-104
- Type: 4 SWS lecture + 2 SWS exercise + 2 SWS lab
Seminar of Algorithm Engineering research group
- Lecturer: Kevin Buchin
- Module: Seminar
- Type: 2 SWS seminar
Algorithms and Data Structures
- Lecturer: Kevin Buchin, Carolin Rehs
- Module: Algorithmen und Datenstrukturen
- Type: 4 SWS lecture + 2 SWS exercise
Proseminar: Advanced Algorithms for Competitive Programming
- Lecturer: Kevin Buchin, Antonia Kalb
- Module: Proseminar und Präsentationstechniken
- Type: 2 SWS seminar + 1 SWS presentation course
Proseminar: Algorithms for Packing Problems
- Lecturer: Kevin Buchin, Antonia Kalb
- Module: Proseminar und Präsentationstechniken
- Type: 2 SWS seminar + 1 SWS presentation course
Specialized Project: Algorithms for Competitive Programming
- Lecturer: Mart Hagedoorn
- Module: Fachprojekt - Bachelor Informatik/Angewandte Informatik
- Type: 4 SWS project
Algorithmic Geometry
- Lecturer: Kevin Buchin
- Module: Algorithmische Geometrie (Master INF-MSc-602 (Informatik, Angewandte Informatik))
- Type: 2 SWS lecture + 2 SWS exercise
Efficient Algorithms
- Lecturer: Kevin Buchin, Carolin Rehs
- Module: INF-BSc-221 (Bachelor Informatik / Angewandte Informatik)
- Type: 4 SWS lecture + 2 SWS exercise
Specialized Project: Algorithms for Competitive Programming
- Lecturer: Mart Hagedoorn
- Module: Fachprojekt - Bachelor Informatik/Angewandte Informatik
Specialized Project: Algorithms for Competitive Programming
- Lecturer: Dr. Carolin Rehs, Mart Hagedoorn, Antonia Kalb
- Module: Fachprojekt - Bachelor Informatik/Angewandte Informatik
Proseminar: Allocation and Assignment Algorithms
- Lecturer: Dr. Carolin Rehs, Antonia Kalb
- Module: Proseminar INF-BA-110 (Bachelor Informatik / Angewandte Informatik)
Seminar: Algorithm Engineering
- Lecturer: Dr. Carolin Rehs
- Module: Seminar INF-MSc-102 (Informatik, Angewandte Informatik)
