Annenberg, Room 111

Tuesday/Thursday: noon-1:30

Benjamin Pierce
bcpierce_NOSPAM AT cis.upenn.edu
Office: Levine 562
Office hours: Mondays 2-4
Teaching Assistants
Calvin Beck
hobbes_NOSPAM AT seas.upenn.edu
Office hours: Fridays 3-5
Levine 5th floor bump space (by elevators)
Konstantinos Kallas
kallas_NOSPAM AT seas.upenn.edu
Office hours: Mondays 5-7
Levine 5th floor bump space (by elevators)


The main texts for the course are the online books Logical Foundations and Programming Language Foundations, volumes 1 and 2 of the Software Foundations series. A good supplemental text is Types and Programming Languages. Recommendations for some other useful books can be found in the Postscript chapter of Software Foundations.

Discussion Forum

We will use Piazza for both announcements and discussions. Please register yourself there to make sure you keep up with what's happening.

Poll Everywhere

To make lectures more interactive, we will be using the Poll Everywhere platform. To participate in polls, you will need either a smartphone (iOS or Android) with the Poll Everywhere app installed or any other cellphone with text messaging capability. There is no charge to students for using this platform.


Homework can be submitted via Canvas. If you are taking the course but cannot access the CIS 500 Canvas pages, please contact one of the TAs.

When submitting Coq files as homeworks, make sure that Coq accepts your file in its entirety. If it does not, it will not be graded. You can use Admitted to force Coq to accept incomplete proofs.

Homework is normally due at 11:30AM on the date specified (exceptions noted below). Late homework submissions will be accepted for up to three days, with a 25% reduction in credit per late day (25% for up to 24 hours late, 50% for 24-48 hours, and 75% for 48-72 hours). Solutions will be posted on Canvas.

Class Schedule

The following links provide HTML and Coq .v files for the lecture material in the course. These materials will be updated throughout the semester, so please be sure that you use the most recent version of the files, especially for homework.