Distributed Systems | Carnegie Mellon University Course

Carnegie-Mellon University

Gain hands-on experience in designing, implementing, and debugging real distributed systems with this comprehensive course from Carnegie Mellon University.

University CoursesGoUnix

Introduction

Introduction to distributed systems with a focus on teaching concepts via projects implemented in the Go programming language.

screenshot

Highlights

  • Gain an understanding of the principles and techniques behind the design of distributed systems, such as locking, concurrency, scheduling, and communication across the network.
  • Gain practical experience designing, implementing, and debugging real distributed systems.
  • Learn major themes including scarcity, scheduling, concurrency and concurrent programming, naming, abstraction and modularity, imperfect communication and other types of failure, protection from accidental and malicious harm, optimism, and the use of instrumentation and monitoring and debugging tools in problem solving.
  • Design, implement, and debug large programming projects.

Recommendation

This course is recommended for students who are proficient in C and Java programming on UNIX systems and have taken 15-213 with a "C-" or higher. It provides valuable hands-on experience in building distributed systems and is a great choice for those interested in distributed computing and system design.

How GetVM Works

Learn by Doing from Your Browser Sidebar

Access from Browser Sidebar

Access from Browser Sidebar

Simply install the browser extension and click to launch GetVM directly from your sidebar.

Select Your Playground

Select Your Playground

Choose your OS, IDE, or app from our playground library and launch it instantly.

Learn and Practice Side-by-Side

Learn and Practice Side-by-Side

Practice within the VM while following tutorials or videos side-by-side. Save your work with Pro for easy continuity.

Explore Similar Hands-on Tutorials

The Art of Unix Programming

1
Technical TutorialsProgrammingUnix
Comprehensive guide to Unix programming and open source principles, covering Unix history, key concepts, and techniques for developers and programmers.

UNIX Application and System Programming, lecture notes

10
Technical TutorialsProgrammingUnix
Comprehensive lecture notes on Unix application and system programming, covering key concepts and providing a thorough introduction to the topic.

Conquering the Command Line

15
Technical TutorialsLinuxUnix
Comprehensive guide to mastering Unix and Linux commands for developers. Covers essential tools, file manipulation, system administration, and more. Applicable across OS X, Linux, and *BSD platforms.

Essentials of Go Programming

15
Technical TutorialsGoProgramming
Comprehensive guide to learning the Go programming language, covering fundamental concepts, best practices, and practical examples for software development.

Go for Python Programmers

12
Technical TutorialsGoPython
Learn the Go programming language with this comprehensive guide designed for experienced Python programmers. Authored by Jason McVetta, this course covers installation, setup, and key Go features.

Go Handbook | Comprehensive Guide for Software Developers

10
Technical TutorialsGoProgramming
A comprehensive guide to the Go programming language, covering essential concepts, best practices, and practical examples for software developers.

Go Succinctly | Programming Language Guide

15
Technical TutorialsGoSoftware Development
Dive into the Go programming language with Go Succinctly, a comprehensive guide covering the language's key features and applications in software development.

Go Programming | Comprehensive Tutorial for Beginners

10
Technical TutorialsGoProgramming
Learn Go programming language from scratch with this comprehensive tutorial by Tutorials Point. Covers syntax, features, and standard library for software developers.

Go Web Development Succinctly

12
Technical TutorialsGoWeb Development
A concise and practical guide to building scalable web applications using the Go programming language. Covers key topics like serving, routing, data sources, and more.