Course teached as: B018967 - SISTEMI DISTRIBUITI E RETI DI CALCOLATORI Second Cycle Degree in COMPUTER SCIENCE
Teaching Language
Italian.
Course Content
The course introduces the students to basic principles of distributed computing, by emphasising common themes and techniques. At the end of the course, the students will learn and be able to use the main techniques behind the design of distributed systems, mostly related to communication, coordination, fault tolerance, locality, symmetry breaking, synchronisation, and uncertainty.
Nicola Santoro. Design and Analysis of Distributed Algorithms. Wiley, 2007
Learning Objectives
The course aims at introducing the students to the design and analysis of algorithms for distributed computing systems, by focusing on the nature and the structure of these systems, by identifying general principles and techniques, and by ignoring the specific details of a specific system. At the end of the course, the students will be able to design and analyse an algorithm for distributed computing systems, to prove its correctness and to verify its efficiency.
Prerequisites
Algorithms and data structures, discrete mathematics, probability, programming.
Teaching Methods
Traditional lectures.
Type of Assessment
Homework, algorithm implementation, and oral exam.
Course program
Distributed computing environments. Basic problems and protocols. Leader election. Message forwarding and shortest paths. Distributed set operations. Synchronous computing. Fault tolerance.