Asking Questions on Piazza

As you work through the CMSC 12100 coursework, many of you will probably have questions or will encounter issues that you are not sure how to deal with. Piazza provides a convenient mechanism to ask questions, but it can sometimes be challenging to provide assistance if you do not provide the right information when asking a question. Here are a few suggestions that may help you ask questions more effectively on Piazza:

  • Before you post a question…

    • Search before asking. Before posting a question on Piazza, check whether it has already been answered in a previous post. We realize the volume of posts can be overwhelming, but you should start by using Piazza’s search functionality to see if it brings up any relevant posts. 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 titled “Must read posts for [assignment name]” with links to posts that address common issues and questions on that assignment (the pinned posts appear at the top of the left sidebar, under “Pinned”). So, make sure you check that post first.

    • 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! (please note that we’re happy to help you work through a task you’re having trouble with and may ultimately suggest that you come to office hours for this but, on Piazza, you have to make sure you’re asking a specific question).

  • Public vs private questions. Piazza has a mechanism that allows you to ask a private question, which will be seen only by the instructors and teaching assistants. This mechanism should be used only for truly private matters that relate uniquely to you (e.g., you need to notify us of a family/medical emergency, etc.)

    In general, 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. We know that, in some classes, you may feel the need to be brief and concise when asking for help to “avoid wasting the professor’s time” or because “professors don’t have time to read long e-mails”. The absolute opposite is true in this class: when asking for help, we prefer that you overwhelm us with information.

    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 the Git server before asking for help.

    • Make sure you’re running your code on a CS machine (either through the virtual desktop or via SSH). 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, py.test, 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.

  • What not to include in your question:

    • Never post your code in Piazza. As noted in our Academic Honesty policies, you should never share your code with other students, which means you should never post it on Piazza. 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 Piazza, and use Piazza’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.

  • One question, one post. 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.

  • If you need to provide additional information on a question, or have a follow-up question…

    • Use follow-up discussions. 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 use the “students’ answer”. When you do so, it flags the question as “resolved”, because “a student has answered it”. Whenever you need to provide additional information, or have a follow-up question, always use a “follow-up discussion”. This is always marked as “unresolved” by default, which means the instructors/TAs will know it needs a reply.

      The “students’ answer” should be used only when you know the answer to the question asked by another student, and you would like to provide an answer. If your answer is accurate, an instructor will endorse it.

    • Do not edit the original question: if we do pointed you to this page, and you provide the information we asked for by editing your original post, the instructors/TAs will actually not get a notification when you do this. In fact, the post will show up as “resolved” on our end (from Piazza’s perspective, we provided an answer –we asked you for more information– and the student did not ask a follow-up question, so the question is “resolved”). If we ask for additional information, provide it as a “follow-up discussion”, as this automatically flags your question as “unresolved” on our end.

  • Example posts. If you’re not sure about whether you’re following these guidelines correctly, we have provided several Example Piazza Posts that can give you a sense of the level of detail you should be aiming for when asking a question on Piazza.