Asking for Help

Asking for help is a fundamental part of how you will learn in CSCI 0451. Do it often. Here is some wisdom on this topic from the Best Cat On the Internet:

In Class

During warmup activities, just talk freely! If you are the presenter, it’s fine for you to pass, to ask one of your teammates for help, or ask a question of your teammates yourself.

In lecture, please ask questions freely. Just raise your hand and I’ll find a good place to pause for you.

Outside Class

For questions on Slack, in Peer Help, and in Student Hours, it’s usually most productive for you to prepare to ask for help.

  1. The very process of preparation will help you learn. You might even find that in the course of the preparation process you were actually able to resolve your question.
  2. When you’re prepared, our conversations can be efficient and productive.

When asking questions to me or in Peer Help, you should usually expect us to start with a question of our own:

What have you tried so far?

This question has two functions. First, it helps me understand where you are and how I can most effectively help you. Second, it reminds you to take steps to support your own independent learning prior to approaching me. Here are the steps that I expect you to follow in some of the most common cases:

For conceptual questions:

  • Make a reasonable effort to review relevant readings ahead of time.
  • Formulate your question in as precise and specific a way as you are able.
  • If applicable, find an example that illustrates your question.

For programming questions:

  • Formulate the task you are attempting to accomplish as precisely and specifically as possible.
  • Write down a few concepts, functions, data structures, or other ideas that seem like they might be relevant in this problem.
  • Get as far as you can on the problem using the tools available to you. Make sure you can carefully describe what you did and why it seems like progress toward the goal.
  • Be prepared to explain approaches what you have already tried when speaking with me or a tutor.

If you are debugging and encountering an error message:

  • Read your error message and do your best to understand what it means.
  • If you’re not sure how to interpret your error message in the context of your task, try Googling the message and reading some of the resulting answers.
  • If you’re still stuck, try to construct a minimal reproducible example or reprex. Sometimes, just the activity of creating a reprex will help you solve your problem. However, if you’ve created your reprex and you’re still stuck…
  • Bring your error message and reprex to tutoring or to Student Hours, or post it on Campuswire.

If you are debugging and not encountering an error message:

  • Make use of your IDE’s debugger to step through your program.
  • Identify the first point at which something is clearly wrong.
  • Develop at least one hypothesis about the source of the error, and test that hypothesis.
  • If you’re still stuck, try to construct a minimal reproducible example or reprex. Sometimes, just the activity of creating a reprex will help you solve your problem. However, if you’ve created your reprex and you’re still stuck…
  • Bring your reprex to tutoring or Student Hours, or post it in Slack. Make sure to clearly state both the expected behavior and the actual behavior of your program.

Don’t Get Stuck

We want to productively challenge you, which is different from letting you get stuck. If you’ve spent more than 30 minutes without making any progress or change in your understanding, then that’s likely a sign that you should consult a new reading or other resource, ask for help from a classmate, a Course Assistant, or me.



© Phil Chodrow, 2023