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 | ||
9/9 | Basics II: Designing functions | ||
9/10 | Week 2 Lab: Thinking Recursively | ||
9/11 | Basics III: Inference Rules | COPL 2.1, A | Assignment 2 (A1 due) |
9/16 | Basics IV: Derivations | COPL 2.2, 2.3 | |
9/17 | Week 3 Lab: Strings and Derivations | ||
9/18 | Basics V: Lists, Tail-Recursion | Assignment 3 (A2 due) | |
9/23 | Data I: Unions, Products, Algebraic Data Types | ||
9/24 | Week 4 Lab: ADTs and Derivations | ||
9/25 | Data II: ADTs in practice | Assignment 4 (A3 due) | |
9/30 | Quiz 1 | ||
10/1 | Week 5 Lab: Mutual Recursion and Options | ||
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 | ||
10/21 | Parsing I: Formal Grammar | ||
10/22 | Week 8 Lab | ||
10/23 | Parsing II: Ambiguity | Mini-Project 1 (A6 due) | |
10/28 | Parsing III: Parser Generators | OCP 10.1 | |
10/29 | Week 9 Lab: Formal Grammar Worksheet | ||
10/30 | Semantics I: Operational Semantics | OCP 10.3 | MP1 Check-in due |
11/4 | Semantics II: Substitution | OCP 10.4 | |
11/5 | Week 10 Lab: Operational Semantics Worksheet | ||
11/6 | Semantics III: Closures and 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 | |
12/18 | Final Exam 3-5PM @ MOR 101 |
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.