Schedule subject to change as course progresses. |
Lecture topics (in italics) for not yet given lectures are preliminary, and may change. |
Class |
Date |
Topic |
Lecture slides (pdf) |
Addition readings |
1 | 1/17 | Introduction to course; OCaml | slides |
2 | 1/19 | OCaml: Pattern-matching; recursion on lists | slides |
3 | 1/24 | OCaml: Datatypes and trees | lecture3 |
4 | 1/26 | Abstract syntax | lecture4 |
5 | 1/31 | Lexical analysis | lecture5-6 | wikipedia,something from Stanford |
6 | 2/2 | Lexical analysis, cont. | | ocammlex manual,tutorial |
7 | 2/7 | Context-free grammars; bottom-up parsing; ocamlyacc | lecture7-8 | |
8 | 2/9 | cont. | | |
9 | 2/14 | Top-down parsing | lecture9-10 |
10 | 2/16 | (cont.) | |
| 2/21 | Midterm 1 (see exams tab for details) | |
11 | 2/23 | Interpreted MiniJava | lecture11 (exercise solutions) |
12 | 2/28 | Objects in MiniJava | lecture12 |
13 | 3/1 | Inheritance in MiniJava | lecture13 |
14 | 3/6 | Type-checking in MiniJava | lecture14 |
15 | 3/8 | MP7: Compiling MiniJava | lecture15 |
16 | 3/13 | Compiling MiniJava (cont.) | lecture16 |
17 | 3/15 | Compiling MiniJava (cont.) | lecture17 |
| 3/20,22 | Spring break | |
18 | 3/27 | MiniOCaml interpreter (substitution model) | lecture18 |
19 | 3/29 | MiniOCaml interpreter (environment model) | lecture19 (slide 14 corrected, 4/2) |
20 | 4/3 | Higher-order functions | lecture20 (exercise solns) |
21 | 4/5 | Lazy Evaluation and Lambda Calculus | lecture21 |
| 4/10 | Midterm 2 | |
22 | 4/12 | Type-checking in OCaml, part 1 | lecture22 (exercise solns) |
23 | 4/17 | Type-checking in OCaml, part 2 | lecture23 (exercise solns) |
24 | 4/19 | Type-checking in OCaml, part 3 | lecture24 (correction on slide 7, 4/19)
(exercise solns) |
25 | 4/24 | Type-checking in OCaml, part 4 | lecture25 |
26 | 4/26 | Program verification | lecture26 |
26 | 5/1 | PL history; course wrap-up | lecture27 |
| 5/3 | Problem session: 3-5PM, 2405 SC | (First half of course) |
| 5/5 | Problem session: 3-5PM, 2405 SC | (Second half of course) |
| 5/9 | Final exam; 1:30-4:30PM; 269 Everitt and 1404 Siebel | |