Anything on the schedule more than 24 hours in advance is subject to change. I will communicate changes in advance through in-class announcements and in writing via Piazza.

Week Day Description Readings Slides Due (at 11:59 the day before)
1 8/21 course overview, intro to OCaml   lecture1, PDF, demo  
1 8/23 syntax, inductive datatypes TAPL 3.1-3.3, 3.5 syntax, PDF  
1 8/25 syntax, continued Homework 1, first submission
2 8/28 expressions, interpreters TAPL 8.1-8.2 expressions, PDF  
2 8/30 expressions, types TAPL 8.1-8.2 types, PDF Homework 1, second submission
2 9/1 big-step semantics TAPL 3.4-3.5 semantics, PDF  
3 9/4 Labor Day (no class)      
3 9/6 big-step semantics, continued  
3 9/8 small-step semantics TAPL 3.4-3.5 small-step, PDF Homework 2, first submission
4 9/11 small-step semantics, continued  
4 9/13 imperative languages, variables FSPL 2.4, 2.6 imperative, PDF Homework 2, second submission
4 9/15 variables, continued  
5 9/18 variables, continued  
5 9/20 proof trees, declarations Homework 3, first submission
5 9/22 imperative languages, control flow FSPL 2.4, 2.6 control flow, PDF  
6 9/25 imperative languages, functions   functions, PDF  
6 9/27 functions, syntax, types   functions, PDF Homework 3, second submission
6 9/29 functions, semantics    
7 10/2 functions, semantics continued    
7 10/4 functions, semantics continued   ”, lists.ml  
7 10/6 survey of programming languages survey, PDF    
8 10/9 OO languages TAPL 18.1 OO, PDF Project proposal, first submission
8 10/11 OO languages, types TAPL 19.1-19.4 Homework 4, first submission
8 10/13 OO languages, semantics TAPL 19.3-19.4 OO semantics, PDF  
9 10/16 no class   Project proposal, second submission
9 10/18 OO languages, semantics, continued   Homework 4, second submission
9 10/20 OO languages, mutable fields      
10 10/23 lambda calculus, intro TAPL 5.1 lambda, PDF  
10 10/25 lambda calculus, typed TAPL 9.1-9.2, 11.11 typed-lambda, PDF  
10 10/27 STLC, continued Homework 5, first submission
11 10/30 functional languages, data TAPL 11.5-11.8 functional, PDF  
11 11/1 project workshop   project, PDF, switch.ml  
11 11/3 functional languages, sums Homework 5, second submission
12 11/6 functional languages, datatypes TAPL 11.9-11.10 datatypes, PDF  
12 11/8 functional languages, closures   closures, PDF Homework 6, first submission
12 11/10 functional languages, type inference TAPL 22.1-22.3 type inference, PDF Project status report
13 11/13 type inference, continued Homework 6, second submission
13 11/15 functional languages, unification TAPL 22.4 unification, PDF  
13 11/17 functional languages, polymorphism TAPL 22.7, 23.1-23.6 polymorphism, PDF  
14 11/20 logic languages   logic, PDF Homework 7, first submission
14 11/22 Thanksgiving (no class)      
14 11/24 Thanksgiving (no class)      
15 11/27 project workshop   project 2, PDF  
15 11/29 Turing-completeness   turing-complete, PDF Homework 7, second submission
15 12/1 review   review, PDF Final project report (due Friday 12/1 at 11:59 PM)