15-440 Tentative Schedule

Week 1

  • Administrivia
  • Work and Abstraction: task_struct/pcb
Thursday: assigned Lab #1 - process migration

Week 2

  • Scarcity, scheduling (queuing), interleaving/processor sharing
  • POSIX Threads & concurrent programming, intro
  • fork, exec, wait, /proc, top, ps

Week 3

  • POSIX Threads: cond. variables, semaphores, mutexes, and other concurrency control primitves implemented by preemption
  • Java Threads, the Monitor construct and "synchronized" methods and classes
Thursday: Lab #1 due
Thursday: assigned Lab #2.1 - Exploring game framework and design

Week 4

  • Lower-level synchronization and the need for mutate-and-test support (CS/TS), spin-locks vs. blocking
  • Concurrency control in Networks: Token-ring, Time-sharing, CSMA/CD, Dynamic Time Sharing
Tuesday: assigned Homework #1 - Processes, Threads, and Concurrency
Thursday: Lab #2.1 due
Thursday: assigned Lab #2.2 - Single-player game implementation

Week 5

  • Concurrency control in Networks: Dodging the issue with CDMA, Issues with wireless networks
  • Midterm exam
Tuesday: Homework #1 due
Thursday: Midterm Exam #1 - Processes, Threads, and Concurrency

Week 6

  • Imperfection and failure of resources: EDC, ECC, RAID, Framing
  • Working with uncertainty and around failure: IP in a day
Tuesday: Lab #2.2 due
Tuesday: assigned Lab #3 - Multi-player game over network implementation

Week 7

  • "Reliability": ACKed UDP, 2 Armies Story
  • Reliability w/streaming protocols, congestion: TCP in a Day
Tuesday: assigned Homework #2 - Networks

Week 8

  • Review/Slack
  • Midterm exam
Tuesday: Homework #2 due
Tuesday: Lab #3 due
Thursday: Midterm Exam #2 - Networks

Week 9

  • No class -- Spring Break

Week 10

  • Environment of Distributed systems, DS overview
  • General processing techniques, PVM and Condor, Seti@Home
Tuesday: assigned Lab #4 - distributed computation

Week 11

  • General synchronization techniques: Lamport, Voting
  • Map-Reduce paradigm, MR/Hadoop crash course
Thursday: Lab #4 due
Thursday: assigned Lab #5.1 - Hadoop Familiarization
Thursday: assigned Lab #5.2 - Hadoop proposals

Week 12

  • Using tables with Map-Reduce, HBase overview
  • Map-Reduce examples and Idioms
Thursday: Lab #5.1 due

Week 13

  • Map-Reduce Engine, Technical overview
  • DFS Support for Map-Reduce, HDFS overview
Tuesday: Lab #5.2 due
Tuesday: assigned Lab #5.3 - Hadoop, on the cluster
Thursday: assigned Homework #3 - Hadoop/Map-Reduce fundamentals

Week 14

  • General synchronization techniques: Mutex and Coordinator election
  • No class - Carnival

Week 15

  • DFS Overview, AFS, Coda, callbacks as leases
  • Higher level problem solving: Overlay networks
Tuesday: Homework #3 due
Tuesday: assigned Homework #4 - Distributed systems, generally

Week 16

  • DS Examples in Netowrking: DNS, Routing Algorithms
  • Course wrap-up, Final Exam review
Tuesday: Homework #4 due
Thursday: Lab #5.4 due