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 27-Jan Intro to semantics, Proof tools P 2.4, 3
SF1-Induction,Imp
SF2-SmallStep
W 2,3,4
H 2
PDF Dafny
OCaml
Rocq
2Thu 29-Jan Small-step semantics PDF PDF Rocq
3Tue 3-Feb Induction PDF PDF Rocq Assignment 1 released
4Thu 5-Feb Large-step semantics PDF PDF Rocq
5Tue 10-Feb IMP: a simple imperative language PDF PDF Rocq
6Thu 12-Feb Denotational semantics W 5
M 4.3
PDF PDF
Lambda calculus
7Tue 17-Feb Lambda calculus P 5
M 4.2
K 22
PDF PDF
8Thu 19-Feb Lambda calculus encodings and Recursion PDF PDF livecode
9Tue 24-Feb Definitional translations PDF PDF OCaml
Racket
Assignment 1 due
Assignment 2 released
10Thu 26-Feb References and continuations P 13
M 5,4, 8.3.2
H 29, 36
K 18-20
PDF PDF OCaml
Racket
Scheme
Types
11Tue 3-Mar 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 5-Mar More types P 11, 13
SF2-MoreStlc
SF2-References
PDF PDF OCaml Assignment 2 due
12Tue 10-Mar NO CLASS
MIDTERM
Assignment 3 released
14Thu 12-Mar Parameteric Polymorphism, Records and Subtyping P 23
M 6.4
P 11.8, 15
PDF PDF
No Class (Spring Recess)
15Tue 24-Mar Curry-Howard correspondence; Existential types P 9.4, 24
SF1-ProofObjects
Wadler'15
Ariola'24
PDF PDF Haskell
16Thu 26-Mar Type Inference P 22
K30
PDF PDF Prolog
17Tue 31-Mar Sub-structural type systems PDF PDF eg1.rs
eg2.rs
eg3.rs
eg4.rs
eg5.rs
Assignment 3 due
Assignment 4 released
18Thu 2-Apr Algebraic structures PDF PDF lecture.hs
m.hs
agediff.hs
io.hs
state.hs
lst.hs
walk.hs
Reasoning About Programs
19Tue 7-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 9-Apr Dependent types PDF PDF Twelf
Rocq
Misc. Topics
22Tue 14-Apr TBD Assignment 4 due
Assignment 5 released
21Thu 16-Apr Logic Programming M 15
K32-34
PDF PDF Notebook
livecode
24Tue 21-Apr Concurrency M 14
A Tour of Go: Concurrency
PDF PDF ex1.go
ex2.go
ex3.go
Assignment 6 released
25Thu 23-Apr TBD Assignment 5 due
23Tue 28-Apr Lecture on Research Assignment 6 due
TBD TBD-May FINAL EXAM