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.
Adam Shaw Tuesdays and Thursdays, 1:00-2:30, Ryerson 157 or by appointment
Lamont Samuels Wednesdays, 1:00-4:00, CSIL 3
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]
College-wide honesty guidelines are here.
The following rules of thumb summarize honesty as it pertains to CS221:
- Never copy work from any other source and submit it as your own.
- Never allow your work to be copied.
- Never submit work identical to another student's.
- Document all collaboration.
- Cite your sources.