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 |
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.
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.
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.
| 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 |