| Date | Topic | Speaker | Reading | 
|---|---|---|---|
| 9/03 | Intro | The Rise of "Worse is better", Why do computers stop, Therac 25 | |
| 9/10 | Static analysis | Meta-compilation, Automated rule inference, PREfix | |
| 9/17 | Implementation-level model checking | VeriSoft, Storage system model checking (FiSC, EXPLODE) | |
| 9/24 | "Never-fail" trading systems | Guest speaker: Josh Engelman (D.E. Shaw) | |
| 10/01 | Project proposal | ||
| 10/08 | Symbolic execution | Malicious disk, Cute, Klee | |
| 10/15 | Failure isolation and recovery | Failure-oblivious computing, Isolating driver faults (1, 2), Bugs as allergies | |
| 10/22 | Debugging | Delta debugging (1, 2), Slicing (1, 2), Statistical debugging | |
| 10/29 | Concurrency I | Bug study, Eraser, Deadlock Immunity | |
| 11/05 | Finding and Debugging Heisenbugs | Guest speaker: Madan Musuvathi (MSR) | CHESS, Context-bounding | 
| 11/12 | Project midterm report | ||
| 11/19 | Dynamic instrumentation | Atom, Valgrind | |
| 11/26 | Virtualization | LLVM, VMware | |
| 12/03 | Error Fixing | Data structure repair, Blocking bad input |