Algorithms & Complexity
Persone
Descrizione
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.
Obiettivi
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.
Modalità di insegnamento
In presenza
Impostazione pedagogico-didattica
Lectures, lab sessions, homework assignments involving algorithmic problem solving.
Modalità d’esame
The course grade is determined by the results of homework assignments, a midterm exam, and a final exam.
Bibliografia
- Kleinberg, Jon, Tardos, Eva. Algorithm Design. Addison-Wesley, 2013.
Offerta formativa
- Master of Science in Artificial Intelligence, Lezione, 1° anno
- Master of Science in Computational Science, Lezione, A scelta, 2° anno
- Master of Science in Financial Technology and Computing, Lezione, A scelta, 2° anno
- Master of Science in Informatics, Lezione, 1° anno
- Master of Science in Informatics, Lezione, 2° anno
- Dottorato in Scienze informatiche, Lezione, A scelta, 1° anno (4.0 ECTS)