Steve Zdancewic
    office hours: Wednesdays 2:00-3:00 pm (and by appointment) Levine 511

Teaching Assistants

Calvin Beck
    office hours: Mondays 15:30-16:30 Levine 5th floor bump space

Paul He
    office hours: Tuesdays 9:30-10:30 am Levine 5th floor bump space

Nick Rioux
    office hours: Mondays 13:00-14:00 GRW 5th floor bump space ("Levine North")

Course information:

  time: TR 10:30am - noon
  room: Towne 313
  piazza: cis341

Prerequisites: CIS 121 and CIS 240


Reading and References

The following books contain useful course material, and much of the lecture content is derived from them (and other sources).

In addition, the following papers and web sites provide supplementary material. Reading selections from these sources will be announced in class.

Projects: Building a Compiler

There are several homework projects. Homework 1 is an individual assignment. The rest of the projects are pair-programming projects -- students are strongly encouraged to work in pairs, but may ask permission to work alone on them.


CIS 341 Toolchain - instructions for getting access to the tools you need to complete course assignments.

Grading Criteria

Check your current scores.

Lecture Slides and Notes

Recorded Zoom sessions starting from Lecture 15 (3/24/20) are available at Penn's PanOpto Site .

*Prof. Zdancewic will be absent.

Some of the slides in these lectures have been adapted (with permission) from course materials by Andrew Myers at Cornell University and Greg Morrisett at Harvard University.

Course Policies

General Project Guidelines

Submission Policy

Academic Integrity

This course will abide by the University's Code of Academic Integrity. In particular, for individual projects and group projects, the following guidelines should be followed:

Although we encourage you to use version control software (e.g. git) for the course projects, please do not distribute the solutions.

Last modified: Mon May 4 12:00:48 EDT 2020