3 Schedule
Date | Lecture | Readings | Deliverable |
1/28 | No class | Illustrated Guide to a PhD, Might | |
1/30 | Welcome; Syntax & semantics | I.1, I.2 | |
2/4 | Reduction in context | II.11 | |
2/6 | Redex | I.3 | |
2/11 | Types and abstract interpretation with types | I.4, II.12 | |
2/13 | Snow day | I.5 | |
2/18 | Abstract interpretation with intervals and type inference with constraints | I.10 | |
2/20 | The λ-calculus | ||
2/25 | The λv-calculus | Syntactic Approach to Type Soundness, Wright & Felleisen | |
2/27 | Mixed mode secure computation (Aseem Rastogi); Incremental computation (Matthew Hammer) | A Simple Algorithm and Proof for Type Inference, Wand; Adapting Scrum to Managing a Research Group, Hicks & Foster | |
3/4 | Type inference | Introduction to Set Constraint-Based Program Analysis, Aiken | |
3/6 | Flow analysis & constraints | ||
3/11 | Symbolic execution | All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution (but might have been afraid to ask), Schwartz, Avgerinos, & Brumley; Directed Symbolic Execution, Ma, Khoo, Foster, & Hicks | |
3/13 | Abstract interpretation | Abstract Interpretation: a Semantics-Based Tool for Program Analysis, Jones & Nielson; Systematic Design of Program Analysis Frameworks, Cousot & Cousot | |
3/18 | Spring break | ||
3/20 | Spring break | ||
3/25 | State & control | ||
3/27 | Contracts | Contracts for Higher-Order Functions, Findler & Felleisen; On contract satisfaction in a higher-order world, Dimoulas & Felleisen | |
4/1 | Polymorphism | ||
4/3 | Constraints for contracts | ||
4/8 | Abstracting abstract machines | Abstracting Abstract Machines, Van Horn & Might | |
4/10 | Symbolic execution for contracts | Higher-Order Symbolic Execution via Contracts, Tobin-Hochstadt & Van Horn | |
4/15 | Computational complexity | Linear lambda calculus and PTIME-completeness, Mairson; Deciding kCFA is complete for EXPTIME, Van Horn & Mairson | |
4/17 | Type checking & inference via reduction | III.23 | |
4/22 | Dependent types | Kris Micinski lecture | |
4/24 | System F | ||
4/29 | Slack | ||
5/1 | Presentations: Projects 3, 7, 2 | ||
5/6 | Presentations: Projects 10, 9, 4 | ||
5/8 | Presentations: Projects 8, 5, 6 | ||
5/13 | Presentations: Project 1 | ||
5/21 | Final exam | ||