Instructor: Jacob Laurel | Semester: Fall 2025
Course Time: MW 11:00am - 12:15pm | Office hours: W 2:00pm-3:00pm Klaus 2332
| Week | Date | Topic | Readings / Assignments |
|---|---|---|---|
| Week 1 | |||
| 1 | Aug 18 | Course introduction and what is a programming language? | Syllabus review |
| Aug 20 | Syntax: Context Free Grammar, Parsing | ||
| Week 2 | |||
| 2 | Aug 25 | Big step operational semantics | |
| Aug 27 | Operational semantics part 2 | ||
| Week 3 | |||
| 3 | Sep 1 | Labor Day - NO CLASS | None |
| Sep 3 | Interpreters and Denotational Semantics | Assignment 1 Released | |
| Week 4 | |||
| 4 | Sep 8 | Interpreters and Denotational Semantics | |
| Sep 10 | Abstract Interpretation | ||
| Week 5 | |||
| 5 | Sep 15 | Propositional Logic | Assignment 1 Due |
| Sep 17 | Exam 1 Review | ||
| Week 6 | |||
| 6 | Sep 22 | Midterm Exam 1 | Start thinking about project ideas |
| Sep 24 | Hoare Logic (Axiomatic Semantics) | ||
| Week 7 | |||
| 7 | Sep 29 | Hoare Logic Part 2 | |
| Oct 1 | Hoare Logic Part 3 | ||
| Week 8 | |||
| 8 | Oct 6 | No Class | |
| Oct 8 | Lambda Calculus part 1 | ||
| Week 9 | |||
| 9 | Oct 13 | Class Cancelled | Project Proposal due |
| Oct 15 | Lambda Calculus Part 2 | ||
| Week 10 | |||
| 10 | Oct 20 | Lambda Calculus Part 3 | Assignment 2 Released |
| Oct 22 | Simply Typed Lambda Calculus | ||
| Week 11 | |||
| 11 | Oct 27 | Type Systems and Curry-Howard | |
| Oct 29 | Polymorphism and Dynamic Language Features | ||
| Week 12 | |||
| 12 | Nov 3 | Review for Midterm 2 | Assignment 2 Due |
| Nov 5 | Midterm Exam 2 | ||
| Week 13 | |||
| 13 | Nov 10 | Reactive and Dataflow Programming Languages | |
| Nov 12 | Program Slicing | ||
| Week 14 | |||
| 14 | Nov 17 | Probabilistic Programming Languages | |
| Nov 19 | Differentiable Programming Languages | ||
| Week 15 | |||
| 15 | Nov 24 | Differentiable Programming Languages | Project Reports Due |
| Nov 26 | No Class | ||
| Week 16 | |||
| 16 | Dec 1 | Course Recap | |