Lecture Notes cover material that will be discussed in class. You do not need to read lecture notes before class.

Reading must be done before the class. You’re responsible for looking up references and doing any background reading you need to understand the paper.

Date Notes
Tuesday, Jan 19 No class. Arjun will be at the PLDI PC Meeting.
Thursday, Jan 21 Out: Programming with Higher-Order Functions. Lecture Notes.
Tuesday, Jan 26 Lecture Notes.
Thursday, Jan 28 Lecture Notes 1 and 2.
Tuesday, Feb 2 No class. Due: Programming with Higher-Order Functions. Out: Interpreter and Type Checker.
Thursday, Feb 4  
Tuesday, Feb 9  
Thursday, Feb 11 Due: Interpreter and Type Checker. Reading: Logical Types for Untyped Languages
Tuesday, Feb 16 No class. (Monday schedule)
Thursday, Feb 18 Out: Type Inference. Lecture Notes.
Tuesday, Feb 23  
Thursday, Feb 25  
Tuesday, Mar 1 Reading: Dafny Tutorial
Thursday, Mar 3 Reading: Hoare Logic
Friday, Mar 4 Due: Type Inference
Tuesday, Mar 8 Reading: Z3 Tutorial. Out: Program Verification
Thursday, Mar 10  
Tuesday, Mar 15 No class. (Spring Recess)
Thursday, Mar 17 No class. (Spring Recess)
Tuesday, Mar 22 Reading: Fast Decision Procedures Based on Congruence Closure
Thursday, Mar 24 Reading: Denali: A goal-directed superoptimizer
Tuesday, Mar 29 Code from class. Due: Program Verification.
Thursday, Mar 31  
Tuesday, Apr 5 Out: Synthesis. Reading: Combinatorial Sketching for Finite Programs
Thursday, Apr 7 Reading: Oracle-Guided Component-Based Program Synthesis
Tuesday, Apr 12 Reading: Boomerang
Thursday, Apr 14  
Tuesday, Apr 19  
Thursday, Apr 21 Reading: Programming and Direct Manipulation, Together at Last
Tuesday, Apr 26