Distributed Systems (with Lab)

CS4280.01
Course System Home Terms Spring 2020 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. Includes lab.

Prerequisites

Permission of the instructor. Email instructor at acencini@bennington.edu for consideration prior to registration deadline; if multiple CS courses desired, please indicate priority

Please contact the faculty member :

Instructor

  • Andrew Cencini

Day and Time

Academic Term

Spring 2020

Area of Study

Credits

4

Course Level

4000

Maximum Enrollment

12