Distributed Systems: Course Syllabus

Fall 2018

The extended reading list for this course is here.

week date topic*
0 Sept 5 Recitation canceled
1 Sept 10 Introduction
Networking: network protocols, point-to-point communication
1.5 Sept 12 Introduction, network programming
2 Sept 17 Marshaling: JSON, Google protocol buffers
Remote procedure calls, distributed objects
2.5 Sept 19 Java RMI, Web services with Python
3 Sept 24 Web services
Clock synchronization
Event ordering: Logical clocks, vector clocks
3.5 Sept 26 Assignment review and project discussion
4 Oct 1 Group communication: message ordering and message delivery, multicasting
Replication and virtual synchrony
4.5 Oct 3 Review for Exam 1
5 Oct 8 Distributed mutual exclusion
Election algorithms
Consensus: Paxos & Raft
Exam 1
5.5 Oct 10 No recitation
6 Oct 15 Exam review
Distributed transactions: two phase commit, three-phase commit, ACID/BASE models
6.5 Oct 17 Assignment 3 review,
Concurrency control
7 Oct 22 Distributed deadlock
Network file systems: design, NFS, AFS (scale), DFS & CIFS (cache control), CODA (redundancy)
7.5 Oct 24 Google File System (GFS), Hadoop Distributed File System (HDFS)
8 Oct 29 Chubby,
Distributed lookup services and distributed hash tables
Amazon Dynamo
8.5 Oct 31 Project 2 discussion
9 Nov 5 MapReduce
Exam 2
9.5 Nov 7 No recitation
10 Nov 6 Exam review
Bigtable, Spanner, Pig, Bulk Synchronous Parallel framework (Apache Hive)
10.5 Nov 14 Amazon Elastic MapReduce tutorial
11 Nov 19 Pregel framework (Apache Giraph)
Apache Spark
Content delivery networks: Akamai
Clustering: scalable performance, load balancing, and availability
11.5 Nov 21 No recitation – Rutgers Friday
12 Nov 26 Cryptography: introduction, communication and authentication, key exchange, secure communication, hybrid cryptosystems, digital signatures
Distributed authentication: protocols, digital certificates, Kerberos, SSL
Identity management (OpenID), distributed authorization (OAuth)
12.5 Nov 28 Assignment discussion: using Amazon EMR
13 Dec 3 Distributed caching
Exam 3
13.5 Dec 5 No recitation
14 Dec 10 Distributed systems design
14.5 Dec 12 No recitation
15 Dec 17 Final Exam: 8-10pm

Go here to get lecture notes and other course documentation.

*Subject to change without notice.