Getting Help

Based on a document by Julie Zelenski, Cynthia Lee, and others

If, over the course of the quarter, you ever need any clarifications on course materials or policies, or are wrestling with a challenging bug, there are a variety of resources available. We want to help!

Office Hours

Office hours are a great place for discussion on conceptual topics or issues too complex for forum/email. They are also the primary resource when you need help resolving an issue within your code. Please be mindful that a large number of students are being supported by a relatively small staff, and we ask that you be respectful in sharing office hours time with other students and not monopolizing a TA's time. You should come prepared to office hours, having done your own legwork, and with an appropriate expectation of what the TA will do for you. If you're in the midst of a debugging effort, be ready to articulate what you are trying to accomplish, what you have tried/observed, what you think might be the problem, and what advice you need to move forward. You should not just provide a TA with your code and ask them to tell you what's wrong with it or debug it for you. We are happy to offer guidance and point you in the right direction with any issues you encounter, but the course staff is not responsible for finding and fixing all your bugs; that is something we want you to gain experience with.

Click on a calendar event below to see its location. The schedule should be mostly the same week to week. When you arrive at office hours, sign up on the online QueueStatus queue at this link (the queue will be opened at the beginning of the OH time slot). You'll need to be logged in to QueueStatus to sign up; creating a QueueStatus account is free. Please fill out the fields in the form when you sign up, including the location field, so we can easily find you. When it's your turn in the queue, we will call your name.

Piazza Discussion Forum

We host a course discussion forum on Piazza. Here you can engage with your peers, ask your questions, and answer those of your classmates. The forum is appropriate for all topics of course relevance, e.g., discussions of readings/lectures, advice on using the tools effectively, clarifying specifications of an assignment, sharing resource materials, and more. Having the discussion in a public place means that everyone can benefit and keeps things efficient and inclusive to all. The course staff will also monitor and participate in the forum.

Note that it is not intended for private posts (this feature is not enabled in the CS107 Piazza forum). If you have a private question (i.e. private to your situation, requires discussion of detailed code specifics), please stop by office hours or email the course staff.

A few requests when using the forum:

  • Before posting a new question, please search the forum to see if a similar question has already been answered. Enter single word(s) to match or enclose a phrase in double quotes to find in its entirety.
  • Use a descriptive summary for your post. This helps others to efficiently skim and sort through posts.
  • We encourage you to participating openly and non-anonymously on the forum when asking questions or posting answers; it is immensely rewarding to know who you can thank for an answer to your question, or who you are helping by answering a question!
  • Please do NOT post the code to solve a homework assignment (in whole or in part, or partial code in progress) on the class discussion board, ever, for any reason; this can be considered a violation of the Stanford Honor Code. Also please do not post highly detailed written descriptions of your solution to an assignment. It is, however, acceptable and encouraged to post discussions of homework ideas in general terms. Alternatively, if you want to ask a code-related question on the forum, consider asking about a non-homework piece of code, such as a lecture example or example from the textbook. You may post any code you like as long as it is not part of a homework assignment solution.

By clicking the link below, you acknowledge that you have read the preceding text, and agree to abide by the rules written above.

Visit the CS107 Piazza Forum

Emailing the Course Staff

You can reach the course staff at Please do not send email to a specific CA; we use a single email address to track questions and most efficiently respond to students. Email is used for requests of a personal nature or questions involving the detailed specifics of your code.

A few requests when sending us email:

  • If you need to share some code/output/gdb session as background info to your question, do not send photos or screen shots; instead simply copy/paste that information as text into the email.
  • Short, specific questions work well over email. Larger scale debugging efforts are best handled in person. If your question will require stepping through code and examining runtime state, it would be better to bring it to office hours so someone can look at it properly.

Email the Course Staff

Frequently Asked Questions

Can I schedule an appointment outside of office hours?

Our staff is committed to the 50+ hours scheduled per week; for this reason, requests for additional appointments cannot generally be accommodated.

Office hours are crowded the night before a deadline. How can I get help at a less busy time?

Any office hours scheduled close to the assignment deadlines are likely to be heavily attended with students focused on meeting deadlines, and the TAs will need to keep up a brisk pace to efficiently process the large number of questions. Hours at other times in the week are more relaxed, and we encourage you to take advantage of those off peak hours.

I showed my code to the TA but they didn't find my bug!

I'm sorry you are disappointed, but there may be a misunderstanding about what to expect from our staff. We do not intend to be a resource that, upon reviewing your code, will spot your bug and tell you how to fix it. Many bugs don't lend themselves to that sort of instantaneous resolution, but even for those that do, we intentionally avoid offering quick fixes. While, finding and fixing a bug may solve the immediate problem, it does little to build self-sufficiency in debugging going forward. Debugging can be hard work, but it is an essential part of programming and only by working through it do you build up your skills. This is our goal for you!

When faced with a challenging bug, we can be your guide, your coach, your advisor, your cheerleader. Ask for our help interpreting the symptoms and the observations you have made. Invite us to review what you have figured out so far and brainstorm what to try next. Seek advice on which tools and what experiments will be helpful. Lean on us for moral support and encouragement when the going gets rough. And celebrate with us when you nail that bug!