Schedule
Lecture Material
Week |
| Tuesday |
| Thursday |
Jan 26 |
| Snow day |
| |
Feb 2 |
| OCaml, Project 1: OCaml Warmup |
| |
Feb 9 |
| Lexing and Parsing |
| Lexing and Parsing, In-class exercise, Project 2: Unit Calculator |
Feb 16 |
| Lexing and Parsing, In-class exercise |
| |
Feb 23 |
| Operational Semantics, In-class exercise |
| Operational Semantics, In-class exercise |
Mar 1 |
|
| Midterm 1 | |
Mar 8 |
|
| Code Generation | |
Mar 15 |
| Spring break: no class |
| Spring break: no class |
Mar 22 |
| Code Generation, 06-codegen-1.ml, 06-codegen-2.ml |
| |
Mar 29 |
| Optimization, Data Flow Analysis |
| Guest Lecture: Symbolic Execution, se.ml, se2.ml |
Apr 5 |
| Data Flow Analysis |
| Data Flow Analysis, Project 5: Rube Compiler, In-class Exercise |
Apr 12 |
| Data Flow Analysis |
| Midterm 2 |
Apr 19 |
|
| Type Systems | |
Apr 26 |
| Type Systems, Project 6: Rube Type Checking |
| |
May 3 |
| Project 0 Discussion |
| Project 0 Discussion, Types for Ruby |
May 10 |
| Final Exam Review |
| No class |
Programming Projects
Midterms
Spring 2016 - Midterm 1, March 3
Spring 2016 - Midterm 2, April 14
Fall 2015 - Midterm 1 (sample solution)
Spring 2015 - Practice Midterm 2.
Spring 2015 - Midterm 1 (sample solution)
Spring 2015 - Practice Midterm 1 (sample solution)
Fall 2014 - Midterm 1 (sample solution)
Fall 2014 - Midterm 2 (sample solution)
Fall 2013 - Midterm 1 (sample solution)
Fall 2013 - Midterm 2 (sample solution)
Fall 2012 - Midterm 1 (sample solution)
Fall 2012 - Midterm 2 (sample solution)
Spring 2012 - Midterm 1 (sample solution)
Spring 2012 - Midterm 2 (sample solution)