Instructor: Jacob Laurel | Semester: Fall 2025
Course Time: MW 11:00am - 12:15pm | Office hours: M 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 | Small step semantics | ||
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 | Exam 1 Review | Assignment 1 Due |
Sep 17 | Midterm Exam 1 | ||
Week 6 | |||
6 | Sep 22 | Propositional Logic | Start thinking about project ideas |
Sep 24 | Hoare Logic (Axiomatic Semantics) | ||
Week 7 | |||
7 | Sep 29 | Hoare Logic Part 2 | |
Oct 1 | Prolog and logic programming | ||
Week 8 | |||
8 | Oct 6 | Lambda Calculus part 1 | |
Oct 8 | Lambda Calculus part 2 | Project Proposal due | |
Week 9 | |||
9 | Oct 13 | Functional Programming in LISP | Assignment 2 Released |
Oct 15 | Simply Typed Lambda Calculus and Type Systems | ||
Week 10 | |||
10 | Oct 20 | Type Systems and Type checking rules | |
Oct 22 | Curry-Howard correspondence | ||
Week 11 | |||
11 | Oct 27 | Dynamic Language Features Pt. 1 (OOP, Reflection, Dynamic Typing) | |
Oct 29 | Dynamic Language Features Pt. 2 | ||
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 | Probabilistic Programming Languages | ||
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 |