Monday, July 11, 2011

Dear Snowflake

Dear Snowflake:

As part of our course on programming, I assign various programming projects for you to do. I understand that my students are still learning, and this is an introductory class. Part of what you are learning is how to solve problems and how to track down problems in your programs. Because you are still learning how to do this, I am available to provide assistance if you get stuck on solving a problem, don't understand what the error message is telling you, don't understand why you're getting the wrong results, etc.

Sometimes I am in the middle of doing something else when your email arrives. In this case, I might send off a quick note pointing out some obvious problems to get you started on finding a solution, and hope you can take it from there; or if not, that you will contact me with a more thorough exploration of the problem after removing some of the most obvious issues.

However, just to be clear: I assigned this to YOU, not the other way around. Therefore, when you email me back and the extent of your communication is "It's still not working," I take that as an interesting anecdote, but not something that obligates me to drop what I'm doing and provide further assistance. Likewise, your suggestion that I might want to take another look at the code is, depending on my mood, somewhere on the amusing-to-annoying continuum, but again, not something that requires any action on my part. The point of the exercise is not to determine whether I can write the program. I already got the program running. I wrote all of it, including the extra-credit portion, before I gave the assignment, as a check that i wasn't making the assignment too big or too difficult. (I still err sometimes, but it's about as much on the too-small/too-easy side as too-big/too-hard, so I'm OK with that.)

I will be happy to provide further assistance. Your email should begin with your best diagnosis of the problem, what tests you have conducted that led you to that conclusion, and what you have already tried in solving the problem. This doesn't have to be elaborate. A description of "I can't open the input file, and I've tried following the example in the text; here's my code, is this the right syntax?" is a perfectly reasonable request. "It's not working, fix it" is not.