Welcome to CS221! The syllabus contains detailed information on all aspects of the course. The instructor for CS221 in the spring quarter 2017 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, and some Java.

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 12:00 to 1:20.


The homework exercises will be presented on piazza. Homework exercises will be roughly weekly and all homework transactions will be electronic, through git. There is no group work in CS221. Each student's subversion repository is named CNET and is hosted at mit.cs.uchicago.edu.


There will be a midterm exam on Tuesday, May 2 at the usual class time (12:00–1:20).

There may be a second exam at the end of the quarter.

Office Hours

Adam Shaw Mondays 1:30pm–3:00pm and Fridays 1pm–2:30pm (Ryerson 128), or by appointment


Required Text

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

Software Foundations, Benjamin Pierce and others, available online, free of charge, at https://www.cis.upenn.edu/~bcpierce/sf/current/index.html.

Optional Supplementary Texts

Elements of ML Programming, Jeffrey Ullman, Prentice-Hall

ML for the Working Programmer, L.C. Paulson, Cambridge University Press

Programming in Standard ML, Robert Harper, http://www.cs.cmu.edu/~rwh/smlbook/book.pdf


Standard ML of New Jersey: smlnj.org

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.