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 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.
The course consists of 15 two-hour lectures in the mornings of mondays and thursdays with two-hour exercise classes before each lecture. You have to show up at 8:15 for the exercise classes. 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.
The lectures will normally take place in auditorium B3-104, but to be sure check the semester calendar before each lecture.
|Simonas Saltenis (email@example.com), lecturer|
|Søren Holbech Nielsen (firstname.lastname@example.org), teaching assistant|
|Jan Eliasen (email@example.com), teaching assistant|