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 both large and small. Software verification aims to prove the correctness of a program with respect to a precise specification, and is an effective way to find and prevent such bugs. Building on several decades of research, this area has produced highly-automated tools and techniques that can be brought to bear in practice. This course will cover the following topics:
- Propositional and first-order logic
- Formal proof
- Specifications of correct program behavior
- Program semantics
- Deductive program verification
- Decision procedures used in verification tools
- Fully-automated model checking
- Program abstraction techniques used in verification
Contact the staff: 15414-staff@lists.andrew.cmu.edu
Instructors: Matt Fredrikson and André Platzer
- Office Hours: Fridays 11am (Fredrikson, CIC 2126), Thursdays 4pm (Platzer, GHC 9103)
- Email: mfredrik@cs, aplatzer@cs
TAs: Jonathan Laurent, Tianyu Li
- Office Hours: Tuesdays 2pm (Laurent, GHC 9115), Wednesdays 4:45pm (Li, GHC 6002)
- Email: jonathan.laurent@cs, tli2@andrew
Lectures: TuTh 10:30-11:50am in GHC 4211.
Announcements
Homework 6 assigned, due 11/2/17 at 11:59pm.
10/17/17
Lab assigned, first checkin on 10/23.
10/17/17
Homework 5 assigned, due on 10/12.
10/5/17
There will be a work session for Lab 1 on 9/22 at 4pm in GHC 6501.
9/21/17
Lab 1 assigned, due on 10/6.
9/21/17
Homework 4 assigned, due on 9/28.
9/21/17
Homework 3 assigned, due on 9/21.
9/14/17
Correction to Homework 2, Problem 5. Please check the current handout for the up-to-date version.
9/11/17
Homework 2 and Lab 0 assigned, due on 9/14.
9/7/17
Homework 1 assigned, due on 9/7.
8/31/17