1st Semester, 2020/21
In Fall 2020, the course will be given online. News and updates about the course will be communicated through the telegram channel of the course [Link].
The zoom links are contained in this google doc, accessible only through the UniTn account (don’t ask for access through other accounts).
The moodle page will only contain a link to this page.
The course will start regularly on September 16th, 14.30–16.30.
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.