• Length:
    5 Weeks
  • Price:

    Add a Verified Certificate for $49 USD

  • Institution
  • Subject:
  • Level:
  • Language:
  • Video Transcript:
  • Course Type:
    Instructor-led on a course schedule


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.

About this course

Skip About this course

This course is the first course in a series of two. Both courses provide a solid foundation in the area of reliable distributed computing, including the main concepts, results, models and algorithms in the field.

Today's global IT infrastructures are distributed systems; from the Internet to the data-centers of cloud computing that fuel the current revolution of global IT services. At the core of these services you find distributed algorithms.

These algorithms run on multiple computers and communicate only by sending and receiving messages. It is crucial for the implemented services to continue to work 24/7 even if some of the computers fail or some of the messages are lost in transit. This is the subject of reliable distributed algorithms in computer science.

ID2203.1x covers models of distributed algorithms based on input/output automata; specifications of fault tolerant abstractions and failure detectors; specific distributed abstractions and fault-tolerant algorithms, including reliable broadcast and causal broadcast; key-value stores and consistency models; single-value consensus and the Paxos algorithm.

To complete the course with a full grade (100%) students are required to answer the graded quizzes provided every week, as well as the programming assignments.

What you'll learn

Skip What you'll learn
  • Event-driven concurrent programming of distributed algorithms
  • Formal models of asynchronous systems using input/output automata
  • Failure detectors and equivalence between various distributed abstractions
  • Specifications and algorithms for reliable and causal-order broadcast
  • Distributed shared memory and consistency models
  • Single value consensus and related consensus algorithms, including Paxos.

Meet your instructors

Seif Haridi
Chair-Professor of Computer Systems
KTH Royal Institute of Technology
Paris Carbone
PhD candidate and TA
KTH Royal Institute of Technology
Lars Kroll
PhD candidate and TA
KTH Royal Institute of Technology

Pursue a Verified Certificate to highlight the knowledge and skills you gain
$49 USD

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    EdX, a non-profit, relies on verified certificates to help fund free education for everyone globally