CAS CS 320: Concepts of Programming Languages
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.
Links
Schedule
| Date | Topic | Reading/Material | Notes |
|---|---|---|---|
| 1/20 | Introducing OCaml | COPL 1, OCP 1, 2 | Read the course manual |
| 1/22 | Recursion and Lists | OCP 3.1, 3.8 | Assignment 1 (A1) out |
| 1/26 | Lab 1: Verifying your Set-up | ||
| 1/27 | Designing Functions (Workshop) | ||
| 1/29 | Polymorphism | A2 out, A1 due | |
| 2/2 | Lab 2: Mutual Recursion | ||
| 2/3 | Inference Rules | COPL 2.1 | |
| 2/5 | Derivations | COPL 2.2, 2.3 | A3 out, A2 due |
| 2/9 | Lab 3: Derivations Worksheet | ||
| 2/10 | Products and Sums | OCP 3 | |
| 2/12 | Algebraic Data Types (Workshop) | OCP 3 | A3 due |
| 2/16 | No Lab | Presidents’ Day | |
| 2/17 | Lab 4: Midterm Review | Substitute Monday | |
| 2/19 | Midterm 1 | A4 out | |
| 2/23 | Lab 5: S-Expressions | Campus Closed | |
| 2/24 | No Lecture | Campus Closed | |
| 2/26 | Higher-Order Programming | OCP 4 | A5 out, A4 due |
| 3/2 | Lab 6: Higher-Order Functions | ||
| 3/3 | Formal Grammar | COPL 3.1-3.3 | |
| 3/5 | Grammatical Ambiguity | COPL 3.4-3.6, OCP 10.2 | A6 out |
| 3/9 | No Lab | Spring recess | |
| 3/10 | No Lecture | Spring recess | |
| 3/12 | No Lecture | Spring recess | |
| 3/16 | Lab 7: Parser Generators | ||
| 3/17 | Operational Semantics | OCP 10.3 | |
| 3/19 | Substitution | OCP 10.3 | Mini-Project 1 (MP1) out, A5 due, A6 due |
| 3/23 | Lab 8: Operational Semantics Worksheet | ||
| 3/24 | Closures and Environments (Workshop) | OCP 10.4 | |
| 3/26 | Simple Types | OCP 10.5 | MP1 check-in due |
| 3/30 | Lab 9: Midterm Review | ||
| 3/31 | Midterm 2 | ||
| 4/2 | Progress and Preservation | OCP 10.5 | MP2 out, MP1 due |
| 4/6 | Lab 10: Progress and Preservation Worksheet | ||
| 4/7 | Pattern Matching | ||
| 4/9 | Exhaustiveness Checking | MP2 check-in due | |
| 4/13 | Lab 11: Pattern Matching Worksheet | ||
| 4/14 | Hindley-Milner | OCP 10.6 | |
| 4/16 | Unification (Workshop) | OCP 10.6 | MP3 out, MP2 due |
| 4/20 | No Lab | Patriots’ Day | |
| 4/21 | Principal Types | OCP 10.6 | |
| 4/22 | Lab 12: Principal Types Worksheet | ||
| 4/23 | Specialization | OCP 10.6 | MP3 check-in due |
| 4/27 | Lab 13: Final Exam Review | Fall 2025 Final Exam | |
| 4/28 | Bytecode Interpreters | ||
| 4/30 | Final Exam Review Session (Workshop) | MP3 due, Final Exam Prep Material |
Calendar
Course Staff
- Instructor: Nathan Mull
- Teaching Fellow: Anthony DeRossi
- Teaching Assistant: Vivian Tvedt
- Course Assistants: Miranda Quimbar and Shiyun Yang