Warning
Submissions
Homework submissions are handled through a DrRacket plugin that you should have installed. 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 be approved.
To submit your work as a pair, the “username” that should be used is your two usernames separated by a plus character (e.g., 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.
Handin Server
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 partner.
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 understand them.
- 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 or positive 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.
- “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 or hundreds.
- Your rough percentile, giving you a rough idea of how you’re doing overall.
Homework
- Homework #1: Intro (graded)
out: Tuesday, September 10th, due: Monday, September 16th. - Homework #2: BNFs, Higher-Order Functions, Typed Racket (graded)
out: Monday, September 16th, due: Monday, September 23rd. - Homework #3: Basic Interpreter Extension (graded)
out: Monday, September 23rd, due: Monday, September 30th. - Homework #4: Algae (graded)
out: Monday, September 30th, due: Monday, October 7th. - Homework #5: Algae, part deux (graded)
out: Monday, October 7th, due: Friday, October 11th.
(Master homework, optional for others.) - Homework #6: Brang (graded)
out: Monday, October 7th, due: Tuesday, October 15th. - Homework #7: Fake Assembler (graded)
out: Friday, October 11th, due: Friday, October 18th.
(Master homework, optional for others.) - Homework #8: Brang Strikes Back (closed)
out: Monday, October 14th, due: Monday, October 21st. - Homework #9: Recurse of the Brang (graded)
out: Friday, October 18th, due: Friday, October 25th.
(Master homework, optional for others.) - Homework #10: Lazy Programming in Schlac: Von-Koch (graded)
out: Monday, October 21st, due: Monday, October 28th. - Homework #11: Getting more out of Y (graded)
out: Friday, October 25th, due: Friday, November 1st.
(Master homework, optional for others.) - Homework #12: Turbo Toy (graded)
out: Monday, October 28th, due: Friday, November 8th. - Homework #13: Toy Compiler (graded)
out: Monday, November 4th, due: Friday, November 15th. - Homework #14: Better Toy Compiler (graded)
out: Monday, November 11th, due: Wednesday, November 20th.
(Master homework, optional for others.) - Homework #15: Slug (graded)
out: Monday, November 11th, due: Friday, November 22nd. - Homework #16: Slug Part 2 (graded)
out: Monday, November 18th, due: Monday, November 25th.
(Master homework, optional for others.) - Homework #17: Using Racket Macros (graded)
out: Monday, November 18th, due: Wednesday, December 4th.
PLQs
- PLQ #1: Tuesday, September 17th
- PLQ #2: Tuesday, September 24th
- PLQ #3: Tuesday, October 1st
- PLQ #4: Tuesday, October 8th
- PLQ #5: Tuesday, October 15th
- PLQ #6: Tuesday, October 22nd
- PLQ #7: Tuesday, October 29th
- PLQ #8: Tuesday, November 5th
- PLQ #9: Tuesday, November 12th
- PLQ #10: Tuesday, November 19th
- PLQ #11: Tuesday, November 26th
- PLQ #12: Tuesday, December 3rd
- PLQ #13: Tuesday, December 3rd
Statistics
These charts show the statistics for homework, PLQs, and the estimated class average.