15-312 Principles of Programming Languages


Homework Assignments

The programming and written assignments 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 12 Inductive Definitions TeX template Jan 19 HW0 Solutions
1 Jan 19 Syntax, Statics, and Dynamics Code + TeX template Feb 2 Written Solutions Code Solutions
2 Feb 4 Products, Sums, Inductive and Coinductive Types Code + TeX template Feb 18 Written Solutions Code Solutions
3 Feb 18 Polymorphic Types; Dynamic Typing Code + TeX template Mar 3 Written Solutions Code Solutions
4 Mar 17 Imperative Programming Code + TeX template Mar 31 Written Solutions Code Solutions
5 Mar 31 Parallelism Code + TeX template Apr 14 Written Solutions Code Solutions
6 Apr 14 Concurrency Code + TeX template Apr 28 Written Solutions Code Solutions

Handout and Handin

Assignments will be made available on this Web page, and solutions are to be submitted via autolab. To submit a homework to autolab, run make in the root directory of the assignment. This will generate handin.tar which may then be uploaded to autolab. After submitting please check to make sure that the 1 point problem check is 1.0, this means that all of the necessary files were present and that your code compiled. If it is 0.0, your submission is incomplete. You may make as many submissions as you like before the due date, only the latest will be graded.

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. 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 autolab. Autolab will automatically mark late submissions by the appropriate number of late days. This will be used to determine whether or not a student has used a late day.

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


Robert Harper
Last modified: Wed Dec 23 14:11:44 EST 2015

Valid XHTML 1.0!