Syllabus


Lectures are in Skilling Auditorium, TuTh, 9:30-11:00.

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/29 Tuesday 1 Overview: How Software Is Built [pdf]
3/31 Thursday 2 Debugging without Debuggers [pdf] [Delta Debugging 1]
[Delta Debugging 2]
4/5 Tuesday 3 Automatic Test Generation [pdf] [Korat]
HW1
4/7 Thursday 4 Runtime Monitoring [pdf] [Race Detection]
[Leak Detection]
4/12 Tuesday 5 Detecting Program Invariants [pdf] [DAIKON] [Agitator] HW2 HW1
4/14 Thursday 6 Monitoring Deployed Code [pdf] [Cooperative Bug Isolation]
4/19 Tuesday 7 Isolation [pdf] [Software Fault Isolation]
[Virtual Machines]
HW3 HW2
4/21 Thursday 8 Performance Debugging [pdf] [gprof] [Trend Profiling]
4/26 Tuesday 9 Black-Box Methods [pdf] [Influences] [Pinpoint]
4/28 Thursday 10 Introduction to Static Analysis I [pdf] HW4 HW3
5/3 Tuesday 11 Midterm
5/5 Thursday 12 Introduction to Static Analysis II [pdf]
5/10 Thursday 13 Type Systems I [pdf] [Type Qualifiers I]
[Type Qualifiers II]
5/12 Thursday 14 Type Systems II [pdf] [Deputy] HW5 HW4
5/17 Tuesday 15 Bug Finding I [pdf] [Metacompilation]
5/19 Thursday 16 Bug Finding II [pdf] [Saturn: Locks]
[Saturn: Leaks]
HW6 HW5
5/24 Tuesday 17 Program Analysis I [pdf] [Chord]
5/26 Thursday 18 Program Analysis II [pdf] [ESP] HW7 HW6
5/31 Tuesday 19 Model Checking [pdf] [FiSC] [BLAST]
6/2 Thursday No class HW7
Final Exam: Take Home, out Friday, June 3 at noon. Due Tuesday, June 7 at 2pm.