This course covers the design and implementation of distributed systems. Students will gain an understanding of the fundamental principles and techniques behind modern, reliable, and high-performance distributed systems.
Topics include the fundmanetals of naming and network communication, time, consistency models (eventual, strong, causal), replicated state machines, consensus, concurrency control and transactions, and various related topics. Modern techniques and systems employed at some of the largest Internet sites (e.g., Google, Facebook, Amazon) will also be covered.
Through programming assignments, students will gain practical experience designing, implementing, and debugging real distributed systems. Programming assignments will be time intensive and involve significant system design and programming in Go.
Prerequisite: COS 217 required. COS318, COS 333, and/or programming maturity recommended.
Last updated: 2018-01-14 22:57:53 -0500