Languages and algorithms for distributed applications [ LSINF2345 ]

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

Enseignant(s) Van Roy Peter ;
Lieu de l'activité Louvain-la-Neuve
en ligne


  • Mastering of at least one programming system (eg Mozart system through the course INGI1131)
  • basics of concurrent programming such as provided by INGI1131
Thèmes abordés
  • 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).

La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».

Modes d'évaluation
des acquis des étudiants
  • Dispensatory test 25% (around week 7)
  • Project 25%
  • Final exam 50% (or 75% if redoing test part)
Méthodes d'enseignement
  • 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
Faculté ou entité
en charge

<<< Page précédente