PL: FAQCommon frequently asked questions.

General Communications

I have a question about an upcoming homework, who should I ask?

I have a question about my graded homework, who should I ask?

Start with the grader who went over your code. Be sure to include the “Grading File” label that appears at the top of the file since grading is anonymous.

Can I meet you?

Sure. First, try to catch me at the end of class. If that doesn’t work for you, or if you need more time, then a physical meeting is harder to arrange — so email me, and we’ll arrange a hangout / skype / phone-call / whatever.

Handin Account

I forgot my handin password, what should I do?

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

How do I change my email?

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.

How do I change my username?

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.

Homework Submission

OMG! The deadline is in 10 minutes, and I forgot my password!

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.

I cannot submit my homework because »reasons«, can I email it?

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

I couldn’t get the whole homework implemented, what should I do?

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.

Can I submit after a homework is closed? For a penalty?

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.

I vaguely remember some things about the deadline being flexible, what was that about?

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.

What’s this “scratch” submission directory?

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

I’m trying to submit a scratch file, but the server complains about an existing submission—?

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.

Network Issues / PLQ

How do I install the PLQ web-app on iOS?

DrRacket cannot connect to the handin server...

Racket / DrRacket

How can I use the DrRacket debugger?

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 looks like a great language, how can I learn how to do real stuff in it?

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.