CS 440: Programming Languages

Announcements

  • (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

Calendar

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:

Machine Problems

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

Resources

Administrivia

Reading and References

Development Tools and Resources