# Summer semester 2024

## Master

### Algorithms and Data Structures (4L+2T)

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

For now, every winter semester

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)

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++