Asking Questions

Steven J. Zeil

Old Dominion University, Dept. of Computer Science

Table of Contents

1. Where/How do I ask?
2. Asking Good Questions
2.1. Identification
2.2. You have to give information to get information.
3. Appendix: Copying and Pasting from telnet/ssh/xterm Sessions

Got a question? Good! I like questions - I really do. In fact, the whole reason for introducing so much automation into the design of this course is so that I can spend a greater portion of my time giving individual attention to students' questions, while letting the automation take care of the 90% of the course matters that are routine.

A question is the beginning of a dialogue. A well-prepared question will get you an informative answer quickly. A poorly-prepared one may get you irrelevant answers or may require several rounds of back-and-forth dialog, delaying your eventual answer by many hours or even days. So it's in your own self-interest to ask your question in a way that gets you the answer you need as quickly as possible.

1. Where/How do I ask?

Most web pages in the course have a New Discussion Thread button at the bottom of the page. This opens up a window from which you can post comments for the entire class or private questions to the instructor and/or TAs of the course. These posts will appear in the course Forum and will also be listed at the bottom of the page from which you created the thread.

This is the preferred way for you to ask questions or comment on the course materials. You are strongly encouraged to use this rather than to simply fire up your email program and write directly to the instructor. If you have a question about an assignment, use the button at the bottom of the assignment page. If you have a question about some code appearing on a page of lecture notes, use the button at that bottom of the page containing that code, and so on. Email should only be used in situations where this clearly does not work (e.g., you are not registered for the course, you have not been able to create your login account, the course website is down or broken, etc.)

2. Asking Good Questions

2.1. Identification

Who are you?

If you are sending me email, make sure your course login name or your real name appears somewhere in the message. I hate getting mail from partyAnimal@aol.com saying Why did I get such a low grade on question 5? when I have no idea who this person is!

What course is this?

Again, if you are sending me a question via email, please remember to state which course you are asking about. I teach multiple courses most semesters, and having to go look up your name to see which of my courses you are talking about is annoying. In fact, it's a good idea to make the course number part of the subject line. Which brings us to the next item...

Use a clear and precise subject header.

A good subject header helps me find your message later if we need to do 2 or more rounds of back-and-forth responses. It's quite annoying when someone writes As I mentioned in my last message, … , then discover that the subject header is empty or contains only the course number, making it one of hundreds with the same subject tag! Empty or ambiguous email headers also increase your chances of being flagged by my spam filters.

2.2. You have to give information to get information.

There's nothing more frustrating than getting a question like

When I try to compile my solution to the first assignment, I get an error message. What's wrong?

Grrr. What was the (exact) text of the error message? Was this on a Unix or Windows NT machine? What compiler were you using? What compiler options did you set?

No, I'm not kidding. I get messages like this all the time. And it wastes my time as a question answerer to have to prompt for all the necessary information. It also means a significant delay to the student in getting an answer, because we have to go through multiple exchanges of messages before I even understand the question.

Copy-and-Paste is your Friend

The single most important thing you can do to speed answers to your questions is to be specific. I'm not psychic. I can only respond to the information you provide to me.

  • Never, ever paraphrase an error message (I got a message that said something about a bad type.),

  • Never, ever paraphrase a command that you typed in that gave unexpected results (I tried lots of different compilation options but none of them worked.)

  • Never, ever paraphrase your source code ("I tried adding a loop, but it didn't help.")

  • Never, ever paraphrase your test data (I tried running the program on some simple tests, but it failed.).

The problem with all of these is that they omit the details that would let me diagnose the problem. And it's not all that hard to provide that info. Error messages can be copied and pasted into your email or Forum posting. The commands you typed and the responses you received can be copied-and-pasted from your ssh/xterm session into your email or posting. So can sections of code or, in most cases, test data.[1]

Copy-and-paste is your friend. If you insist on paraphrasing, omitting the details I need to figure out what is really going on, I will just have to write back and ask you for the information. And that brings us to...

If I Ask You a Question, Answer It

I often respond to a student's question with further questions of my own[2], sometimes to get more info I need, sometimes to guide the student towards an answer I think they should be able to find for themselves.

It's surprising how often students ignore my questions and either never respond at all, respond as if my questions were rhetorical, or, if I have asked 2 or 3 questions, pick the one that's easiest to answer and ignore the rest.

This pretty much guarantees that the dialog will grind to a halt as I wind up repeating myself, asking the same questions as before, and some students go right on ignoring my questions, ...

3. Appendix: Copying and Pasting from telnet/ssh/xterm Sessions

Every telnet or ssh client has its own way of allowing you to copy and paste text. I can't possibly cover all the possibilities. You may have to actually consult the documentation on your telnet/ssh client, but here are some common ones:

  • In xterm, just drag the mouse across a portion of the text to copy it to the clipboard. Click with the middle mouse button to paste text into an xterm. These techniques work with almost all X programs.

  • In PuTTY, just drag the mouse across a portion of the text to copy it to the clipboard. Click with the middle mouse button to paste text or type Shift-Insert.

  • In Windows telnet (or anything that runs in a Windows cmd window), drag your mouse across the text and hit Enter/Return. If the text is not highlighted when you drag your mouse across it, then right-click on the command window's title bar, select Properties, and turn on "QuickEdit mode".

In Unix shell sessions, the script command will capture everything that appears in your telnet/xterm session (until you type exit) into a file. You can then attach that file to an email or Forum posting or open it in a text editor and copy and paste into your email or Forum posting.



[1] Note that this information is almost always plain text. Unless you really need to show me graphics, please do not send me graphic snapshots ("screen prints") of your screen containing the error message. Not only are these often hard to read, I just can't afford to deal with hundreds of messages that use tens or hundreds of kilobytes to show me a few dozen bytes of text.

[2] Teachers since Socrates have always done this, and students have always been annoyed at it. But who are we to argue with history?


In the Forum:

(no threads at this time)