Comp 15

Office Hours Guide

Guide to Office Hours:

Welcome to Comp 15. Here is a guide to office hours to ensure the time is spent productively

The basics:

  1. We are using an online virtual environment for office hours called Sococo. You can see our Sococo Guide and this video for information about how to get set up.
  2. Log onto SoCoCo and add your name to the queue. Note: We reserve the right to remove your name from the queue if you do so before the official start of office hours.
  3. Please write a brief description of your question in addition to your name on the sticky note. For example, you might write Mark - file I/O or Mark - data structure design.
  4. Monitor the queue and remain in the Comp 15 room in order to be prepared when a TA is ready to help you. Once it is your turn, a TA will request that you come to their virtual room or will call your name in the main Comp 15 room.
  5. If you are not present when you reach the front, you will be placed on the AFK (away from keyboard) list and the time will be noted. Each TA will search for you in the Comp 15 room until 20 minutes have passed (unless a TA is for some reason with one student for over twenty minutes).
  6. Some students experienced audio and screen sharing issues last semester: if this is the case, please share a Zoom link in the chat.
  7. We encourage you to make the waiting room interactive! While virtual communication can seem unnatural, discussions with your peers on general concepts and bugs (without sharing code) can save you time spent waiting on the queue.
  8. Check out the Demonstration Whiteboards on SoCoCo for general suggestions for the specific homework.

What to do before coming to office hours

The course staff expects you to have utilized these resources and followed these steps before coming to office hours and we reserve the right to direct you to these resources before helping you in a one-on-one session. If you have questions about how to use these resources or want to clarify expectations for office hours, post on Piazza or come to OH in the first week!

Read all links on the course calendar, especially the Self-Study modules on File I/O, Valgrind, and the STL vector class, search keywords on the FAQ page, and follow the debugging procedure outlined below.

The Debugging Procedure

As you deal with data structures of increasing complexity, it is likely that you will encounter bugs that are difficult to find in hundreds of lines of code. TAs are not magical figures: we often do not know any better than you do where potential issues lie without print statements.

  1. Include relevant print statements: at the beginning and at the end of functions, before and after function calls in main() or in another function, before/during/after loops, and at several levels of recursion. We will likely hold a tutorial in the first week of class (to be recorded as well) of how to use print statements effectively.
  2. Valgrind is a great tool that is explained in the Valgrind handout (read it!) but here are some general tips:
    • Do not assume that your segmentation fault is only related to the line Valgrind gives you: the issue often lies in another part of your code that affects the line given by Valgrind -- this is why print statements are critical.
    • If you are debugging memory errors, start at the beginning of the error messages and work downward. Again, print statements are your friend as long as you are not trying to print the values of a null pointer or values that have been deleted, which will cause a segmentation fault.

The expectations for office hours

We recognize that Comp 15 is challenging, which is why we offer a robust office hours schedule! With that said, we'd like to make some expectations clear.

  1. Please come to office hours with a specific question and the debugging procedure completed. We are unable to help students who have extremely broad issues, such as My entire code doesn't work.
  2. While we do not enforce strict time limits with students, we must also keep the flow of the queue moving, so we will provide suggestions to your question and answer syntactical questions, but will not observe your implementation of our advice.
  3. We do not take requests for specific TAs unless one individual has already been helping you in the same session and your question is a specific follow-up. All of our TAs are qualified to answer questions.
  4. Expect office hours to be very busy right before the deadline with potentially long wait times and limited TA interaction. Come earlier in the week if you are interested in a longer discussion on design, pros and cons of different approaches, runtime, etc.
  5. While we absolutely encourage you to post on Piazza with questions (privately if code is shared!), it is difficult to provide meaningful advice on a major bug or segmentation fault based off of a small snippet of code or a single screenshot. In cases like these, we encourage you to come to office hours to have a live discussion.

With all of that said, office hours are an amazing resource and we absolutely encourage you to take advantage of them!