15-312 Principles of Programming Languages


Homework Assignments

The programming and written assignments are the heart of this course and count for half of your final grade. Much of what you learn in this course will be through completing these assignments. There are 4 programming assignments and 4 written assignments; written assignments are scheduled for 1 week, and programming assignments are scheduled for 2 weeks. Your final homework grade is the average of your grades on the eight assignments. All homeworks are due on Monday by 11:59PM.

  Out Type Assignment Due Solutions Statistics
1 Jan 16 W Warm-Up Card Game hw01.tex, hw01.pdf Jan 21, 11:59pm hw01-sol.pdf hw01-stat.pdf
2 Jan 23 P Static and Dynamic Semantics hw02.tex, hw02.pdf, hw02.tgz Feb 04 hw02-sol.pdf hw02-sol.tgz hw02-stat.pdf
3 Feb 06 W Proving and Refuting Safety hw03.tex, hw03.pdf Feb 11 hw03-sol.pdf hw03-stat.pdf
4 Feb 13 P Objecs and Recursive Types hw04.tex, hw04.pdf, hw04.tgz Feb 20 / Feb 25 hw04-sol.pdf hw04-sol.tgz hw04-stat.pdf
5 Mar 19 W Type Generic Programming hw05.tex, hw05.pdf Mar 26 hw05-sol.pdf hw05-stat.pdf
6 Mar 27 P Type-Safe Distributed Computing hw06.tex, hw06.pdf, hw06.tgz April 9 hw06-sol.pdf hw06-sol.tgz hw06-stat.pdf
7 April 9 W Encapsulated Effects hw07.tex, hw07.pdf April 16 hw07-sol.pdf hw07-stat.pdf
8 April 16 W Parallelism and Scheduling hw08.tgz, hw08.pdf, hw08.tex April 30 hw08-sol.pdf hw08-stat.pdf

Handout and Handin

Assignments will be made available on this Web page, and solutions are to be submitted by copying files into a directory. Your handin directory for an assignment is /afs/andrew/course/15/312/handin/userid/assnn/ for assignment n. You may place files into that directory as many times as you like before the assignment is due; at the due-date, we will copy the contents of your directory to another location and that copy will be graded.

We will provide specific handin instructions for each assignment. In general, for programming assignments we ask that you submit your code and a brief README detailing anything you think we need to know to understand your submission. The written assignments are to be submitted in PDF format (only!); they may be typeset using whatever formatting tool you prefer. For this course, LaTeX is strongly encouraged. The tex directory contains some examples.

Late Policy

Every student has up to 3 late days he may use for any assignment throughout the semester, but no homework may be more than two days late (this is so that we can discuss assignments in lecture the Thursday after they are due). For example, a student may hand in Assignment 1 one day late and Assignment 4 two days late, but then all remaining assignments must be handed in by the deadline. By one day late we mean 24 hours late.

Late homework should be submitted as usual, by copying it to your handin directory; we will take snapshots of your directory 24 and 48 hours after an assignment is due. If you are submitting an assignment late, we ask that you mail the TAs by Tuesday morning to notify us and then mail us again once you have completed your final handin. This will save us from accidentally grading a preliminary handin.

Extra Credit

Some assignments will have extra credit questions. The intent is for such questions to be interesting, although some may be very hard. Partial answers and half-baked ideas are welcome and will receive some credit as long as it is clear you have seriously considered the question. See the home page for how extra credit will count towards your grade.

Advice on Programming Assignments

Advice on Written Assignments

Statistics From Homeworks

Assignment 1-50 51-60 61-70 71-80 81-90 91-100 Average
Hw1 1 5 4 7 13 82
Hw2 6 1 8 14 80
Hw3 3 1 1 5 19 87
Hw4 3 1 1 4 20 87
Midterm 2 1 7 20 87
Hw5 4 1 2 1 11 11 79
Hw6 3 2 2 5 3 13 78
Hw7 3 1 4 7 11 4 75
Hw8

Robert Harper
Last modified: Mon Jan 21 17:20:23 EST 2008

Valid XHTML 1.0!