Languages and algorithms for distributed applications [ LSINF2345 ]

5.0 crédits ECTS  30.0 h + 15.0 h   2q 

Teacher(s) Van Roy Peter ;
Language English
of the course
Online resources


  • Mastering of at least one programming system (eg Mozart system through the course INGI1131)
  • basics of concurrent programming such as provided by INGI1131
Main themes
  • Study of the theoretical basis of distributed systems, distributed algorithms, and languages for distributed programming. -
  • Study of the specific issues related to distributed and mobile systems : geographic distribution, management of localized and distributed resources, fault tolerance, security, interoperability, and openness.
  • Practical use of several representative and advanced systems and languages for programming collaborative, distributed, and mobile applications.

Students completing successfully this course will be able to

  • define distributed systems and distributed algorithms with concepts they contain and the properties they give to programs.
  • design collaborative applications on distributed systems using rigorous models to deal with concurrency and partial failure.
  • implement collaborative applications on distributed systems using appropiate technics.
  • use some advanced tools for the development of distributed and mobile applications.

Students will have developed skills and operational methodology. In particular, they have developed their ability to

  • think with abstractions (reason correctly about a system that consists of several layers of abstractions, and define new abstractions to simplify a problem's solution).

The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.

Evaluation methods
  • Dispensatory test 25% (around week 7)
  • Project 25%
  • Final exam 50% (or 75% if redoing test part)
Teaching methods
  • Lectures each week
  • Practical sessions in the computer room, every two weeks, to solve simplified problems using concepts explain during the lectures
  • Design and programming project to apply these concepts in a more complexe application
  • Introduction to distributed systems
  • Formal models of distributed systems
  • Specification and implementation of distributed systems
  • Failure detectors
  • Reliable broadcast
  • Causal broadcast
  • Shared memory
  • Concensus
  • Applications of concensus

Mandatory support:

  • slides available online

Course material:

  • Rachid Guerraoui and Luis Rodrigues. "Introduction to Reliable Distributed Programming". Springer-Verlag, 2006.
  • Hagit Attiya and Jennifer Welch. "Distributed Computing: Fundamentals, Simulations, and Advanced Topics". McGraw-Hill, 1998.
  • Peter Van Roy et Seif Haridi, Chapter 11 de Concepts, Techniques, and Models of Computer Programming, MIT Press, 2004.
  • Peter Van Roy, Per Brand, Seif Haridi et Raphael Collet, A Lightweight Reliable Object Migration Protocol, Springer LNCS 1686, 1998.
Cycle et année
> Master [120] in Computer Science and Engineering
> Master [120] in Computer Science
> Master [120] in Electrical Engineering
Faculty or entity
in charge

<<< Page précédente