As you work through the exercises and programming assignments, it is likely you will have questions along the way, or will get completely stuck at some point. For most of you, your first instinct will be to go to office hours (and pausing your work on the assignment until your issue is resolved in office hours). While office hours are definitely one way to get help in this class, we encourage you to consider Piazza as your primary means of getting help in this class (with office hours being a secondary means of support, when something is hard to resolve over Piazza). In fact, you will often get help faster on Piazza than through office hours (where there can sometimes be a substantial waiting time to see the instructor or a TA, and not everyone gets helped before the end of office hours)
We realize that some of you may not be accustomed to classes that make heavy use of an online Q&A system like Piazza, and may be reluctant to seek help this way. In this class (and many other CS classes), we have found Piazza to be a great mechanism to provide support that isn’t constrained by the time limits of office hours. So, unlike office hours, where we try to help everyone but time is limited, on Piazza someone will always get to your question. We aim for a 24 hour turnaround time on all Piazza questions on weekdays, and a 48 hour turnaround time on weekends. (Note: We cannot guarantee we will answer a question before the deadline if it is asked the day the assignment is due. We will do what we can, but we encourage you to start your work early, so that if you have questions there will be enough time for us to answer them.)
Not just that: when you post your question on Piazza, all the instructors and TAs will see it. If you are faced with a particularly daunting bug, having all the instructional staff have access to your bug increases the likelihood that someone will figure out how to solve it. If you go to office hours, you get the perspective of only a single instructor or TA (who may or may not be able to figure out what is wrong with your code during office hours).
So, when you get stuck, we encourage you to use Piazza as a first line of defense. However, we need you to “help us help you”: over Piazza, we can’t see what you’re seeing on your computer, which can make it challenging to debug the issue you’re encountering. That is why it is crucial that, when you ask a question on Piazza, you provide as much information as possible. Our Asking Questions on Piazza page provides several guidelines on how to ask questions in a way that minimizes the amount of follow-up questions we’ll have to ask you.
Sometimes, you will ask a question and the immediate response will be a referral to our Asking Questions on Piazza page (with instructions to include more information in your question). We realize this can be frustrating, but please know that we’re not trying to be difficult (nor do we want to be dismissive of your question); if we point you that page, it is because we genuinely cannot help you unless you provide more information, or because we need to enforce these policies to make the system run efficiently enough that we can get to all of the questions and spend our time answering them well.
On the other hand, if your post includes all the information we need, it means we’ll be able to answer your question faster. If you’re still unsure of what kind of information we need, we’ve compiled some examples from previous offerings of CS 121 that highlight good question-asking practices.
Finally, while we realize that everyone has different schedules, and may not be able to start working on the programming assignment at the same time, we encourage you to spread the work, whenever possible, throughout the week, instead of concentrating it closer to the deadline. Many of the assignments are intentionally broken up into multiple tasks (many of which can be tested separately) so you can divide up the work throughout the week, instead of having to treat it as a single monolithic block of work.