Version: 0.2, Jan 22nd, 2014
This document explains how to ask for help when you are having trouble with a lab or assignment. It also provides some guidance on what kind of questions I will or will not answer, just so you know what to expect.
There is one overriding principle at work here:
I want you to learn.
Learning is the goal of education. This might sound obvious, but it's actually incredibly important to keep in mind. You might think that the goal of education is to get good grades, or to get a job, but those things are not the point at all. Grades are merely a rough indication that you have demonstrated an understanding of the material being covered in the course. Getting a job or getting into graduate school are worthy objectives, but without learning you will be unprepared. So learn as much as you can!
There is another important principle at work as well:I want to help you.
I truly would like you to succeed. As a teacher, my greatest source of satisfaction is seeing students do excellent work. I want my interactions with you to further your chances of success. However, helping you learn means you must be prepared to face difficult problems and conquer them. This will often require significant effort and perseverence on your part.
The essential characteristic of a good question is that it will help you increase your own understanding.
You will only learn by making an independent effort. So, before you ask a question, you must make a serious effort to answer the question on your own.
For conceptual questions, such as how an algorithm works or what approach is required to accomplish a specific requirement of an assignment, you should carefully read the assignment description, lecture notes, and relevant sections of the textbook. If there is something you don't understand fully, ask a specific question about what you don't understand. Focusing as precisely as possible on where the gaps in your understanding are will help us work to fill them in.
For practical questions, such as "why doesn't my code work?", you should investigate the problem as thoroughly as possible on your own. Be methodical. Be a scientist. Do experiments: identify the exact circumstances where the problem manifests and try to come up with some hypotheses about what is going wrong. If you're really stuck, I will help you investigate, but I will first ask what you tried on your own.
There are certain kinds of questions that I will not answer because they will not help you learn. If your question falls into this category, I will give you an explicit suggestion about how to ask a better question — one that I will answer.
Copyright (c) 2013-2014 David Hovemeyer