I will not be responsible for the course in the academic years 22/23, 23/24, 24/25.
1st Semester, 2021/22
The course will start on Friday September 17th, 11.30–13.30. Monday September 13th will be skipped.
In Fall 2021, the course will be given in presence. Depending on the request, I will also stream it in zoom and make the recordings available. In this document (accessible only through an UniTN account), you can find the links to the zoom meetings.
News and updates about the course will be communicated through the telegram channel of the course [Link].
The moodle page will only contain a link to this page.
Description
The course assume some knowledge of the content covered by the Distributed Systems 1 (DS1) course, taught by Prof. Picco. There is no formal requirements, yet I will refer to the terminology discussed there, without re-introducing it, such as those contained in this paper:
- O. Babaoglu and K. Marzullo. Consistent global states of distributed systems: Fundamental concepts and mechanisms. In S. Mullender, editor, Distributed Systems (2nd ed.). Addison-Wesley, 1993.
- F. Schneider. Replication management using the state machine approach. In S. Mullender, editor, Distributed Systems (2nd ed.). Addison-Wesley, 1993.
The suggested order in which the two courses should be completed is as follows:
- For regular students:
- 2nd semester, 1st year: Distributed Systems 1
(or a similar course taken in a different university) - 1st semester, 2nd year: Distributed Systems 2
- 2nd semester, 1st year: Distributed Systems 1
- For students who have already taken Distributed Systems 1 in the Bachelor degree:
- 1st semester, 1st or 2nd year: Distributed Systems 2
Objectives
The Distributed Systems 2 course builds on the basic notions presented in Distributed Systems 1. The goal of this course is to provide students with an understanding of the main algorithmic techniques and design options in the implementation of modern distributed systems. Consider it as course on “Distributed Algorithms (and Data Structures)”; the focus is on the principles, rather than on a particular technology. Concretely, this includes the following objectives:
- Create an awareness of the major technical challenges in distributed algorithms design and implementation;
- Expose students to current techniques used to solve the aforementioned challenges;
- Provide experience in the implementation of typical algorithms used in distributed systems.
- Expose students to current technology and distributed infrastructure software.
The course will include 12 lab sessions in which students are asked to implement some of the algorithms that are discussed in the theory lectures.