Skip to main content

Course objectives

The main objective of this course is to provide the students with a solid foundation for understanding, analyzing and designing distributed algorithms for reliable distributed systems.

Prerequisites

The course requires an intermediate level of knowledge in computer programming, basic knowledge in computer science and mathematical skills.

The course will use the programming language Scala in the programming assignments. You can find a good tutorial on Scala here. An interesting tutorial online can be found here.

The course effort is 5 hours per week.

Course Syllabus Part 1

Week 1

Lecture 1: Introduction to distributed systems and algorithms
Introduction to the programming assignment environment.
Lecture 2: Formal models: Input Output Automata
1st Programming Assignment (Game of Life)

Week 2

Lecture 3a: Basic Abstractions
Lecture 3b: Model Timing Assumptions and Logical Clocks
Lecture 4: Failure Detectors
1st Graded Quiz
2nd Programming Assignment (Eventually Perfect Failure Detector)

Week 3

Lecture 5: Reliable Broadcast
Lecture 6: Causal-order Broadcast
2nd Graded Quiz
3rd Programming Assignment (Broadcasts)

Week 4

Lecture 7: Shared Memory
3rd Graded Quiz
4th Programming Assignment (Linearizable Shared Memory)

Week 5

Lecture 8: Consensus
Lecture 9: Paxos
4th Graded Quiz
5th Programming Assignment (Paxos)

Grading Policy

The course is graded on a Pass/Fail scale.

In order to pass the course you need to collect more than 50% of the possible points from the graded quizzes and the programming assignments. There is no final exam.

The weight of the graded quizzes is 60 points vs 40 for the programming assignments.

The deadlines for all the assignment and graded quizzes will be on November 28.

Course Syllabus Part 2

  • Sequence Consensus
  • Paxos and Multi-Paxos
  • Atomic Broadcast
  • Replicated State Machine
  • Dynamic Reconfiguration
  • Clocks in distributed systems
  • Weaker consistency models

Academic Policy

You must behave with academic honesty and respect your fellow students. Please abide by the edX Terms of Service Honor Code.