Start with the grader who went over your code (indicated at the top of the file). Be sure to include the “Grading File” label that appears at the top of the file since grading is anonymous. See also the “Grade Questions” section below.
Sure. First, try to catch me at the end of class. If that doesn’t work for you, or if you need more time, you can catch me at my online office hours. If that doesn’t fit your schedule too, email me to schedule another time to meet (online).
Unfortunately, there is no way to recover a forgotten password. However, you can catch me after class or email me, and I will reset the password to something you know. (If you email me, then include a phone number that I can call back to ask you what to reset your password to.)
Just use the “Manage” menu option to get the handin account — in the “change info” tab enter your password and click “get current info” to get the information and to change it. But please also make sure that it’s an email that you’re actually using, since I’m assuming that emailing at the handin address actually reaches you.
This can be problematic, since the username is used in many places in the system. So it’s best to avoid this unless it’s early in the semester.
Calm down, take a deep breath, and email me — either I’ll answer you and resolve it as above, or I’m off-line and in that case I won’t close the submission.
No! If you do that, I end up trying to figure out what’s wrong and submit it for you, and if I don’t have time for that I won’t... Instead, just email me and I’ll try to help you resolve the problem. (This is assuming some technical problem, of course, not a missing answer.)
First, write a comment at the top of the file clearly describing the part(s) that you couldn’t implement. Next, make sure that you have complete test coverage for what you have implemented to avoid a penalty. Finally, try to submit: if the server complains about some missing binding, add it as a stub (usually you’ll need a stub function to still have the correct arity since the server checks that too), and add a dummy test for the stub so that you don’t get penalized for incomplete coverage. Repeat the process until the server accepts your submission.
No: when a homework is closed its solution gets posted to the handin server, so it doesn’t make sense to accept late submissions. (And the reason the solutions are posted after a homework is closed is not just to learn from it, it’s also sometimes needed for a followup homework.) However, see the next answer.
In general, I try to give people more time when needed and when I can. One aspect of that is that I close submissions manually, so if I happen to be sleeping you get free time. (This leads to the “OMG” answer above.)
If this sounds confusing, or if you don’t think that you’ll remember the details, then treat the deadline like you would in any other class. For best results, don’t start working on a homework the day it is due. Statistically speaking, if you do that then there will be occasions where you’ll run out of time.
It’s a handin directory that accepts anything, and can be conveniently used in two common situations:
Note, BTW, that I reset the scratch space from time to time, so it’s intended for working on your submissions, not as a generic storage thing. (But I do keep backups, in case you lose something...)
The system is designed so that every username has at most one submission, and this applies to scratch submissions too. This means that if you have a scratch submission with your username (A) and you try to submit another one with your partner (A+B), the server will complain. If this happens, email me and I’ll move the old scratch submission out.
Look in the graded file (graded.rkt or graded.html) — it has two important bits of information near the top: first, a Graded by comment should show you which grader did the grading and therefore should be your contact point (see the table). The second important bit is a Grading File comment: the graders receive anonymized filenames, so you need to identify your file in case of grading questions.
Please realize that grading resources are limited, and in some cases a grading mistake should apply to other students too, so dealing with such problems might take a while.
In extreme cases I recommend that you find someone to teach. It might seem that understanding the material is difficult for you to follow — but if you’re teaching someone else, it will help you organize what you know, and as you’re explaining it, things will become clearer to yourself too.
First: Don’t Panic!
Remember that you have many ways to evaluate your performance. In particular, use the grades.txt file (when it becomes available in the “Summary” row on the handin server) to see your current estimated numbers: your grade, the possible grade range from now to the end of the semester, and your percentile. Remember to also compare your numbers against the class charts.
If you’re worried about PLQ grades, then read through the About PLQ page. It has a thorough explanation of the format. In many cases students are unaware of these details resulting in being redundantly over-stressed about it. A great way to improve your performance is to suggest a question!
If you’re still worried about your performance, please do email me and set up an appointment to review your performance and discuss what could be done to improve things (if needed). People are often over-stressting for many reasons, and in many cases they have nothing to be worried about — going over your numbers in a meeting is a good way to avoid such stress and be more focused on the material.
Short answer: no.
Long answer: such projects, extra homework, etc are problematic in several ways. First, a problem with these end-of-semester requests is that doing anything after the semester is done is technically difficult enough to be impractical. At that point there is no course staff so it’s only me who would need to handle such things.
A more severe problem is that such things are inherently unfair to other students. It might be that you’re looking at a potential failure so you’re more stressed, but if there’s an option to improve grades via extra work then almost everyone will want to do it, even ones that have very good grades. This means that these kind of extras become regular homework, not really extras — and this means that you’re actually asking for another homework for everyone.
The karma grade is special in that it doesn’t follow the same rules as homework/exam/PLQ. For exams (and PLQs), the grading is usually “positive grading”, where you’re getting some points for doing things right; and for homework it’s usually “negative grading” where your grade starts from a 100 and you get penalized for problems. The karma grades, however, are neither of these. There is no list of things that you should do to get a 100, and there is no tracking of bad things you did with penalties.
So the bottom line is that it’s just a combination of a bunch of numbers that are factored in (for example, various piazza stats, grading bonuses, etc), combined into a single number and the whole thing is done so the final number is somewhere on a range that looks like a normal grade — and like everything else, used in the context of all grades.
The autodropping algorithm chooses the PLQs that did the most damage to maximize your grade. Different PLQs have different weights, so these are not always the lowest grades.
The debugger that is included with DrRacket is somewhat unlike other debuggers that you’re used to, and somewhat undermaintained. It is therefore not recommended to use it. This is, BTW, a common theme with functional languages: these languages are usually easier to debug by experimenting on the REPL, and adding an occasional print to follow code.
Racket is indeed well fitted for any job, in many cases more than other languages. If you’re interested, then start from the Racket Documentation, where you can find many useful guides and manuals. Specifically, the More guide will walk you through implementing a web-server, or you can read the Continue guide to learn how to implement a web-app using Racket’s web-server.