Office Hours and Class Help HOWTO

Posted on September 20, 2021 by Gabe Parmer

This document lays out the requirements for how to interact with a class’ instructional staff. This guidance is based on a few goals:

  1. Effectiveness: We want to help you effectively.
  2. Efficiency: We need to help you efficiently as many students require attention.
  3. Respect: Respect for everyone’s time must be fundamental in human interactions.
  4. Learning: A student’s main goal is to learn, so interactions focused on finishing tasks while side-stepping learning are not acceptable.
  5. Academic honesty: A student’s work must be their own, and this constraint limits potential interactions.

We are absolutely here to help you and to enable you to learn effectively! We’ve noticed a number of ways in which student interactions are counterproductive toward that goal, and distill some of the core problems here.


When asking for help, you want to generally follow the following rules.

  1. Take the time to identify and demonstrate what you don’t understand: provide test cases that specifically demonstrate the problem you’re having. We need to know what you’ve tried, and what you’ve concluded, so that we can tailor our instruction to where you’re coming from.
  2. Take the time to come up with a concrete description of what is the expected behavior, and how it differs from the actual behavior (demonstrated with your test code). Often in doing so (called “rubber duckying”), you’ll figure out the problem. Even when you don’t, we’ll be able to help you most effectively. This implies that your code must compile, no exceptions.
  3. For personal attention on your work, you should go to office hours. This means you should not use direct emails/messages with questions about your specific code outside of office hours, especially close to the deadline.
  4. General question are those that can be asked without providing code or other material that would compromise academic integrity, and they should be posted on the provided public forum (Discord, Piazza, etc…). The instructional staff will get back to you ASAP. The more care you put into formulating your question to remove ambiguity, the more helpful we can be for you. Tell us what you’re thinking in addition to asking the question as that gives us more information to try and understand where you’re coming from.
  5. Do not send personal (not general) questions close to the deadline, and expect a response. The instructional staff will lower their responsiveness in the 24 hours leading up to a deadline to discourage procrastination. If you procrastinate, that means that you will be robbing yourself of the opportunity to get help.

Examples to Not Emulate

Preparing your Code for Office Hours

If you want an instructor to look at code then you must adhere to style conventions. See style conventions below. At the most basic level, you must

If you don’t demonstrate to us that you actively tried to understand your own code by making it as easy to understand as possible, then it isn’t reasonable for us to dive into your code. Note that you really should take all of these steps when developing, debugging, and testing your own code, regardless. In the worst case, an inability to explain or understand your own code makes us question if you actually wrote the code. In the “real world” it is expected that you generate code that adheres to these guidelines.