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 eniac-l.seas.upenn.edu: Password: ****** %Then connect via

% ~cis500/bin/cis500submit hw1 main.pdf Submission successful. %Note that you must give the full path to

`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. So if you need to submit multiple files, submit them all at once.

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

Homework 1 [Induction; Operational Semantics] (PDF, PS): assigned Wednesday, Sept 7th; due Monday, Sept 19th by noon; submit as "hw1" (LaTeX: hw01.tex, code.sty, prooftree.sty) (Solutions: PDF, PS)

Homework 2 [Lambda Calculus] (PDF, PS): assigned Monday, Sept 19th; due Monday, Sept 26th by noon; submit as "hw2" (LaTeX: hw02.tex, local.sty, prooftree.sty) (Solutions: PDF, PS)

Homework 3 [OCaml programming; Arith interpreter] (PDF, PS): assigned Monday, Sept 26th; due Monday, Oct 3rd by noon; submit as "hw3" (Arith implementation) (Clarifications) (Solutions: threen.ml, core.ml)

Homework 4 [de Bruijn] (PDF, PS): assigned Monday, Oct 3rd; due Monday, Oct 10th by noon; submit as "hw4" (LaTeX: hw04.tex, prooftree.sty) (Solutions: PDF, PS)

Homework 5 [Type systems, simply-typed lambda-calculus] (PDF, PS): assigned Wednesday, Oct 19th; due Monday, Oct 31st by noon; submit as "hw5" (LaTeX: hw05.tex, prooftree.sty) (Solutions: PDF, PS)

Homework 6 [Extensions of simply-typed lambda calculus, Derived forms] (PDF, PS): assigned Monday, Oct 30th; due Monday, Nov 7th by noon; submit as "hw6" (List implementation: lists.tar.gz) (Corrected version of syntax.ml) (Solutions: PDF, PS, core7.ml)

Homework 7 [References, Exceptions] (PDF, PS): assigned Monday, Nov 7th; due Monday, Nov 14th by noon; submit as "hw7" (Solutions: PDF, PS)

Homework 8 [Subtyping] (PDF, PS): assigned Monday, Nov 21th; due Wednesday, Nov 30th by noon; submit as "hw8" (Solutions: PDF, PS)

Homework 9 [Object encodings, Featherweight Java] (PDF, PS): assigned Wednesday, Nov 30th; due Wednesday, Dec 7th by noon; submit as "hw9" (LaTeX: hw09.tex, code.sty, prooftree.sty) (Solutions: PDF, PS)