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. Your final homework grade is the average of your grades on the seven assignments.

  Out Assignment Support Code Due Solutions
0 Jan 15 Rule Induction TeX template Jan 22 HW0 Solutions
1 Jan 22 ABTs, Dynamics and Statics Code + TeX template Feb 5 Written Solutions Code Solutions
2 Feb 8 Recursion, Finite Data Types and Pattern Matching Code + TeX template Feb 21 Written Solutions Code Solutions
3 Feb 23 Dynamic Typing and Refinements Code + TeX template Mar 11 (9am) Written Solutions Code Solutions
4 Mar 22 Church Encodings, Abstract Types and Imperative Programming Code + TeX template Apr 4 Written Solutions Code Solutions
5 Apr 5 Parallelism Code + TeX template Apr 22 Written Solutions Code Solutions
6 Apr 20 Concurrent Algol Code + TeX template May 4 Written Solutions Code Solutions

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 must be typeset using LaTeX. 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.

No homework assignment will be accepted more than two days after the due date. Once you used your budget of three late days for the semester, each late day will be assessed a 25% on your grade for that assignment. So, if you are two days late and over budget, you can earn at most 50% credit for an assignment.

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 Highest
HW0 2 5 4 9 18 17 81.2 100
HW1 2 3 2 5 17 15 82.1 99
HW2 (no EC) 8 3 3 4 8 19 75.8 100
Midterm 8 6 4 4 14 8 71.8 99
HW3 5 2 6 5 21 3 75.1 97

Robert Harper

Valid XHTML 1.0!