Lectures are in Gates B03, TuTh, 12:50-2:05.
CS295 will cover topics in developing reliable software other than programming, including testing, bug finding, verification, and methodologies for constructing robust code. The emphasis is on modern technology for developing reliable software at reasonable cost.The course will be offered for different numbers of units, depending on whether students plan to do the homework assignments. The assignments will focus on applying these techniques to realistic software systems. There will be two exams, an in-class midterm and a take home final.
The first part of the course covers mostly dynamic techniques for analyzing software: techniques that require actually executing the program. The second part of the course covers mostly static techniques for analyzing software: techniques that work directly on the source code without running the program.
| Date | Topic | Reading | Assigned | Due | |||
|---|---|---|---|---|---|---|---|
| 3/31 Tuesday | 1 | Overview: How Software Is Built [pdf] | |||||
| 4/2 Thursday | 2 | Debugging without Debuggers [pdf] | [Delta Debugging 1] [Delta Debugging 2] | ||||
| 4/7 Tuesday | 3 | Automatic Test Generation [pdf] | [Korat] | HW1 | |||
| 4/9 Thursday | 4 | Runtime Monitoring [pdf] | [Race Detection]
[Leak Detection] | ||||
| 4/14 Tuesday | 5 | Isolation [pdf] | [Software Fault Isolation]
[Virtual Machines] | HW2 | HW1 | ||
| 4/16 Thursday | 6 | Detecting Program Invariants [pdf] | [DAIKON] [Agitator] | ||||
| 4/21 Tuesday | 7 | Monitoring Deployed Code [pdf] | [Cooperative Bug Isolation] | HW3 | HW2 | ||
| 4/23 Thursday | 8 | Performance Debugging [pdf] | [gprof] [Trend Profiling] | ||||
| 4/28 Tuesday | 9 | Black-Box Methods [pdf] | [Influences] [Pinpoint] | ||||
| 4/30 Thursday | 10 | Introduction to Static Analysis I [pdf] | HW4 | HW3 | |||
| 5/5 Tuesday | 11 | Midterm | |||||
| 5/7 Thursday | 12 | Introduction to Static Analysis II [pdf] | |||||
| 5/12 Tuesday | 13 | Type Systems I [pdf] | [ Type Qualifiers I] [ Type Qualifiers II ] | ||||
| 5/14 Thursday | 14 | Type Systems II [pdf] | [ Deputy ] | HW5 | HW4 | ||
| 5/19 Tuesday | 15 | Bug Finding I [pdf] | [Metacompilation] | ||||
| 5/21 Thursday | 16 | Bug Finding II [pdf] | [Saturn: Locks]
[Saturn: Leaks] | HW6 | HW5 | ||
| 5/26 Tuesday | 17 | Program Analysis I [pdf] | [Chord] | ||||
| 5/28 Thursday | 18 | Program Analysis II [pdf] | [ESP] | HW7 | HW6 | ||
| 6/2 Tuesday | 19 | Model Checking [pdf] | [FiSC] [BLAST] | ||||
| 6/4 Thursday | No class | HW7 |