15-414 Bug Catching: Automated Program Verification and Testing

15-414 Bug Catching: Automated Program Verification and Testing

Fall 2011 Semester
Computer Science Department

Course Description

At some point in their careers, most CS and ECE students will develop software or hardware that must be ultra reliable. Logical errors in such designs can be costly, even life threatening. There has already been a number of well publicized errors like the Intel Pentium floating point error and the Ariane 5 crash. In this course we will study foundational concepts, and tools built on them, for finding and preventing such errors. We will cover some of the most prominent ideas in this important and evolving field -- including propositional satisfiability, Binary Decision Diagrams, model checking, abstraction, static analysis, abstraction-refinement, bounded model checking, and probabilistic model checking. We will also study some of the successful tools in this area. There will be emphasis on both the theoretical basis of these tools, as well as their hands-on use on real examples. This course can be used as one of the Fundamentals of Algorithms requirement.



Monday and Wednesday from 3:00 to 4:20 pm in GHC 4211.

Contact Information


Prof. Edmund M. Clarke
Office: GHC 9231
Phone: (412) 268-2628
Office hours: By appointment
Dr. Sagar Chaki
Office: SEI
Phone: (412) 268-1436
Office hours: By appointment
Dr. Arie Gurfinkel
Office: SEI
Phone: (412) 268-7788
Office hours: By appointment

Teaching Assistants

Soonho Kong
Office: GHC 7609
Phone: 412-268-3076
Office hours: Monday 16:30 - 17:30 (After Class)
David Henriques
Office: GHC 7511
Phone: 412-268-2582
Office hours: Wednesday 16:30 - 17:30 (After Class)

Course Secretary

Denny Marous
Office: GHC 9229
Phone: 412-268-7660