# Core course: Algorithms and data structures

#### Description

This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.

**ECTS-Points: 6**

#### Learning goals

In this course you will learn

- to measure and compare the efficiency of algorithms,
- to implement fundamental algorithms and data structures in Java,
- to design your own algorithms and data structures,
- and to prove their correctness and efficiency.

#### Setup

Weekly lectures (online) and weekly exercise session.

#### Recommended literature:

- T. H. Cormen, C. E. Leiserson, R. Rivest and C. Stein: An Introduction to Algorithms. MIT Press, 3rd edition, 2009.
- T. H. Cormen, C. E. Leiserson, R. Rivest and C. Stein: Algorithmen — eine Einführung. Oldenbourg Wissenschaftsverlag, 3. Auflage, 2010.
- M. T. Goodrich and R. Tamassia: Data Structures and Algorithms in Java. Wiley, 5th edition, 2010.
- K. Mehlhorn and P. Sanders: Algorithms and Data Structures: The Basic Toolbox. Springer, 2008.