CAS CS 320 is a course about programming languages, particularly the design and implementation of programming languages. In this course, we take up the programming language as an object of formal study. See the course manual and the schedule below for more details.
Date | Topic | Reading | Assignments |
---|---|---|---|
9/2 | Course Overview | ||
9/3 | Week 1 Lab: Installation Party | ||
9/4 | Basics I: Introducing OCaml | Assignment 1 | |
9/9 | Basics II: Designing functions | ||
9/10 | Week 2 Lab | ||
9/11 | Basics III: Inference Rules | Assignment 2 (A1 due) | |
9/16 | Basics IV: Lists, Tail-Recursion | ||
9/17 | Week 3 Lab | ||
9/18 | Basics V: Derivations | Assignment 3 (A2 due) | |
9/23 | Data I: Unions, Products, Algebraic Data Types | ||
9/24 | Week 4 Lab | ||
9/25 | Data II: ADTs in practice | Assignment 4 (A3 due) | |
9/30 | Quiz 1 | ||
10/1 | Week 5 Lab | ||
10/2 | HOP I: Maps and Filters | Assignment 5 (A4 due) | |
10/7 | HOP II: Folds | ||
10/8 | Week 6 Lab | ||
10/9 | Intermediate OCaml | Practice Midterm (A5 due) | |
10/14 | No Lecture (Substitute Monday) | ||
10/15 | Week 7 Lab: Midterm Review | ||
10/16 | Midterm | Assignment 6 | |
10/21 | Parsing I: In Theory | ||
10/22 | Week 8 Lab | ||
10/23 | Parsing II: In Practice | Mini-Project 1 (A6 due) | |
10/28 | Semantics I: Operational Semantics | OCP 10.1 | |
10/29 | Week 9 Lab | ||
10/30 | Semantics II: Substitution | OCP 10.3 | MP1 Check-in due |
11/4 | Semantics III: Variables, Scope, Closures | OCP 10.4 | |
11/5 | Week 10 Lab | ||
11/6 | Semantics IV: Environments | OCP 10.4 | Mini-Project 2 (MP1 due) |
11/11 | Types I: Simple Types | OCP 10.5 | |
11/12 | Week 11 Lab | ||
11/13 | Types II: Progress and Preservation | OCP 10.5 | MP2 Check-in due |
11/18 | Quiz 2 | ||
11/19 | Week 12 Lab | ||
11/20 | Inference I: Hindley-Milner (Light) | OCP 10.6 | Mini-Project 3 (MP2 due) |
11/25 | Inference II: Unification | OCP 10.6 | |
11/26 | No Lab (Thanksgiving Recess) | ||
11/27 | No Lecture (Thanksgiving Recess) | ||
12/2 | Inference III: Constraint-Based Inference | OCP 10.6 | |
12/3 | Week 14 Lab | ||
12/4 | Inference IV: Extended Example | OCP 10.6 | MP3 Check-in due |
12/9 | Advanced: Byte-Code Interpretation | ||
12/10 | Week 15 Lab: Final Exam Review | MP3 due | |
TBD | Final Exam |
Note. Please do not reach out to course staff directly except in extenuating circumstances. If you have questions/concerns about the course, please reach out via Piazza.