CIS 500: Homework

Homeworks will generally be due every Monday by noon. Late homeworks will not be accepted. Be sure to include the names and emails of all your group members.

Code assignments must be submitted electronically. See below for details. Written assignments must also be submitted electronically (in ascii, ps or pdf form). We strongly encourage you to typeset your assignments using LaTeX.

To electronically submit homework, copy the Postscript or PDF file containing your solution to your SEAS Eniac account using, for example, scp:

% scp main.pdf
Password: ******
Then connect via ssh to and use the cis500submit command to submit your file for grading:
% ~cis500/bin/cis500submit hw1 main.pdf

Submission successful.
Your files must be world-readable in order for them to be submitted. If you do not see "Submission successful" printed out, then we do not have a submission from you, and any previous submissions for that assignment were likely lost. For example, both "Submission FAILED" and "Cannot submit ..." both indicate an unsuccessful attempt at submission.

cis500submit will accept multiple files as input and can be run multiple times before the deadline. IMPORTANT: each time you run cis500submit, it overwrites your previous submission for that assignment. If you need to submit multiple files, submit them all at once.

One final note: cis500submit does not follow symbolic links. It's simplest to specify the actual file on the command line.


NOTE: Solutions can only be downloaded from computers on the UPenn network.

Homework 1 [Basic OCaml] (PDF): Due September 11 by noon. Submit as "hw1".

Homework 2 [More OCaml] (PDF): Due September 18 by noon. Submit as "hw2".

Homework 3 [Induction and Operational Semantics] (PDF): Due September 25 by noon. Submit as "hw3".
Solution: hw03-sol.tex, hw03-sol.pdf.

Homework 4 [Lambda-calculus] (PDF, helper file hw04.f): Due October 2 by noon. Submit as "hw4".
Solution: hw04-sol.pdf.

Homework 5 [Simple types] (PDF): Due October 9 by noon. Submit as "hw5".
Solution: hw05-sol.pdf (hw05-sol.tex (exercise 2 only), proof.sty).

Homework 6 [Extensions of simple types] (PDF): Due October 25 by noon. Submit as "hw6".
Solution: hw06-sol.pdf.

Homework 7 [References and exceptions] (PDF): Due October 30 by noon. Submit as "hw7".
Solution: hw07-sol.pdf.

Homework 8 [Subtyping] (PDF): Due November 6 by noon. Submit as "hw8".
Solution: hw08-sol.pdf.

Homework 9 [Algorithmic Subtyping] (PDF): Due November 20 by noon. Submit as "hw9".
Solution: hw09-sol.pdf.

Homework 10 [Object encodings] (PDF): Due November 29 by noon. Submit as "hw10".
Solution: hw10-sol.pdf.

Homework 11 [Featherweight Java] (PDF): Due December 8 by noon. Submit as "hw11".
Solution: hw11-sol.pdf.