CIS 500: Homework

To submit homework, put all your solutions into a single file (named, say, Copy this file to your SEAS Eniac account using, for example, scp:

% scp
Password: ******
Then connect via ssh to and use the turnin command to submit your file for grading:

% turnin -c cis500 -p hw2
Your files have been submitted to cis500, 
hw2 for grading.
(If you do not have an account on Eniac, you may submit your homework by email to

turnin will accept multiple files as input, and can be run multiple times before the deadline.

Homeworks will generally be due every Monday by noon. Late homeworks will not be accepted.


Homework 1 [Intro to Functional Programming] (PDF, PS), assigned Wednesday, Sept 3rd, is due Monday, Sept 8th at noon.

Homework 2 [Functional Programming] (PDF, PS), assigned Monday, Sep 8rd, is due Monday, Sep 15th at noon.

Homework 3 [Induction] (PDF, PS), assigned Monday, Sep 15th, is due Monday, Sep 22nd at noon.

Homework 4 [Lambda calculus] (PDF, PS), assigned Monday, Sep 22nd, is due Monday, Sep 29th at noon.

Homework 5 [Term representations; basic types] (PDF, PS), assigned Monday, Sep 29th, is due Monday, Oct 5th at noon.

Homework 6 [Simply typed lambda-calculus] (PDF, PS), assigned Wednesday, Oct 15th, is due Monday, Oct 20th at noon.

Homework 7 [Extensions of the simply typed lambda-calculus] (PDF, PS), assigned Monday, Oct 20th, is due Monday, Oct 27th at noon.

Homework 8 [References and exceptions] (PDF, PS) is due Monday, November 3rd, at noon.

Homework 9 [Subtyping] (PDF, PS) is due Monday, November 10th, at noon.

Homework 10 [Metatheory of subtyping] (PDF, PS) is due Monday, November 24th, at noon.

Homework 11 [Objects] (PDF, PS) is due Wednesday, December 3rd, at noon.

Homework 12 [Featherweight Java] (PDF, PS) is due Monday, December 8th at noon.