Bug Catching: Automated Program Verification
Course Overview
High-profile bugs continue to plague the software industry, leading to major problems in the reliability, safety, and security of systems. This course teaches students how to write bug-free code through the process of software verification, which aims to prove the correctness of a program with respect to a mathematical specification. Along the way, students will learn how to:
- Specify correct program behavior
- Prove the correctness of their code
- Use formal semantics to reason about the soundness of proof rules
- Write practical and efficient verified code
- Use decision procedures and model checkers to reduce verification effort
Lectures: Tue Thu 2:00-3:20pm, DH A302
Instructors:
Matt Fredrikson | mfredrik@cmu |
OH: Wednesdays @ 4pm CIC 2126 |
TAs:
Carson Piehl |
Aarrya Saraf |
Nichole Zhang |
Office Hours
Tuesdays @ 4pm Gates Commons Table 2 |
Wednesdays @ 4pm CIC 2126 |
Thursdays @ 11am Gates Commons Table 5 |
Fridays @ 2pm Gates Commons Table 3 |
Software: This course will teach students how to use the Why3 deductive verification platform. See the notes on installation and editing.