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 |