This means that you should use the server to verify that a file was
submitted, and that your graded work does not have anything that you
believe is an error. If there are any problems, you should contact us
We most likely cannot solve issues that are over a week old.
Don’t defer things to the last week of the semester and come to us with a
pile of things to fix.
Homework submissions are handled through a DrRacket plugin that is
available here. There is also a secure web server that you
can use to verify submissions, see grading comments, and check your
grades. See the next section. Note that the handin server uses a high
port, so you need to work through a network that allows you to access
such ports. See the note in the Software Section.
Most homework submissions will be in pairs. When pair submission is in
effect you must notify us who your partner is. Submission will be
allowed only for registered pairs; you will not be able to
submit your work individually unless you have a good reason, which must
To submit your work as a pair, the “username” that should be used is
your two usernames separated by a plus character (eg, alice+bob),
and for the password use either password — you do not need to know
your partner’s password, and either one can submit your work. (But note
the course Policies: you should not submit work as a
pair if you did the work alone!)
You can submit as many times as you want: the server keeps the most
recent submission (with a few backups of previous submissions), and it
is a good idea to have your work in a safe place. When a submission is
successful, you will receive an email with a “receipt” — this
receipt should be used in the unlikely case that there are problems.
The important thing to remember is that you should have a receipt
for every successful submission.
For most submissions, you will be required to provide code and enough
tests to cover the code completely. DrRacket provides a visual
indication for this: after you click “Run”, code that was not covered
is highlighted. If your code is not completely covered, the server will
ask you if you want to submit with a penalty. Note that the actual
penalty will be bigger than you think: if you don’t have enough tests
for complete coverage, then it is very likely that you have bugs, and
the penalty is a percentage of whatever grade you will receive.
The handin server is accessible through secure http. It can be used
to verify submitted files, see your grades, get graded files, and get
solution files. When you look at your submitted works, you will see
your individual submissions as well as works that you submitted with a
Graded files contain two kinds of grading markup:
Every occurrence of ;> indicates a grading comment.
These are comments that we spend time to write, they are not
generated automatically. We expect you to spend time to read and
Some of these ;>-comment lines, contain <-N>,
<+N>, <*N%>, and <*M/N> patterns (for some
integer N). These lines indicate adjustments to your score:
penalty due to mistakes, bonus orpositive grading, or global submission
multiplier, respectively. The sum of mistakes and bonuses, possibly
factored by a multiplier, is what makes your grade. Make sure you
understand your grades!
Other than these ;>-comments, the graded files are identical to
your original work — we never edit your submission in any way.
When you log in to the server, you will see a table with one row for
each homework and plq, and (later in the semester) a “Summary” row.
Each row has several links for various files and a grade. The grade is
your computed grade for each homework or plq; the “Summary” row
has an estimated average based on different weights that are assigned to
each homework and plq. These weights can change at any time, which
means that the average is only an estimate of your performance
throughout the semester since.
The available files are:
“hw.rkt” contains the original, unmodified submission
file. You can use this to retrieve your work.
“graded.rkt” has your submission text with the grading
markup as described above. You can use this to download and save
the graded work.
“graded.html” is an HTML rendering of the previous file,
with the additional markup highlighted.
“solution.rkt” (under a “Solution” link) holds the
provided solution for the homework.
Be sure to follow and verify your grades.
The Summary row has an important additional file — grades.txt.
This file has a listing of all of your grades so far, and an estimated
average grade for them. When enough data is collected, this file will
have a few more useful bits of information:
A grade range, indicating the range of possible
minimum/maximum grade rage, assuming that all future grades are zeros
Your rough percentile, giving you a rough idea of how you’re
When you see this information, be sure to read and understand the
disclaimers under it, reminding you mostly that these are all estimates.
Homework #1: Intro out: Wednesday, September 16th, due: Wednesday, September 23rd.
Homework #2: BNFs, Higher-Order Functions, Typed Racket out: Thursday, September 24th, due: Thursday, October 1st.
Homework #3: Basic Interpreter Extension out: Friday, October 2nd, due: Thursday, October 8th.
Homework #4: Algae out: Friday, October 9th, due: Thursday, October 15th.
Homework #5: Algae, part deux out: Friday, October 16th, due: Wednesday, October 21st. (Master homework, optional for others.)
Homework #6: Brang out: Friday, October 16th, due: Friday, October 23rd.
Homework #7: Brang Strikes Back out: Saturday, October 24th, due: Wednesday, October 28th. (Master homework, optional for others.)
Homework #8: Recurse of the Brang out: Saturday, October 24th, due: Friday, October 30th.
Homework #9: Getting more out of Y out: Saturday, October 31st, due: Thursday, November 5th. (Master homework, optional for others.)
Homework #10: Lazy Programming in Schlac: Von-Koch out: Saturday, October 31st, due: Sunday, November 8th.
Homework #11: Fake Assembler out: Saturday, October 31st, due: Monday, November 9th. (Master homework, optional for others.)
Homework #12: Turbo Toy out: Saturday, October 31st, due: Wednesday, November 11th.
Homework #13: Toy Compiler out: Thursday, November 12th, due: Thursday, November 19th.
Homework #14: Better Toy Compiler out: Thursday, November 12th, due: Monday, November 23rd. (Master homework, optional for others.)
Homework #15: Slug out: Thursday, November 12th, due: Thursday, December 3rd.
Homework #16: Slug Part 2 out: Thursday, November 12th, due: Monday, December 7th. (Master homework, optional for others.)
Homework #17: Using Racket Macros out: Thursday, November 12th, due: Wednesday, December 9th.