Algorithms & Complexity
People
Description
The course contents include graph traversals, greedy algorithms, divide and conquer algorithms, dynamic programming, network flow, bipartite matching, circulation, NP completeness and computational intractability, approximation algorithms. Techniques on algorithm design and analysis will be developed by drawing on problems from across many areas of computer science and related fields.
Objectives
Algorithms are central to computer science as they lie at the core of any software system. This course will cover fundamental techniques for designing efficient computer algorithms, analysing their performance, and proving their correctness. It will also cover various application instances that use these techniques. The objective is that students learn the principles of algorithm design in computer science in order to acquire the ability to design efficient algorithms on their own.
Teaching mode
In presence
Learning methods
Lectures, lab sessions, homework assignments involving algorithmic problem solving.
Examination information
The course grade is determined by the results of homework assignments, a midterm exam, and a final exam.
Bibliography
- Kleinberg, Jon, Tardos, Eva. Algorithm Design. Addison-Wesley, 2013.
Education
- Master of Science in Artificial Intelligence, Lecture, 1st year
- Master of Science in Computational Science, Lecture, Elective, 2nd year
- Master of Science in Financial Technology and Computing, Lecture, Elective, 2nd year
- Master of Science in Informatics, Lecture, 1st year
- Master of Science in Informatics, Lecture, 2nd year
- PhD programme of the Faculty of Informatics, Lecture, Elective, 1st year (4.0 ECTS)