CS 417 Documents

O you possessed of sturdy intellects, observe the teaching that is hidden here beneath the veil of verses so obscure.
         — Dante Alighieri, Inferno IX:61-63, trans. A. Mandelbaum

This page contains links to lecture note, in-class lecture slides, and related reading material. Lecture slides are in Adobe PDF format. You probably have something that reads pdf files already. If you don't have a pdf reader for your platform, you can get one for free for Windows, Mac OS, iOS, Android, or Windows Phone. You don't need one for the Mac since Preview can render pdf files. You also don't need one for the iPhone or iPad. If you're using an Android platform and don't have a pdf viewer installed, you can download the Google PDF Viewer, Adobe Acrobat, or any of dozens of other viewers.

Please let me know if you find any errors or unclear wording. Any corrections will be most appreciated.

Lecture notes

Week Title
Week 1. A taxonomy of distributed systems
  Lecture slides (6 per page)
  Client-server communication
  Networking lecture slides (6 per page)
Week 2 Remote Procedure Calls
  RPC lecture slides (6 per page)
  RPC case studies: lecture slides (6 per page)
Week 3. Clock synchronization (pdf)
  Clock synchronization slides (6 per page)
  Logical clocks slides (6 per page)
  Clock synchronization: assigning Lamport & vector timestamps
Week 4. Group communication
  Group communication - slides (6 per page)
Week 4. Mutual exclusion & election algorithms
  Mutual exclusion & election algorithms - slides (6 per page)
Week 5 Exam 1: study guide
Week 5 Virtual Synchrony - lecture notes
  Virtual Synchrony - slides (6 per page)
  Consensus — lecture notes
  Consensus: Paxos - slides (6 per page)
Week 6 Distributed transactions
  Transactions - slides (6 per page)
Week 7. Concurrency control — lecture notes
  Concurrency control - slides (6 per page)
  Distributed deadlock
  Distributed deadlock - slides (6 per page)
  Network Attached Storage — lecture notes
  Network Attached Storage — lecture slides (6 per page)
Week 8 Distributed File Systems — lecture notes
  Distributed Files — lecture slides (6 per page)
Week 8 Naming — lecture notes
  Naming - slides (6 per page)
  Distributed lookup — lecture slides (6 per page)
Week 9 Exam 2: study guide
Week 9 Dynamo — lecture slides (6 per page)
Week 8. MapReduce — lecture notes
  MapReduce — lecture slides (6 per page)
Week 10. Bigtable — lecture notes
  Bigtable — lecture slides (6 per page)
Week 10 Spanner — lecture slides (6 per page)
Week 10 Graph Computing — lecture slides (6 per page)
Week 11 Apache Spark — lecture notes
Week 11 Apache Spark — lecture slides (6 per page)
  Content delivery networks — lecture slides (6 per page)
  Clusters — lecture slides (6 per page)
Week 12 Cryptography — lecture slides (6 per page)
Week 12 Authentication — lecture slides (6 per page)
  VPNs — lecture slides (6 per page)
(Week 12) Fault Tolerance — lecture notes
  Fault Tolerance — lecture slides (6 per page)
Week 13 Exam 3: study guide
Week 13 Firewalls — lecture slides (6 per page)
Week 13 Distributed caching — lecture slides (6 per page)

Recitation notes

Title
Recitation 1: Sockets Programming (6 per page)
Recitation 2: RMI Programming & project discussion (6 per page)
[optional: not covered in recitation] Go Programming (6 per page)
Recitation 3: HW 1 Review (6 per page)
Recitation 4: HW 3 Review (6 per page)
Recitation 5: Google Cluster Architecture (6 per page)
Recitation 6: HW 5 Review (6 per page)
Recitation 6: Pre-Exam 2 Review (6 per page)
Recitation 9: Pre-Exam 3 Review (6 per page)