PL: FAQCommon frequently asked questions.

General Communications

I can’t join the piazza group, can you add me?
🔗

There’s no need to join. You will be added once you create a handin account (which becomes possible around the first class).

I have a question about an open 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 (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.

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

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 Issues

I’m trying to do some future homework, and there’s a red link to »whatever« which I need...?
🔗

The homework are intended to mostly go along as we go over the material. A red link is for stuff that is not available yet. If you really want to some future homework now, then you can dig through the future class notes and find what’s needed. But this is not recommended, and even less so if code from these notes is needed.

If you think that this is a mistake then ask on piazza.

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.

The deadline has passed but the homework submission is still open, can I submit it?
🔗

I don’t give penalties for late submissions, and I usually close homework manually. So it’s quite possible that a submission is possible past the deadline, and submissions are fine at that time. But you should not rely on this so if the deadline is approaching, be sure to submit whatever you have, and if you need more time, then ask me.

But more generally, for best results, don’t start working on a homework the day it is due. Start much earlier, and be done with it earlier. You’ll feel better.

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 previous answer if it’s past the due date but the submission is not closed.

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.

Homework Pairs

I prefer to work alone, is that possible?
🔗

Sometimes. Having pairs is also useful to make it possible for the graders to go over all submissions, so we prefer that everyone is paired up. If you prefer to work alone, ask for it in your email, and we’ll see if it’s possible to make it work.

X and myself want to work together even but I’m in 5400 and X is in 4400, is that OK?
🔗

Sometimes. First of all, while the additional 5400 homework are still optional for 4400 students, usually people don’t do them — so you should expect to do have of the homework by yourself. In addition, if you pair up, you might leave another couple of stranded 5400/4400 students which in the best case inflicts a similar problem on someone else.

We have a team of three people and we’re used to working together. Can we register as a triplet?
🔗

In almost all cases the answer is no. While pair-programming can often be beneficial for both people, having a triplet means that one of the three gets left behind, not programming and not following the work.

Grade & Grading

I got some points taken off for a style issue, but it’s not mentioned in the style guide!
🔗

The Style Guide is not in tended to be an exhaustive list of everything you should ever know to avoid such penalties. Attempts to make it so are inherently futile and frustrating. On one hand, they are futile since there can always be another way to write code badly, making it a never-ending chase after some notion of completeness that is never achieved. However, such a chace will make it more and more verbose, leaving students with a huge list of rules to go over, which will lead to frustration all around: students will be frustrated by its length, or by the verbosity of the precise-but-verbose language that will result from generations of fixes, or by the fact that the grading will look more like a list of mistakes on your tax return forms. Graders will also be frustrated with finding the places where some rule is mentioned, and the chore of keeping the list updated.

Finally, what if such a list did exist, was painfully comprehensive, and people could read and follow it completely? Even that supposedly ideal outcome is not good at all: taking out all human considerations from making your code readable means that you’ll stop thinking about how to make your code nice and readable for the people you work with. There’s different expression styles, both at the lowest level of indenting your code through the highest level of code design and organization. You really should learn to think about all aspects of your code and make it as readable as you can.

That’s not to say that there is no place in the world for style guides. They’re useful in getting the obvious details laid out for newbies, they can help in settling on certain decisions when there are different opinions, and they are therefore first and foremost a useful tool for humans to communicate with each other. In your case, you are expected to ask when something is unclear or debatable, and you need to learn good habit and respect how code is written. Just as a quick example: you should grow to be careful to respect the style in any project you work with. For example, in modern JS/Python/etc projects you get to decide on using single-quotes or double-quotes for strings — and in almost all cases, the people who work on a project have a specific preference; it is therefore good to read existing code and see what the convention are even when the project doesn’t have its own style guide. In time, you would hopefully grow to a point of appreciating such issues enough to write your own guide for people who want to work with you.

There’s a mistake in the grading of my homework, what now?
🔗

Look in the graded file (graded.rkt) — it has two important bits of information in the header section at 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.

What can I do to improve my grades?
🔗

Did you go over the Tips page? Pay extra attention to the Keeping Up section.

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.

I’m stressing about my grade — what should I do?
🔗

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.

The end of the semester is coming up, and I’m not doing well. Can I do some extra project or something to improve my grade?
🔗

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.

It’s the end of the semester and my karma grade is low — was there some problem that made me getsuch a grade?
🔗

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.

I had autodropped PLQs that aren’t the lowest, is this a bug?
🔗

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.

Technical Issues (Network, PLQ, etc)

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.

How do I debug macros?
🔗

See the Debugging Macros page.

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.