CS 4392 Undergraduate Programming Languages

Instructor: Jacob Laurel | Semester: Fall 2026

Course Time: MW 11:00am - 12:15pm | Office hours: W 2:00pm-3:00pm Klaus 2332

Announcements

Course Summary

Course Logistics

Class Schedule

Week Date Topic Readings / Assignments
Week 1
1 Aug 24 Course introduction, Programming Language basics, and Syntax Syllabus review
Aug 26 Syntax: Context Free Grammars, Parsing
Week 2
2 Aug 31 Big Step Operational Semantics
Sep 2 Operational and Denotational semantics
Week 3
3 Sep 7 Labor Day - NO CLASS None
Sep 9 Interpreters Assignment 1 Released
Week 4
4 Sep 14 Interpreters, Part 2
Sep 16 Abstract Interpretation
Week 5
5 Sep 21 Propositional Logic Assignment 1 Due
Sep 23 Exam 1 Review
Week 6
6 Sep 28 Midterm Exam 1
Sep 30 Hoare Logic (Axiomatic Semantics)
Week 7
7 Oct 5 Fall Break - NO CLASS None
Oct 7 Hoare Logic, Part 2
Week 8
8 Oct 12 Lambda Calculus: Syntax and Semantics, Higher-order Functions
Oct 14 Lambda Calculus: Alpha-Beta Reductions, Lazy Evaluation
Week 9
9 Oct 19 Lambda Calculus: Currying, Eager Evaluation
Oct 21 Functional Programming in Scheme Assignment 2 Released
Week 10
10 Oct 26 Simply Typed Lambda Calculus
Oct 28 Type Systems and Type Checking
Week 11
11 Nov 2 Curry-Howard Correspondance Assignment 2 Due
Nov 4 Logic Programming Assignment 3 Released
Week 12
12 Nov 9 Logic Programming
Nov 11 Object Oriented Programming: Inheritance and Subtyping
Week 13
13 Nov 16 Object Oriented Programming: Polymorphism and Dynamic Typing
Nov 18 Midterm Review Assignment 3 Due
Week 14
14 Nov 23 Midterm 2
Nov 25 Thanksgiving Break - NO CLASS
Week 15
15 Nov 30 Differentiable Programming
Dec 2 Differentiable Programming
Week 16
16 Dec 7 Course Recap