Skip to content

Getting Help

It is expected that most students will need help outside of class in some manner.

That may not have been the case in your prior degree. Here, it is important to engage with the course staff beyond just attending lecture to get the most out of this class.

The two primary means of this are Ed Discussion and Office Hours. They serve related, but distinct purposes— here's how to get the most out of each of them.

Office Hours

Office Hours are regular time that course staff (James and TAs) sets aside for you to get help on concepts and assignments.

You can come by at any point during this period and we'll do our best to answer your question. Please come with your laptop, and questions prepared ahead of time, as sometimes there'll be a line and it's important we make time for everyone.

See Office Hours Schedule for more details.

Ed Discussion

Ed Discussion is a forum that you may use to ask questions that can be answered by course staff and your fellow peers.

See the link in the sidebar under Resources.

Asking technical questions is an important skill in and of itself, you'll be asking your colleagues and friends technical questions in your job, and it is good to get practice at this here.

Below is some general advice on how to approach Ed:

Search Before Asking

Before posting a question on Ed, check whether it has already been answered in a previous post. For example, suppose you are getting an IndexError; you could search just for that word to see if any other students have encountered that same error (and, if you’re lucky, an instructor/TA will have already answered it).

Make sure to always check the "pinned" posts. We will often "pin" a post about a particular assignment that might contain the information you are looking for. Be sure to read these first.

Ask A Question

Make sure you’re going to ask an actual question. You need to tell us about a specific issue you’re encountering, and why you’re stuck on it (e.g., you are not getting the expected result, the tests are failing in a way you do not understand, etc.). Writing a post that says “I can’t get Task 4 to work, I’ve pushed my code. Please look at it.” is not a question.

It may be helpful to write your question in the format of "I did {X}, expecting {Y}, but {Z} happened instead." This can help us understand the source of the error and reduce the time it takes to get you a high quality answer.

Public vs. Private

All questions about coursework, course logistics, etc. should be asked publicly (please note that you do have the option of asking the question anonymously if you prefer). If you ask such a question privately, we will not answer it: we will ask you to ask it publicly, and will answer it once you do. This way, everyone can benefit from the answer to the question and, if someone runs into the same issue you do, we can refer them to the answer we provided in your post.

The more information, the better!

Sometimes people are brief to avoid wasting people's time. With code, the opposite is usually true — the more information you provide the more easily we can solve your problem.

In particular, it will be much easier for us to help you if we are able to reproduce the exact issue you are encountering (i.e., when we run your code, we must be able to observe the exact same issue you’re encountering). And to do so, we need as much information as possible from you:

  • If your question relates to your code, make sure you push your code to GitHub before asking for help.

  • Make sure you’re running your code on a CS machine. We will not be able to provide assistance if you are running your code on your personal machine, as this will make it harder for us to reproduce the exact issue you are encountering.

  • Include a detailed description of the exact chain of events that lead to the issue you’re encountering (Are you testing a specific function? If so, with what inputs? Does the issue come up when you run a test? Etc.).

  • If you encounter an error message (or any other unexpected output) when running a command (like a Python program, pytest, or git) or when testing a piece of code in the interpreter, please make sure you include the full and unabridged error message (or unexpected output). Summarizing the message (e.g., “Python says something about a KeyError”) makes it harder for us to figure out what the issue is.

  • If something is “wrong”, please describe in what way it seems wrong to you. For example, were you expecting a particular output but got a different one? Is a piece of code behaving in a way you were not expecting? Etc. It can be useful to tell us what you were expecting the code to do, and what you encountered instead.

No Code / No Screenshots

  • Never post your code in Ed. As noted in our Academic Honesty policies, you should never share your code with other students, which means you should never post it on Ed. If you need us to look at your code, just push it to the Git server and we will look at it there. Please note that, if a test prints out a few lines of code as part of its output, that’s ok.

  • No screenshots. Do not post screenshots of the output. Screenshots are not searchable, and may pose readability issues for some people. Instructors/TAs may also want to copy-paste that output somewhere else, which is not possible if you post a screenshot.

If you need to share some output with us, copy-paste from the terminal onto Ed, and use Ed’s “code block” formatting. To copy something on the terminal, just select it (the same way you would do in a word processor: click, and then drag until the end of the output) and press Control-Shift-C.

Other Ed Discussion Tips

Avoid posts that have multiple unrelated questions.

Instead, write a separate post for each question. Please note that it is ok to ask multiple questions in one post if they all relate to the same issue.

When to use follow-ups and when to post a new question.

If you need to provide additional information (say, because we pointed you to this page), please use a follow-up in the same thread. If, on the other hand, you have an entirely new question, please write a new post for it. That way, if others have that same question, it will be easier for them to find your post (and our answer to it), instead of having to dig through the followup discussions of unrelated posts. Do not edit the original question: it is unlikely that we will notice your change.

Found the answer yourself?

If you solved your problem before we got around to helping you, please note that the issue is resolved. If the solution is not specific to your implementation, please add a brief explanation of how you solved the problem in case anyone else runs into the same issue.