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
|
Place of the course |
Louvain-la-Neuve
|
Online resources |
> https://icampus.uclouvain.be/claroline/course/index.php?cid=LSINF2345
|
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 |
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).
|
Evaluation methods |
-
Dispensatory test 25% (around week 7)
-
Project 25%
-
Final exam 50% (or 75% if redoing test part)
The project is obligatory and is done during the quadrimester. It can only be done only once and it accounts for all academic year
|
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
|
Content |
-
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
|
Bibliography |
Mandatory support:
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.
|
Other information |
Background :
-
LINGI1131 : Mastering of at least one programming system and basics of concurrent programming
|
Cycle et année d'étude |
> Master [120] in Computer Science
> Master [120] in Computer Science and Engineering
> Master [120] in Electrical Engineering
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|