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:

Students will learn the principles and algorithms behind automated verification tools, and understand their practical limitations while gaining experience writing verified, machine-checked code that solves real problems.

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.