Summer semester 2026
Bachelor
Algorithms and Data Structures (4L+2T)
Bachelor seminar Computer Science
Software Practical Course
Master
Algorithms for Programming Contests (2L+1T)
Research project
Research seminar
Algorithms and Data Structures (4L+2T)
![[Translate to Englisch:] Algorithms and Data Structures](/fileadmin/_processed_/6/e/csm_ads-logo_6fc24b17eb.png)
Every summer semester
The lecture "Algorithms & Data Structures" deals with techniques for designing and analyzing algorithms, sorting algorithms, basic data structures, systematic trial and error, and simple graph algorithms.
Learning Objectives
In this course, you will learn to:
- Measure and compare the efficiency of algorithms
- Implement basic algorithms and data structures
- Design algorithms and data structures yourself
- Prove their correctness and efficiency
Computability and Complexity (2L+1T)
Every winter semester
The lecture Computability and Complexity addresses the theoretical foundations of computer science, in particular formal models of computation, questions of decidability, and the analysis of the resource requirements of algorithms.
Learning Objectives
In this course, you will learn to
- understand and assess the limits of algorithmic solvability,
- analyze fundamental models of computation (e.g., Turing machines),
- distinguish and classify complexity classes,
- apply reductions as a central tool in complexity analysis, and
- formally evaluate the difficulty of problems.
Advanced Algorithms (4L+2T)
![[Translate to Englisch:] Fortgeschrittene Algorithmen](/fileadmin/_processed_/a/1/csm_fa_56032ab0e1.png)
For now, every winter semester
- Winter semester 2025/26
- Winter semester 2024/25
- Winter semester 2023/24
- Winter semester 2022/23
- Winter semester 2021/22
This course provides an overview of various topics in algorithmics based on a selection of materials on exact, geometric, randomized, and approximation algorithms, as well as advanced data structures. As such, this course serves as a foundation for the corresponding master lectures. The course covers improvements to classical algorithms as well as approaches to tackling NP-hard problems. These approaches range from understanding "good" algorithms that solve such problems exactly, to efficient algorithms that approximate such problems, to randomized approaches that perform well on average. In the process, we will learn about some interesting data structures that can be used for this purpose.
Learning Objectives
By the end of this course, participants should have a rough overview of advanced topics in algorithmics and data structures. They should be able to analyze and design algorithms of any type and understand the appropriate use of data structures.
Graph Visualization (2L+1T)
![[Translate to Englisch:] Visualisierung von Graphen](/fileadmin/_processed_/b/d/csm_vg_37dbecb82e.png)
Expected next time in summer semester 2026
Graph Drawing deals with the geometric representation of graphs and networks and is motivated by applications where visualizing structural information as a graph is essential. The field ranges from purely theoretical aspects to implementations encountered in everyday life. We focus on the main algorithms for drawing graphs. We will learn measures for the quality of a graph drawing and examine algorithms that optimize these measures.
Learning Objectives
Participants gain an overview of the topic of graph visualization (which is very suitable for thesis work) and become familiar with typical tools for it. They deepen their knowledge of modeling and solving problems using graphs and graph algorithms.
Algorithms for Programming Contests (2L+1T)

Every summer semester
The lecture "Algorithms for Programming Contests" serves as an introduction to the world of programming competitions, particularly the International Collegiate Programming Contest (ICPC) and the German Collegiate Programming Contest (GCPC).
Learning Objectives
In this course, you will learn to:
- Formulate problems abstractly
- Develop solution concepts
- independently Implement the solution concepts quickly and efficiently
- Basic programming skills in C++
Algorithms for Geographic Information Systems (2L+1T)

Every even winter semester
This lecture deals with the algorithmic foundations of geographic information systems (GIS) and their application to selected problems in the collection, processing, analysis, and presentation of spatial information. The focus is on methods of discrete and continuous optimization. The applications discussed include the creation of digital elevation models, working with GPS trajectories, tasks in spatial planning, and cartographic generalization.
Computational Geometry (2L+1T)
Every odd-numbered winter semester
The lecture Algorithmic Geometry deals with the development and analysis of efficient algorithms for geometric problems, such as those that arise in computer graphics, geographic information systems, robotics, or data analysis.
Learning Objectives
In this course, you will learn to
- formally model geometric problems,
- apply fundamental algorithmic techniques of algorithmic geometry,
- develop efficient solutions for classical problems such as neighborhood structures, visibility questions, or area computations,
- design geometric data structures, and
- analyze the runtime and correctness of geometric algorithms
Network Algorithms (2L+1T)
Every odd-numbered summer semester
The lecture Network Algorithms focuses on algorithmic methods for analyzing and optimizing networks, such as those found in transportation, communication, or supply systems.
Learning Objectives
In this course, you will learn to
- formally model network problems,
- algorithmically solve classical optimization problems such as shortest paths, flows, or matchings,
- develop efficient strategies for routing, planning, and resource allocation problems,
- apply suitable data structures for network algorithms, and
- analyze and evaluate the runtime and quality of solutions.