(4/18) MP3 has been released!
(3/25) The take-home midterm exam has been released!
(3/2) MP2 has been released!
(2/7) MP1 has been released!
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
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) |
---|---|---|---|
Jan 12 | Syllabus and Course overview | slides-intro.pdf | Syllabus |
Jan 14 | Compilers, Interpreters, and Racket | slides-racket.pdf | CI ch. 2 |
Jan 19 - Jan 21 | Intro to Racket and Basic types | 01-intro.rkt | RG chs. 2-3 |
Jan 26 | Functions and Special forms | 02-functions.rkt | RG ch. 4 |
Jan 28 | Lists and Recursion | 03-recursion.rkt | BR: Lists |
Feb 2 - Feb 4 | Higher-order functions | 04-hofs.rkt | |
Feb 9 | Macros and Syntax transformers | 05-macros.rkt | RG ch. 16 |
Feb 11 - Feb 16 | Building an Interpreter | 06-interpreters.rkt | PLAI chs. 3-4, RG chs. 5, 12 |
Feb 18 | Closures | 07-closures.rkt | PLAI chs. 5-6 |
Feb 23 | Desugaring | 08-desugaring.rkt | |
Feb 25 - Mar 2 | Big Step Semantics | big-step.pdf | Harper ch. 2 |
Mar 4 - Mar 11 | Lambda Calculus | lambda-calculus.pdf | λ-calculus Tutorial |
Mar 25 | Midterm Exam | ||
Mar 30 | Continuation Passing Style | 09-continuations.rkt | |
Apr 6 | First-class Continuations | 10-callcc.rkt | BR: Continuations |
Apr 8 - Apr 13 | Small-Step Semantics | small-step.pdf | |
Apr 15 - Apr 20 | Axiomatic Semantics and Hoare Logic | axiomatic.pdf | |
Apr 22 - Apr 29 | Type Systems and Unification | type-systems.pdf | |
— | Final Exam Review | final-exam-review.pdf |
The following abbreviations for reading materials are used in the lecture calendar:
Released | Due | Writeup / Resources | Repo Invite | Max Points |
---|---|---|---|---|
Feb 7 | Feb 25 | Racket | cs440lang/mp1 | 50 |
Mar 2 | Mar 20 | Interpreters | cs440lang/mp2 | 76 |
Mar 25 (1PM) | Mar 26 (1PM) | Midterm Exam (Take Home) | cs440lang/midterm | 80 |
Mar 30 | Apr 10 | Big-step semantics & Lambda calculus | — | 50 |
Apr 20 | May 1 | Continuations | cs440lang/mp3 | 34 |