Search for contacts, projects,
courses and publications

Distributed Algorithms


Distributed computing systems arise in a wide range of modern applications. This course surveys the foundations of many distributed computing systems, namely, the distributed algorithms that lie at their core. The course provides the basis for designing distributed algorithms and formally reasoning about their correctness. It addresses issues related to what distributed systems can and cannot do (i.e., impossibility results) in certain system models. The course focuses on three aspects of distributed computing: system models, fundamental problems in distributed computing, and application of distributed algorithms. System models include synchronous versus asynchronous systems, communication models, and failure models. Several fundamental problems are covered, including consensus, atomic broadcast, atomic multicast, atomic commit, and data consistency. Applications of distributed algorithms target various forms of replication techniques.




  • Lecture notes and research articles.



Pedone F.

Course director

Coelho P.


Additional information

Academic year
Master of Science in Artificial Intelligence, Core course, Lecture, 1st and 2nd year

Master of Science in Financial Technology and Computing, Elective course, Lecture, 2nd year

Master of Science in Informatics, Elective course, Lecture, 1st and 2nd year

PhD programme of the Faculty of Informatics, Elective course, Lecture, 1st, 2nd and 3rd year