People who analyze algorithms have double happiness. First of all they experience the sheer beauty of elegant mathematical patterns that surround elegant computational procedures. Then they receive a practical payoff when their theories make it possible to get other jobs done more quickly and more economically.
Mathematical models have been a crucial inspiration for all scientific activity, even though they are only approximate idealizations of real-world phenomena. Inside a computer, such models are more relevant than ever before, because computer programs create artificial worlds in which mathematical models often apply precisely. I think that's why I got hooked on analysis of algorithms when I was a graduate student, and why the subject has been my main life's work ever since.

Analysis of Algorithms (Winter 2022/23)

Synopsis

This course is about mathematical tools and techniques needed to analyze algorithms rigorously. We will learn how to analyze the average running time of algorithms (as opposed to the worst-case running time), recurrence relations, generating functions, and asymptotic approximations.

Language

The entire course (lectures and tutorials) will be in English.

Requirements

There are soft requirements for this course: We expect students to have taken basic undergraduate courses in algorithms and programming along with the relevant math courses.

Registration

No registration is required to attend the lectures or the weekly tutorial. If you register, you will have access to the moodle room with the latest materials. You must, however, register for the final exam.

ECTS Credits

Students will be awarded 8 ECTS credits after passing the final exam.

Exercises

  • Will be added here during the lecture period.

Books

There is a script that contains all material. It will be provided at the beginning of lectures. Moreover, the books that are referred below provide excellent material for this course and should definitely be consulted.

More Information on Analysis of Algorithms