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) |