This class borrows heavily from CS173 at Brown University, taught by Shriram Krishnamurthi. I had the pleasure of being a TA for the course several times as a graduate student. The program verification assignment is based on a similar assignment designed by Nate Foster for CS4410 at Cornell University.

Thanks to Bobby Powers, Jane Tangen, and Jack Wileden for finding several errors in the lecture notes. Thanks to Samuel Baxter, Rachit Nigam, and Bobby Powers for prototyping some of the support code, fixing bugs in my code, and suggesting hacks to make assignments work more smoothly.