Languages and algorithms for distributed Applications

lsinf2345  2020-2021  Louvain-la-Neuve

Languages and algorithms for distributed Applications
Due to the COVID-19 crisis, the information below is subject to change, in particular that concerning the teaching mode (presential, distance or in a comodal or hybrid format).
5 credits
30.0 h + 15.0 h
Q1
Teacher(s)
Van Roy Peter;
Language
English
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.
Aims

At the end of this learning unit, the student is able to :

1 Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
  • INFO1.1-3
  • INFO2.2-4
  • INFO5.4-5
  • INFO6.1, INFO6.4
Given the learning outcomes of the "Master [120] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
  • SINF1.M2
  • SINF2.2-4
  • SINF5.4-5
  • SINF6.1, SINF6.4
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).
 
Content
  • Introduction to distributed systems
  • Formal models of distributed systems
  • Specification and implementation of distributed systems (including safety and liveness)
  • Failure detectors
  • Reliable broadcast
  • Causal broadcast
  • Shared memory
  • Consensus
  • Applications of consensus
  • Large-scale systems (gossip and peer-to-peer)
Teaching methods

Due to the COVID-19 crisis, the information in this section is particularly likely to change.

  • Lectures each week (in auditorium or online, according to university requirements)
  • 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
Evaluation methods

Due to the COVID-19 crisis, the information in this section is particularly likely to change.

  • Dispensatory test 25% (around week 7)
  • Project 25%
  • Final exam 50% (or 75% if redoing test part)
The project is mandatory and is done during the quadrimester. It can only be done only once and it counts for the whole academic year.  The optional dispensatory test and the final exam may be done in auditorium or online, depending on university requirements.
Other information
Background :
  • LINGI1131 : Mastering of at least one programming system and basics of concurrent programming
Online resources
LSINF2345 on Moodle: https://moodleucl.uclouvain.be/course/view.php?id=1824
Bibliography
Mandatory course material:
  • Course slides (on Moodle)
Bibliography:
  • 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.
Teaching materials
  • Rachid Guerraoui and Luis Rodrigues, Introduction to Reliable Distributed Programming
Faculty or entity
INFO


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Aims
Master [120] in Computer Science and Engineering

Master [120] in Computer Science

Master [120] in Data Science Engineering

Master [120] in Data Science: Information Technology