Advanced Programming Languages and Verification

It's all just induction presheaves

Course Information and Policies

This is an advanced undergraduate special topics course on programming languages and verification. We'll aim to balance theory and practice, with lecture leaning a little bit theoretical and assignments leaning a little bit practical. We expect the course to be challenging and fast-paced. In particular, the weekly homework assignments are about a full week's worth of work assuming you take a normal course load in addition to this course.

This is a difficult time. The course will be taught entirely online via Zoom. We will record lectures and section for archival purposes, but real-time attendance is mandatory except in extenuating circumstances. Please get in touch to discuss any accommodations you may need to succeed in this course.


  • James Wilcox (

    • Office hours (via Zoom): Tuesdays 1:30-2:30 and by appointment

  • Brendan Murphy (

    • Office hours (via Zoom): Thursdays 3:30-4:30 and by appointment


  • Lecture MWF 11:30-12:20 Zoom

  • Section Th 11:30-12:20 Zoom


  • 9 homework assignments, each worth 10%

  • Attendance and participation in lecture and section, worth the remaining 10%

  • No exams

Collaboration policy

You are encouraged to discuss the homework assignments with your classmates and to collaborate. However, the work you submit should be your own. Do not look at anyone else's work or solution. Do not show your work or solution to anyone else. If you work closely with another student, please include a note to that effect in your submission.

Attendance Policy

Real-time attendance at lecture and section is mandatory except in extenuating circumstances. If you must miss any of these, please notify all staff by email as soon as possible.

Late Policy

All assignments are due on a Wednesday at 5:59:59pm Pacific time. You have 10 late days to use throughout the quarter. Late days are indivisible, and each late day extends the deadline by 24 hours. In other words, if you submit at 6:00:00pm Pacific time on a Wednesday, you are charged 1 whole late day and have until 5:59:59pm on Thursday to keep submitting without spending additional late days.



Everything in the future is subject to change. Everything in the past is subject to inaccuracy.