HOWTO: Be a good teaching assistant (TA)
2022/04/28
Some students are fortunate enough to have the opportunity to be a teaching assistant. I’m one of them. For most of my time in college, I was also a teaching assistant for some computer science course. I’ve taught Fundies 1 (Northeastern’s introduction to computer science), a special topics class on miniKanren, and I’ll soon be a TA for Programming Languages and Software Development.
Teaching is an enriching experience. It’s the surest way to really grok a subject, but being a teaching assistant for a rigorous class can be hard. Nobody tells you how to be a good TA. I had to stumble and fail endlessly before I truly felt competent. What’s worse is that my failures weren’t harmless. I let down dozens of students who came to me earnestly seeking help.
I hope to catalog what I’ve learned in order to help others avoid my mistakes.
Office Hours
Office hours are sometimes the only way a student can seek one-on-one instruction in a course. It is the rare opportunity to talk directly to someone with knowledge and authority. They’re also one of the few times a student can talk openly about problems they have with the course. As a peer and TA it’s your responsibility to answer questions with empathy and respect, without depriving students of their own learning.
Tip 1: Smile
The reality of office hours for medium/large courses is that they get busy, fast. I’ve seen students wait hours in online queues just to see me for a period of less than 15 minutes.
Also know that many students see office hours as their last resort. If they’re here, it means that they tried everything they could and it still hasn’t worked. They’re frustrated and exhausted.
That’s why it’s so important to smile. Look happy. Ask them how they are. Its just the nice and right thing to do.
Tip 2: Use a diagnostic
Most TAs enter office hours without a plan. They meet a student, ask them: “How can I help?”, and wing it from there.
I did that for a long time. I thought it worked. It doesn’t.
The problem is that students (especially those new to programming) are often unable to identify the root cause of a problem, and confuse an incorrect attempted solution with the actual issue. In industry we call this the XY Problem.
You can prevent the XY problem by running a “diagnosic”. A diagnostic is a set of questions you ask to categorize what a student needs help with. A diagnostic will look different depending on the content of the course or currently assigned homework.
I reccomend that before every session of office hours, you create an appropriate diagnostic. It could look something like this:
Diagnostic:
A student writing a function for this assignment is in one of the following stages:
1. Problem analysis
2. Signatures and purpose statements
3. Functional examples
4. Filling out a template
5. Implementation code
6. Runing tests
Ask: "Can you show me where/how you did <X>?", where <X> is one of the 6 steps listed above.Note that the question is open as opposed to closed (not: "Did you do S: "Help! Why isn't it working?" T: "What specifically isn't working?" OR "Why is the current behavior different from what you're expecting?" This forces the student to properly verbalize what has happened and what they want to happen. If the student is able to identify both, they can begin to form a strategy of how to get from their failing solution to their intended behavior. Another great question that was already mentioned earlier: "How can I help? / What can I do to help?" This question gives full control over to the student. When a diagnostic fails, digging deep into the answer to this question will inform where you should guide this student. "What have you tried so far?" This question is illuminating because it prompts the student to explain their thought process. Often TAs forget that a student has likely tried multiple failed solutions before falling back on office hours. Other times, this question reveals that a student hasn’t tried any other solutions. They assumed a TA would just spoon feed them an answer (you can blame bad TAs for this). When this happens, you should point to the homework instructions and kindly request that the student try it on their own first. ``` S: "Can you explain