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.

Lectures

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: 5.9.
Tuesday 14-16: Discussions (Teams) about the weekly topics.

Exercises

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 8.9.
Friday: 10-12 TB248 + (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: daa 2023 autumn

Grading

Your course score is calculated as a weighted sum of the exam points (90%) and the exercise points (20%). Course grade is calculated based on the following lower limits:

Preliminary knowledge

Data Structures and Algorithms I and II

Exams

Friday 27.10. 12-16 (Joensuu M100)
Friday 1.12. 12-16 (Joensuu M100)
Register via Peppi

Recommended literature

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