This course is taught in English. This course is regularly offered every winter semester.
This course was previously offered in the winter terms 20/21 and 21/22.
Link to official course page
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.
Lectures take place on Wednesday, 9:45 - 13:00, in the Audimax II.
There are six group exercise classes:
- Mo, 11:30 - 13:00, Room H - 0.08 (Group 4)
- Mo, 16:45 - 18:15, Room O - 0.018 (Group 2)
- Tu, 11:30 - 13:00, Room D - 1.021 (Group 3)
- We, 8:00 - 9:30, Room H - 0.03 (Group 6)
- Thu, 11:30 - 13:00, Room H - 0.03 (Group 1)
- Fri, 8:00 - 9:30, Room H - 0.03 (Group 5)
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.