The course will be a hands-on introduction to networking, distributed systems, and cloud computing. The course will be fairly programming intensive (group projects) and you might need to pick up some new languages along the way (C, java, python, and go).

The course will be co-taught by Prof. Tim Wood and Lucas Chaufournier (GW CS class of 2015, now at Capital One) to give a mix of perspectives from academia and industry.

Announcements

  • The rest of the semester after Spring Break will all be done online. Please contact the instructors if you have any difficulties or concerns! Please continue to reserve 10-12:30 on Tuesdays for this class, although most weeks we will try to have our online meeting shorter than that.

Class Resources

Schedule

Part 1: Networking Materials
Network Programming
Weeks 1-3
1/14/20: Day 1 Survey - Cloud 9 setup
1/21/20: HelloInternet Exercise (submit PR by 1/27)
1/28/20: tshark Wiki- Forensics Exercise
Videos: LAN Routing - How DNS Works - HTTP Basics - OSI and TCP Models
Our Videos: TCP Reliability
Assignments: HelloInternet Exercise due 1/27/20, Reliable UDP due 2/2/20
Scalability & Performance
Weeks 4-5
2/4/20: Python Select Server
2/11/20: Jupyter Guide
Readings: Latency at LinkedIn
Assignments: Code Reviews due Tuesday 2/18, Tech Blog due Thursday 2/20
High Performance Middleboxes
Week 6
Assignments: Fixed HelloInternet due Sunday 3/1
Part 2: Distributed Systems Materials
Distributed Systems Basics
Week 7
Midterm: Tuesday Feb 25th - you can bring one sheet of hand written notes.
Scalable Apps & Comm Frameworks
Weeks 8-9
Exercise: RestServ
Quiz 3/10
Spring break!
Week 10
 
Moving Online & Microservices
Week 11
Go Resources
Assignment: ETL Pipeline due April 5th/April 26th
3/24/20: Class VideoOffice hour ETL walkthrough video
Eventual vs Strong Consistency
and State Machine Replication

Week 12
3/31/20: Class Video / Slide PDFLucas’s advice on ETL
Reading: Eventually Consistent by Werner Vogels, Amazon CTO
Reading Quiz: Consistency Models Quiz, due May 3rd (see Tasks for quiz info)
Consensus & Fault Tolerance
Week 13
4/7/20: Class Video / Slide PDF
Reading: Raft Resources
Reading Quiz: Raft Consensus Quiz, due May 3rd (see Tasks for quiz info)
Clouds, VMs, and Containers
Week 14
4/14/20: Class Video / Slide PDF
Assignment: Raft Leader Election or Dist. Sys. Tech Blog due April 28th/May 10th
Distributed Clouds
Week 15
4/21/20: Slide PDF / Class Video
Quiz: VMs, Containers, Clouds, CDNs, and Serverless due May 3rd 6th (see Tasks)