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. We will see how these techniques can be used to solve different problems. The important part of the course will deal with the analysis of algorithms, where we will look at the ways to reason about the efficiency and correctness 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. In the course, we will spend plenty of time with each of these algorithms, favoring the quality of understanding to the quantity of algorithms covered.

Exercise classes and the exam

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. In addition, to succeed in the exam, you will have to master writing algorithms in a precise, clear, and concise format.

To practice for the written exam, each lecture will have one hand-in exercise. The solution to the hand-in exercise have to be written on a sheet of paper and delivered to me (one solution per group). Hand-in exercises will be corrected and discussed during the next exercise session. These exercises will be very similar to the exercises that may be expected during the exam. Those who solve and write down answers to these exercise should easily pass the exam.

Practical information

The course consists of 15 two-hour lectures in the mornings of thursdays or afternoons of mondays with two-hour exercise classes before each lecture. You have to show up at 8:15 for the exercise classes in the morning or at 12:30 for the exercise classes in the afternoon. The exercises in exercise classes will be related to the material presented in the preceding lecture, so that you have time to work on the exercises at home.

Starting from lecture 5, the lectures are recorded on video. You can find the recordings at

Course Teachers

Simonas Saltenis (, lecturer
Xuegang Huang (, teaching assistant
Kim R. Bille (, teaching assistant
Jacob Larsen (, teaching assistant

Last updated Aug 23, 2004, Simonas Saltenis