Welcome to CS221! The syllabus [coming soon] contains detailed information on all aspects of the course. The instructor for CS221 in the spring quarter 2014 is Adam Shaw.

The overarching topic of CS221 is scientific programming language design. The subtopics to be surveyed include the lambda calculus, dynamic and static semantics, programming language theorems and proof techniques, machine-assisted proofs, and selections of classic and recent literature in programming languages research.

Students will work in Standard ML and LaTeX.

Course content will appear both at this site and on piazza. You either have received or will receive an invitation, with registration instructions, to the piazza course site at your uchicago.edu email address. Please let us know as soon as possible if you have not received an invitation.


Lectures are in Ryerson 251. They are Tuesdays and Thursdays from 10:30 to 11:50.


The homework exercises are linked to from the index to coursework. Homework exercises will be roughly weekly and all homework transactions will be electronic, through subversion.


There will be a midterm exam on Tuesday, May 6 in Cummings 101 at the usual class time (10:30am–11:50).

In lieu of a final exam during finals week, we will have a second exam after the last class, on Tuesday, June 3 from 6pm–8pm in Kent 107.

Office Hours

Adam Shaw Tuesdays and Thursdays, 1:00-2:30, Ryerson 157 or by appointment

Lamont Samuels Wednesdays, 1:00-4:00, CSIL 3


Required Text

Types and Programming Languages, Benjamin C. Pierce, MIT Press, ISBN-10: 0262162091, ISBN-13: 978-0262162098. This text is for sale at the Seminary Co-op.

Optional Supplementary Texts

Elements of ML Programming, Jeffrey D. Ullman, Prentice-Hall


Version Control with Subversion by Pilato, Collins-Sussman and Fitzpatrick (full text online) [website]

Piazza (Q&A, announcements, course materials) [website]

Academic Honesty

College-wide honesty guidelines are here.

The following rules of thumb summarize honesty as it pertains to CS221:

Dishonesty will not be tolerated. There will be serious consequences to dishonest behavior.