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 12:30-1:50pm, BH A51
Instructors:
Matt Fredrikson | mfredrik@cmu |
TAs:
Maggie Cai | |
Zhibo Chen | |
Umut Olmez | |
Shengxi Wu | |
Shirley Yu |
Office Hours:
Monday @ 1pm: GHC Table 2 |
Tuesday @ 3pm: GHC Table 1 |
Wednesday @ 4pm: CIC 2126 |
Thursday @ 2:30pm: GHC Table 3 |
Friday @ 2pm: GHC Table 2 |
Software: This course will teach students how to use the Why3 deductive verification platform. See the notes on installation and editing.
Announcements
Welcome to Spring 2025! Be sure to check you are enrolled in
Gradescope and Piazza.
1/14/2025