CSE 291 Schedule
Schedule

Week 1: Introduction and protocols

  • Mon Apr 2: Networking, cloud computing, and course overview
  • Wed Apr 4: Introduction to protocols, layering, framing and parsing
    • Slides
    • Reading due: Donahoo and Calvert, Chapters 1 and 5
  • Fri Apr 6: In-class project: Framing and parsing

Week 2: Basic network programming (client-side)

Week 3: Basic network programming (server-side)

Week 4: Storage and remote procedure calls (RPCs)

  • Mon Apr 23: Networked storage
  • Wed Apr 25: RPCs
  • Fri Apr 27: RPCs (con’t)

Week 5: RPCs and time

  • Mon Apr 30: In-class project: gRPC
  • Wed May 2: Time synchronization, Cristian’s algorithm, Berkeley algorithm, NTP
    • Slides
    • Project 1 due, 5pm
    • Reading: Sec 6.2
  • Fri May 4: Lamport clocks, totally ordered multicast, vector clocks, and causation

Week 6: Reasoning about time and causality, Two-phase commit, and consensus

Week 7: Consensus and distributed transactions

  • Mon May 14: Introduction to consensus
  • Wed May 16: Replicated state machines and concurrency control
  • Fri May 18: Transactions, isolation, locking, and recovery

Week 8: Distributing data

  • Mon May 21: Performance at scale
  • Wed May 23: Raft review; Quantifying performance at scale
  • Fri May 25: Peer-to-peer networks and DHTs
    • Slides
    • Reading: T & VS, Sec. 2.3 (Decentralized architectures) and Sec. 5.2 (Distributed hash tables)

Week 9: Overlay, peer-to-peer, and secure networks

  • Mon May 28: Memorial Day (no class)
  • Wed May 30: Content distribution networks (CDNs)
  • Fri Jun 1: Overlay networks

Week 10: “Scaling out data”

Final exam:

  • Thu Jun 14: Final exam (Location TBD)