EdX

Modern Distributed Systems (edX)

Modern Distributed Systems (edX)

Distributed systems are the backbone of modern society but entail challenges in areas such as complexity and energy-use. Discover distributed systems from first principles, understand the architectures and techniques derived from them and explore examples of current practical use.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Modern IT infrastructure is built as distributed systems, an exciting concept that started with the first computers and evolved rapidly into its present form. From online video meetings to internet services, from social media platforms to online games, we all use and interact with distributed systems on a daily basis and increasingly depend on them. Designing and operating such large-scale distributed systems, however, is complex and typically involves making reasonable compromises. There are fundamental technical barriers as well as economic arguments why we cannot make these systems behave as if they were running on a single, perfectly reliable machine..
In this course, learners will be introduced to the essential functional and non-functional concerns of distributed systems and the common problems encountered while designing them, such as consistency, availability, elasticity, and scalability. A variety of practical solutions that have been established in the leading tech industry in recent years will be reviewed. These provide re-usable building blocks to create new large-scale applications. These recent developments, especially around cloud computing, large-scale data processing, distributed machine learning, and other fields are often not reflected in textbooks and are absent from many traditional curricula but are at the heart of this course.
The course will therefore provide learners with the fundamental understanding (theoretical and practical foundations) of how cloud, edge, and big data processing systems work and how they address common challenges for distributed systems such as performance, resilience, and scalability.
The learning progress is assessed through a variety of different activities including quizzes, design exercises, experiments, and open questions, with peer review of other students’ solutions. In the final project, learners will design a distributed system based on the learners’ own experience and interests and describe the functional and non-functional properties of the system.

What you'll learn

  • Describe the principles of distributed systems.
  • Contrast distributed systems with other forms of computation (e.g., single machine computation, parallel computing).
  • Identify applications of distributed systems in science, engineering, business, and home use, and in particular the use of cloud and serverless applications, big data and graph processing applications, interactive and online gaming, etc.
  • Analyze and design core architectures, components, and techniques in distributed systems.
  • Solve practical problems related to modern uses of distributed systems.

Syllabus

Module 1: Introduction to Distributed Systems

  • Parallel vs. Distributed Systems
  • Challenges in Distributed Systems
  • The CAP Theorem
  • Example 1: Online Gaming
  • Example 2: Scientific Computing

Module 2: Functional Requirements

  • Functional vs. Non–Functional Properties
  • Naming
  • Replication
  • Consistency
  • Consensus

Module 3: Non-Functional Requirements

  • Importance of Performance
  • Measuring NFRs: Metrics
  • Scalability and Elasticity
  • Amdahl’s Law
  • Gustafson’s Law
  • Benchmarking

Module 4: Resource Management and Scheduling

  • Scheduling in the Small: Processor Scheduling
  • Scheduling in the Large: Scheduling for Distributed Systems
  • Workloads in DS
  • Centralized Schedulers: Kubernetes, etc.
  • Decentralized Schedulers: (HTCondor) etc.
  • Portfolio Scheduling

Module 5: System Architectures and Programming Models

  • Trade-offs between SAs and PMs
  • Programming Models
  • System Architectures: communication, big data, machine learning
  • Layering

Module 6: Distributed Ecosystems

  • Introduction to massive processing
  • Theory of ecosystems
  • Super-distribution principle
  • Distributed ecosystems in science and engineering: cloud, edge, big data
  • Distributed ecosystems in online gaming
  • The future of distributed ecosystems
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Probability - The Science of Uncertainty and Data (edX) EdX
MIT,MITx

Probability - The Science of Uncertainty and Data (edX)

Build foundational knowledge of data science with this introduction to probabilistic models, including random processes and the basic elements of statistical inference. The world is full of uncertainty: accidents, storms, unruly financial markets, noisy communications. The world is also full of data. Probabilistic modeling and the related field of statistical inference are the keys to analyzing data and making scientifically sound predictions.

Sep 1st 2026
13-24 Weeks
Get Organized: How to be a Together Teacher (Coursera) Coursera
Relay Graduate School of Education

Get Organized: How to be a Together Teacher (Coursera)

This course is designed for classroom teachers who juggle time-sensitive tasks and often-exhausting teaching schedules. With an eye toward long-term sustainability, The Together Teacher examines the purpose for planning ahead, provides tools for tracking time commitments, deadlines and tasks, and helps teachers develop a personal organization system that interacts with their day-by-day practices. All teachers, from the pen & paper list maker to the tech-savvy digital maven, will benefit from the no-nonsense approach to "togetherness" that's presented in this course. We don't care what format you use; we care that you know when you have free time during the day, and that you have a plan for using it.

May 4th 2026
5-12 Weeks
Introduction to Operating Systems (Udacity) Udacity
Georgia Institute of Technology,Udacity

Introduction to Operating Systems (Udacity)

Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches the basic operating system abstractions, mechanisms, and their implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication, and an introduction to distributed operating systems. The course is split into four sections: (1) Introduction, (2) Process and Thread Management, (3) Resource Management and Communication, and (4) Distributed Systems.

Self Paced
Self-Paced
CS50's Introduction to Computer Science (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50 teaches students how to think algorithmically and solve problems efficiently.

Self Paced
Self-Paced
IT Fundamentals for Business Professionals: Enterprise Systems (edX) EdX
Universitat Politècnica de València,UPValenciaX

IT Fundamentals for Business Professionals: Enterprise Systems (edX)

Working with Information Technology (IT) without the necessary background? Learn the fundamentals of Information Systems in a corporate environment. This course is one of the 5 courses of an introductory business information systems series, designed to introduce you to the amazing world of Information Technology.

Self Paced
Self-Paced
Manufacturing Systems II (edX) EdX
MIT,MITx

Manufacturing Systems II (edX)

Learn how to analyze manufacturing systems to optimize performance and control costs and better understand the flow of material and information. Manufacturing systems are complex systems that require analytical analysis. Managers and practitioners use a wide variety of methods to analyze and optimize the performance of manufacturing systems and control costs.

Mar 6th 2024
5-12 Weeks
Construction Scheduling (Coursera) Coursera
Columbia University

Construction Scheduling (Coursera)

Learners will discover the key project scheduling techniques and procedures including; how to create a network diagram, how to define the importance of the critical path in a project network, and defining project activities float. Also covered are the fundamentals of Bar Charts, Precedence Diagrams, Activity on Arrow, PERT, Range Estimating, and linear project operations and the line of balance.

Aug 24th 2026
5-12 Weeks