• 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


It is recommended that students complete part 1 of this course series (ID2203.1x) ahead of starting part 2. Students also need at least 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 second 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.

In order to ensure that IT infrastructures - a key engine of operations for any organization - operate at full capacity and efficiency, it is vital to understand its core: distributed algorithms. To achieve this, the infrastructure itself must be reliable and resilient. This course continues on the foundations of distributed algorithms, introduced in ID2203.1x, and builds on these concepts at a higher level of complexity to develop the skills needed to build and maintain reliable and efficient distributed systems.

ID2203.2x covers specific advanced abstractions and algorithms including sequence consensus and multi-Paxos; atomic broadcast and replicated state machines. It also covers dynamic reconfiguration of services; the use of physical clocks in distributed systems; the CAP theorem, and weaker consistency models, including eventual consistency and conflict-free replicated data-types.

Students will experiment and develop a variety of distributed algorithms in an interactive, engaging programming environment using the Scala programming language. They will be guided throughout the programming assignments and provided with intuitive examples to help them get started.

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
  • Agreeing on an incremental sequence of values and the related multi-Paxos algorithm
  • Atomic broadcast and replicated state machines for fault-tolerant services
  • Dynamic reconfiguration of distributed services
  • The timed asynchronous model of distributed systems, and the use of physical clocks
  • Efficient distributed algorithms based on the timed asynchronous model
  • Relaxed consistency models and the CAP theorem, including various consistency models and conflict-free replicated data types

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