Link Search Menu Expand Document

Topics

You will find a list of topics and an order in which we will explore them below. Lectures will follow this order.

  • Introduction to the course
  • Program proofs: The Inductive Assertion Method and Hoare Logic
  • Decision Procedures: Satisfiability
  • Symbolic Testing: Reachability
  • Introduction to Temporal Logics (LTL and CTL)
  • Model Checking
  • Program Analysis

Assigned Reading

Here is a week by week guide of how you should organize your reading (of the text material) with the course. This reading is essential to stay on top of the course material, in addition to the videos for the lectures and the slides. If you do not do this reading, you risk your grade.

  • Week (0): review Chapters 1-4 of this book for basic logic and induction. You have learned the material in CSC 168 and CSC236. This is just to remind yourself of the basic material that is essential for this course. If you do not know this material, you will struggle in this course.
  • Weeks (1,2): Read chapter 5 of this book to prepare for weeks 1 andn 2.
    • The emphasis should be on sub-chapters: 5.2 and 5.3.
    • The main learning objective: understand the difference between an invariant and an inductive invariant.

Lectures Material

Below you will find our (tentative) lecture schedule for the term. Lecture slides and other material related to lectures are posted here after each lecture takes place. Note that due to inverted nature of the class, the week structure is a bit more fluid compared to the traditional class, because the time spent is guided by student questions and comments in class. We will do our best to keep the two sections in synch, and stay close to the schedule below:

  • Weeks (1):
    • Introduction to the course and program correctness (video slides for both Introduction parts)
    • A short in-class update to the introductory material.
    • Examples of mathematical proofs in Dafny
    • Simple Iterative Program Correctness
  • Week (2):
    • Program Proofs: Iterative and Recursive (video slides)
    • Advanced Iterative Program Correctness
    • Simple Termination Proofs.
  • Week (3):
    • Tricky Termination Proofs
    • Examples of recursive program correctness in class
  • Week (4): Decision Procedurs (SAT)
  • Week (5): Decision Procedures (SMT)
  • Week (6): Symbolic Reachability
  • Week (7): Model Checking and Linear Temporal Logic
  • Fall Reading Week
  • Week (8): Computation Tree Logic
  • Week (9): Expansion Laws and Model Checking Algorithms
  • Week (10) Dataflow Analysis
  • Week (11) Dataflow Analysis
  • Week (12):Course wrap up