Distributed Systems (with Lab)

CS4280.01
Course System Home Terms Fall 2017 Distributed Systems (with Lab)

Course Description

Summary

In this class, we will, as a group, build a working distributed system from scratch, such as a web search engine, distributed file system, blockchain/distributed ledger, or peer-to-peer network. By building such a system, students will learn about key theoretical and practical fundamentals related to distributed systems and software engineering, such as concurrency, replication, commit models, fault-expectancy, self-organization and management, load-balancing, capacity planning, network programming, containerization and microservices, and physical and environmental considerations. These key principles are what lie at the core of the designs of well-known systems such as those built by Google, Bing, Facebook, Yahoo, Twitter and others. The class will evolve from reading and discussing research and working on foundational programming projects, to working through the design of the system, developing it, planning its deployment, and releasing it into the wild.

Prerequisites

A 2000-level Computer Science class with a programming component, or permission of the instructor.

Please contact the faculty member :

Instructor

  • Andrew Cencini

Day and Time

Academic Term

Fall 2017

Area of Study

Credits

4

Course Level

4000

Maximum Enrollment

18