Course Description

An algorithm is a well-defined procedure to solve a specific problem. The study of algorithms is a key area of computer science. The uniqueness and universality of algorithms makes computer science into a separate branch of both science and engineering.

This course has the aim to teach the main principles of algorithm design. Through a number of examples, the course will try to convey both the general spirit of thinking about the algorithms and a number of commonly used techniques for algorithm design. The important part of the course will deal with the analysis of algorithms, where we will look at the ways to reason about the correctness and efficiency of algorithms. Finally, the course will present a small toolbox of commonly used algorithms and data structures. These algorithms can be considered to be the "classics" of computer science.

Exercise classes are a very important part of this course. Sitting down with a sheet of paper and actually "running" the algorithm on a small example may give you more intuition than reading about the algorithm or just reading the pseudocode of the algorithm.

Practical information

The course consists of 15 two-hour lectures with exercise classes after each lecture. The exercises in exercise classes will be related to the material presented in the preceding lecture, so that we can solve them while the material presented in the lecture is still hot in our minds.

Notice that lectures will take place in different auditoriums and classrooms during the semester. Check a lecture announcement before each lecture.

Course Teachers

Simonas Saltenis (, lecturer
Anders B. Christensen (, teaching assistant
Daniel Povlsen (, teaching assistant

Last updated Sep 3, 2001, Simonas Saltenis