Lecture topics in italics are for future lectures, and are tentative. |
Class |
Date |
Topic |
Lecture slides (pdf) |
Videos |
Supplemental Readings |
1 | 1/15 | Introduction to course; OCaml | lecture 1 (with solutions) | | |
2 | 1/17 | OCaml: Pattern-matching; recursion on lists | lecture 2 (supplementary notes) (with solutions) | Video 2 | |
3 | 1/22 | OCaml: Datatypes and trees | lecture3 (with solutions) | Video 3 | |
4 | 1/24 | Abstract syntax | lecture4 (with solutions) | Video 4 | |
5 | 1/29 | Lexical analysis | lecture5-6 (see also: 2006 lecture) (with solutions) | Video 5 | wikipedia,something from Stanford |
6 | 1/31 | Lexical analysis, cont. | | Video 6 | ocamllex manual,ocamllex tutorial |
7 | 2/5 | Context-free grammars; bottom-up parsing; ocamlyacc | lecture7-8 (with solutions) | Video 7 | |
8 | 2/7 | cont. | | Video 8 | |
9 | 2/12 | Top-down parsing | lecture9 (with solutions)(supplementary notes) |
Video 9
| |
10 | 2/14 | Using SOS rules; type-checking MiniJava | lecture10 (with solutions) |
Video 10
| |
| 2/18 | Midterm 1 - 7:00-8:30 PM; rooms TBA (see exams tab for details) | | | |
| 2/19 | class cancelled | | | |
11 | 2/21 | Interpreted MiniJava | lecture11 (with solutions) | Video 11 | |
12 | 2/26 | Interpreted MiniJava w/ objects | lecture12 (with solutions) | Video 12 | |
13 | 2/28 | Garbage collection | lecture13 | Video 13 | |
14 | 3/5 | Compiling MiniJava | lecture14 (with solutions) | Video 14 | |
15 | 3/7 | Compiling MiniJava (cont.) | lecture15 (with solutions) | Video 15 | |
16 | 3/12 | Program verification | lecture16 (with solutions) | Video 16 | |
17 | 3/14 | History of PLs | lecture17 | Video 17 | |
| 3/19, 21 | Spring break | | | |
18 | 3/26 | OCaml interpretation (substitution model) | lecture18 (with solutions) | Video 18 | |
19 | 3/28 | Higher-order functions | lecture19 (with solutions) | Video 19 | |
| 3/31 | Review session - 7:00-8:30 PM; 1404 Siebel | | Review video | |
| 4/1 | Midterm 2 - 7:00-8:30 PM; rooms TBA (see exams tab for details) | | | |
| 4/2 | class cancelled | | | |
20 | 4/4 | OCaml interpretation (environment model) | lecture20 (with solutions) | Video 20 | |
21 | 4/9 | More higher-order functions | lecture21 | Video 21 | |
22 | 4/11 | Type-checking in OCaml | lecture22 (with solutions) | Video 22 | |
23 | 4/16 | Type-checking in OCaml (cont.) | lecture23 (with solutions) | Video 23 | |
24 | 4/18 | Type-checking in OCaml (cont.) | lecture24 (with solutions) | Video 24 | |
25 | 4/23 | Lazy Evaluation and Lambda Calculus | lecture25 (with solutions) | Video 25 | |
26 | 4/25 | Higher-order functions in o-o languages | lecture26 (with solutions) | Video 26 | |
27 | 4/30 | Wrap-up and review | lecture27 | Video 30 | |
| 5/7 | Final Exam - 8:00-11:00 AM; location - Natural History Building, room 228 | | | |