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
Contact the staff: 15414-staff@lists.andrew.cmu.edu
Instructors: Matt Fredrikson and Ruben Martins
- Office Hours: Mondays 10am (Fredrikson, CIC 2126), Fridays 1pm (Martins, GHC 7129)
- Email: mfredrik@cs, rubenm@cs
TAs: Krishna Bagadia, Rameel Rizvi
- Office Hours: 1pm Tuesdays (Rizvi), 2:30 Wednesdays (Bagadia)
- Email: kbagadia@andrew.cmu.edu, rrizvi@cmu
Lectures: TuTh 10:30-11:50am in GHC 4211.
Announcements
Final exam on Monday, 12/10! Additional practice problems available here.
12/7/18
Homework 6 assigned, due Sunday 12/2.
11/23/18
Lab 4 assigned. First checkpoint on 11/27, final due date 12/4.
11/13/18
Lab 3 assigned, due Tuesday 11/13.
11/2/18
Lab 2 assigned, due Friday 11/2.
10/18/18
Homework 5 assigned, due Sunday 10/7.
9/28/18
Lab 1 assigned, due Tuesday 10/9.
9/25/18
Homework 4 assigned, due Thursday 9/27 Friday 9/28 (1 day extension due to TOC).
9/20/18
Homework 3 (due Thursday 9/20) and Lab 0 (due Friday 9/21) assigned.
9/13/18
Homework 2 assigned, due 9/13.
9/6/18
First homework assigned, due 9/6.
8/30/18
The course website for the Fall 2017 offering can be found here.
8/26/18