CS 440: Programming Languages


  • Please complete the online poll to help decide the timeslot for the upcoming take-home portion of the midterm exam.

  • Lecture recordings can be found on the "Class Recording | Panopto" tab on Blackboard, or at this link (authentication via Blackboard required)

  • We will be using Discord to facilitate student discussion, and to run open TA office hours. If you aren't already a member, please join at https://discord.gg/CcvakvV

  • Welcome to the Fall 2022 edition of CS 440: Programming Languages!


The lecture calendar is tentative and may be updated. All lecture source files can be found in the class GitHub repository.

Date Topic Notes Reading(s)
Aug 24 Syllabus and Course overview slides-intro.pdf Syllabus
Aug 26 Compilers, Interpreters, and Racket slides-racket.pdf CI ch. 2
Aug 31 - Sep 2 Intro to Racket and Basic types 01-intro.rkt RG chs. 2-3
Sep 7 Functions and more special forms 02-functions.rkt RG ch. 4
Sep 9 Lists and Recursion 03-recursion.rkt BR: Lists
Sep 14 - Sep 16 Higher-order functions 04-hofs.rkt
Sep 23 Macros and Syntax transformers 05-macros.rkt RG ch. 16
Sep 28 Racket language implementation 06-lang.rkt
Sep 30 Building an Interpreter 07-interpreters.rkt PLAI chs. 3-4, RG chs. 5, 12
Oct 5 - Oct 7 Closures 08-closures.rkt PLAI chs. 5-6
Oct 7 Desugaring 09-desugaring.rkt
Oct 12 Building interpreters: Recap interpreters-recap.pdf
Oct 14 - Oct 19 Big Step Semantics big-step.pdf Harper ch. 2
Oct 21 Midterm Exam
Oct 26 - Oct 28 Lambda Calculus lambda-calculus.pdf λ-calculus Tutorial
Nov 2 - Nov 4 Continuation Passing Style 10-continuations.rkt
Nov 9 - Nov 11 First-class Continuations 11-callcc.rkt BR: Continuations
Nov 16 - Nov 18 Axiomatic Semantics and Hoare Logic axiomatic.pdf
Nov 30 Type Systems and Unification type-systems.pdf
Dec 2 Unification type-systems.pdf
Dec 7 @ 2PM Final Exam final exam coverage

The following abbreviations for reading materials are used in the lecture calendar:


Released Due Writeup / Resources Repo Invite Max Points
Sep 14 Sep 25 Basics and Recursion cs440lang/mp1 40
Oct 5 Oct 16 HOFs and Symbolic manipulation cs440lang/mp2 55
Oct 26 Nov 6 Interpreters cs440lang/mp2 76
Nov 11 Nov 20 Big-step semantics, Sample solutions 45
Nov 21 Nov 27 Lambda Calculus, Sample solutions 45
Nov 28 Dec 4 Axiomatic Semantics, Sample solutions 20




Reading and References

Development Tools and Resources

Exam Catalog