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 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.

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 video.auc.dk.

Simonas Saltenis (simas@cs.auc.dk), lecturer | |

Xuegang Huang (xghuang@cs.auc.dk), teaching assistant | |

Kim R. Bille (kemo@cs.auc.dk), teaching assistant | |

Jacob Larsen (jacobl@cs.auc.dk), teaching assistant |

Last updated Aug 23, 2004, Simonas Saltenis