Design and Analysis of Algorithms (6 op) 3621511

Course description

Design principles of algorithms and their application to computing problems. Topics include NP-completeness, analysis techniques, and main design principles including divide-and-conquer, dynamic programming, and branch-and-bound. Examples of advanced data structures and algorithmic approaches (like heuristics, approximation, and randomization) to solving hard computational problems.


Teacher: Pasi Fränti
Schedule: 34 h, starting from 10.9.2018 (Mon)
Monday 14-17 -- 180 (Joensuu) F213 (Kuopio)
Tuesday 14-16 -- 180 (Joensuu) F213 (Kuopio)
25.10. Thu 10-12: Q&A -- 180 (Joensuu) F213 (Kuopio)
Schedule and Lecture Notes


Teachers: Sami Sieranoja (Joensuu)
Schedule: 16 h, starting from 15.9.
Friday: 10-12
Seminar room: 180 (Joensuu), F213 (Kuopio)
Exercise 1
Exercise 2
Exercise 3
Exercise 4
Exercise 5
Exercise 6
Exercise 7 (Tasks 1 and 4 available only 22.10.)
Exercise 8

Preliminary knowledge

Data Structures and Algorithms I and II


Friday 2.11. 12-16 (Joensuu M100, Kuopio CA101)
Friday 23.11. 12-16 (Joensuu M100, Kuopio MD100)
Register via WebOodi

Recommended literature

T. Cormen, C. Leiserson, and R. Rivest: Introduction to Algorithms, MIT Press, 1990.
P. Fränti, Design & Analysis of Algorithms, Lecture Notes, 2012-2018.
Course page in Kuopio campus
Advanced Topics in Algorithms