NOTE: The current schedule is tentative and subject to change. Nonetheless it gives an idea of the material to be covered in this course. The lecture notes are seeded from previous years, and will be sporadically updated.

Key to readings: P = Pierce; SF = Software Foundations; M = Mitchell; W = Winskel; K = Krishnamurthi 1st ed.; K2nd = Krishnamurthi 2nd ed.; H = Harper. The readings are not required, but may help your understanding of the lecture material.

The lecture notes here contain material from lecture notes by Stephen Chong, Radu Rugina, Andrew Myers, Nate Foster, Jeff Vaughan, and Christos Dimoulas.

For background material on sets, relations, functions, and induction, see: W 1, H 2, H Appendix, and/or P 2.

Lec. Date Topic Readings Notes Slides Code Assignments
Semantics
1Tue 23-Jan Intro to semantics, Proof tools P 2.4, 3
SF1-Induction,Imp
SF2-SmallStep
W 2,3,4
H 2
PDF Dafny
OCaml
Coq
2Thu 25-Jan Small-step semantics PDF PDF Coq
3Tue 30-Jan Induction PDF PDF Coq Assignment 1 released
4Thu 1-Feb Large-step semantics PDF PDF Coq
5Tue 6-Feb IMP: a simple imperative language PDF PDF Coq
6Thu 8-Feb Denotational semantics
(Kevin Zhang)
W 5
M 4.3
PDF PDF
Lambda calculus
7Tue 13-Feb Lambda calculus P 5
M 4.2
K 22
PDF PDF
8Thu 15-Feb Lambda calculus encodings and Recursion PDF PDF livecode
9Tue 20-Feb Definitional translations PDF PDF OCaml
Racket
Assignment 1 due
Assignment 2 released
10Thu 22-Feb References and continuations P 13
M 5,4, 8.3.2
H 29, 36
K 18-20
PDF PDF OCaml
Racket
Types
11Tue 27-Feb Simply-typed lambda calculus
Type soundness
P 9
SF2-Stlc
SF2-StlcProp
M 6.1, 6.2
K 24-26

(P 12)
(SF2-Norm)

PDF PDF
13Thu 29-Feb More types P 11, 13
SF2-MoreStlc
SF2-References
PDF PDF OCaml Assignment 2 due
12Tue 5-Mar NO CLASS
MIDTERM
PDF Assignment 3 released
14Thu 7-Mar Parameteric Polymorphism, Records and Subtyping
(Anastasiya Kravchuk-Kirilyuk)
P 23
M 6.4
P 11.8, 15
PDF PDF
No Class (Spring Recess)
15Tue 19-Mar Curry-Howard correspondence; Existential types
(Zena Ariola)
P 9.4, 24
SF1-ProofObjects
PDF PDF Haskell
16Thu 21-Mar Type Inference P 22
K30
PDF PDF Prolog
17Tue 26-Mar Sub-structural type systems
(Cameron Wong)
PDF PDF eg1.rs
eg2.rs
eg3.rs
eg4.rs
eg5.rs
Assignment 3 due
Assignment 4 released
18Thu 28-Mar Algebraic structures
(Raffi Sanna)
PDF PDF lecture.hs
m.hs
agediff.hs
io.hs
state.hs
lst.hs
walk.hs
Reasoning About Programs
19Tue 2-Apr Axiomatic Semantics and Hoare Logic SF2-Hoare
W 6
(W 7)
PDF PDF hoare.c
hoare.dfy
factorial.c
factorial.dfy
factorial2.dfy
sum.dfy
20Thu 4-Apr Dependent types PDF PDF Twelf
Coq
Misc. Topics
22Tue 9-Apr Embedded EthiCS
(Anni Raety)
Assignment 4 due
Assignment 5 released
21Thu 11-Apr Logic Programming
(Will Byrd)
M 15
K32-34
PDF PDF Notebook
livecode
24Tue 16-Apr Concurrency M 14 PDF PDF ex1.go
ex2.go
ex3.go
Assignment 6 released
25Thu 18-Apr Guest Lecture on Making OCaml Safe for Performance Engineering by Ron Minsky Assignment 5 due
23Tue 23-Apr Guest Lecture on Rust by Niko Matsakis Assignment 6 due
Mon 6-May FINAL EXAM: May 6