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.
Lectures are in youtube videos and should be watched before the given date.
Schedule and Lecture Notes
Teacher: Pasi Fränti
Schedule: 15 video lectures
Introduction lecture: 3.9.2024
Tuesday 14-16: Discussions (Teams) about the weekly topics.
Exercises are made at your own time. Minimum of 33% tasks need to be done to pass the course. Deadline for the submissions each week is Friday 10:00. All submitted exercises count as one point. To pass the course, you need 33% of the total points. Participating the exercise sessions is obligatory.
Teachers: Teachers on the session: Pasi Fränti and Jimi Tuononen
Schedule: 14 h, starting from 6.9.
Friday: 10-12 TB178 + E26 + (Teams)
Exercise 1 (new)
Exercise 2 (new)
Exercise 3 (new)
Exercise 4 (new)
Exercise 5 (new)
Exercise 6 (new)
Exercise 7 (new)
Exercise 8 (new)
Solutions must be submitted before the exercise session starts via Moodle. Use the course key: daa2024autumn
Course score is calculated as a weighted sum of the exam points (0.9) and the exercise points (0.2). The result is converted to grade using the following lower limits:
- 0.9 = 5
- 0.8 = 4
- 0.7 = 3
- 0.6 = 2
- 0.5 = 1
Data Structures and Algorithms I and II
Friday 1.11. 12-16 (Joensuu C1, Kuopio SN100)
Friday 5.12. 12-16 (Joensuu M100, Kuopio CA101)
Register via Peppi
T. Cormen, C. Leiserson, and R. Rivest: Introduction to Algorithms, MIT Press, 1990.
S.S. Skiena: The Algorithm Design Manual, Springer 2008.
P. Fränti: Design & Analysis of Algorithms, Lecture Notes, 2012-2022.
Advanced Topics in Algorithms