This little page is a background document for a talk in CS 301 or "How to TA" for first-time TAs in Computer Science. I was a TA for CS61a in Fall 1997 and I had a blast. Hopefully, this page will help you see some of the things that I learned during that term and during subsequent education classes.

Interacting with Your Students

Nobody can stress this enough. Essentially, your entire existence as a TA is defined by your relationship with your students ('scuse me for messing up the reflexive tense here. I'm in CS not English). If you don't love them, they won't love you back. If you don't respect them, they won't respect you back. If you don't give them milk and cookies at every section... well, that's bribery. I don't recommend it. Get your kiddies to like you for your teaching and your personality, not your gifts.

Anyway, this part of the talk is about various ways you interact with your students. The predominant one that gets all the attention is the weekly section.

Preparing for Section

When do you prepare for section? If you're like me, you do it the night before. Maybe even think about it during the day before if you're ambitious. Only a person like Dan Garcia will prepare for a week ahead. Well, almost only. When you're TAing and you like what you're doing, you think of cool ideas for section all the time.

What resources do you have to prepare from?

  • old classes that you took
  • other TAs
  • book
  • badly done things in lecture
  • email questions from students
  • office hours questions
  • old tests
  • test results
  • I took 6.001 at MIT of which CS61a is a version (note the correct use of the clause without the dangling "of"). Bonus! I've got all these great handouts and quiz reviews and problems all set up.

    Of course, they're not quite right for the class, and they're in the wrong order and maybe some of them were loser questions... what's a TA to do?

    Practice, practice, practice and organize (PPPO. P3O. See P3O. sigh... It's like Star Wars, only sadder).

    How much of an outline do you prepare? Do you stick to it in section? I prepared a few different questions, put them in order, then added a few more (because, god forbid, you're standing up in front of the class saying things like "Got any questions? About anything? Bueller? Anyone alive? Hello.. hello.. hello.. echo.. echo.. echo...").

    Another big one: come with props (no, not kind words for your homeboy). Props like handouts (Dan loves these). Props like extra help assignments, or quiz review questions, or just questions that might get your students to think.

    Do you practice (Do you watch The Practice? Great show about lawyers and morality)? In front of a mirror? In front of your roommate? Naked in front of your roommate? Or a mirror? Naked in front of your roommate, a mirror and a package of string? Do you practice at all? Like I always say Practice, Practice, Practice, Organize. PPPO. P3O. 3 times P + O. 3PO. See 3PO. R2D2 (bet you thought I'd say C3PO. Well, a guy has to have his surprises now and again).

    Anyway, onto what actually happens in section.

    Running the Section

    Running a section is often like running a show on PBS. You gotta combine entertainment with education so that the students either don't realize all the neat stuff they're learning (wrong), or the students love what they're learning so much that they ask for more ("may I have another cons cell, sir?").

    When I start section, I do like the Playbill in a theatre show. I put up a list of Acts and what topics are discussed inside.

  • Introduction: Reminders about homework, tests, rent checks.
  • First Act: Recursion.
  • Intermission: Stupid Scheme Tricks.
  • Entracte: Administrivia,
  • Second Act: Append and his Sorting Friends.
  • Finale: Neato-rific Super-duper Wrapup.
  • What are good wake-up calls to your snoozing students? Face it, no matter how interesting you might be, if the seats are comfortable and they are undergraduates, they're going to fall asleep at least once during a one and a half hour section.

    If you notice, there's that funny thing in the middle. Dave Patterson does this. Well, he just does administration. I do funny stuff with Scheme. Because Scheme is cool. And I think the students deserve to understand exactly how cool it is by solving the stupid scheme trick of the day. It's usually some incredibly complicated Scheme program that when elucidated actually turns out to do something trivial. But it's fun to figure out and that's why I like it (Try this in C and see how far you get. Total confusion within seconds!).

    We pause for two TAs in the class to give us an idea of what their teaching style is like. Stand up and go through the first five minutes of your last section.

    Ok, now let's critique it.

  • What did the TA say?
  • did they jump right in or ease in?
  • how much information did they get across?
  • how much did they talk vs. how much did students talk?
  • who wasn't paying attention?
  • did the TA notice?
  • Another really important item to notice when you're TAing for real is whether or not your students understand a thing you say. What if only the first few smart people in the front of the class get it? Do you continue? How do you know when to just move on or when to repeat something in a new way?


    I think the key to being a good TA is to shut up as much as possible. No, don't let dead air rule the roost, but make your students talk. Hey, if they're talking they can't sleep on you. And if they're talking, it might even mean that they're thinking. About schoolwork. And your class. And maybe even about the topic at hand.

    Don't be cruel and call on people you know aren't listening. That's just mean. But, a nice trick is to learn everyone's name in the class and use them in your examples. Not only will they perk up at the mention of their own name, but if you put them in a linked list with their project partners, you can get them to like each other. Well, at least on the wipeboard.

    Non-traditional Sections

    Do you always have to work on school work during section? Is the pope Catholic? Does a bear shit in the woods? Does Microsoft eat up every company that gets in its way? No! And that's why your creativity can spice up a boring section.

    I came from MIT. So I taught my students the MIT cheer (not that we have school spirit at MIT, but it's geek humor, and that's what counts).

    E to the U, dU, dx. E to the x, dx.
    Cosine, secant, tangent, sine.
    Three point one four one five nine.
    Integral, radical, mu dV.
    Slipstick, slide rule, M-I-T!

    (I told you it was geeky)

    I've got geek poetry too. But the best game we played was Human Cons Cell Jeopardy.

    Form students into teams of four students each. Pick a team at random to come up to the front of the class. Give them a sheet a paper with a box-and-pointer diagram with four cons cells on it. Each student plays a cons cell. Their left arm is "car" and their right arm is "cdr". Tell them to arrange themselves in the structure shown and point to the start of the structure with your left hand.

    Students in the other teams have to not only guess what Scheme structure is being displayed, but also write Scheme code to create it. When they have it, they buzz in and write it up on the board. If they're right, they get a big smile and the pride in knowing how to write Scheme.

    Play gets hard when you have recursive structures. See if you can make a structure that contains no primitive types! You might call this game Human Cons Cell Twister because sometimes the teams get a bit too wrapped up in this and fall down (It's hilarious, trust me).

    So where else do you see your students?

    Office Hours

    Office hours are pure face time. You, a student, one on one. Whoops another student just walked in. You, two students, one on two. Shit, another three walked in. You, five stud--- argh! Three more! Ok, so it's not the most ideal one-on-one situation.

    What exactly do you cover in office hours? Well, here's the place to answer individual questions. There are four types of students here:

    How long are your office hours? I had two per week, one hour each. I had scheduled them at a particular time, but the students couldn't make it. I negotiated with them until we picked a time that was great for them and good enough for me.

    Can you scale to 10 students? How do you deal with a few without ignoring the others? When I did this, it tended to turn into a mini-section. It turned out that when one person had a question, the others realized that they wanted to learn about that subject too. But do take advantage of the fact that you're in a small setting. Make them do all the work. Just sit back and nod approvingly every so often and guide them toward the answer.

    What do you do right before a test? Usually, you play 1/4 catchup review artist and 3/4 psychotherapist. Calm them down, reassure them that they know the material and reinforce a few gotchas you think they might miss.


    How many emails do you get from your students? Do you write to them? In my CS61a folder there are 978 messages. That's 300 per month, 75 per week, and 15 per day.

    Woo! It seems like it should take all my time but it doesn't. It's fun to answer their questions. Especially since you don't have to get back to them right that second. It's ok to take an hour or two off. Don't stretch that to more than a day, however, or they'll stop writing you because you're unresponsive. Some of my best section topics came from student emails.

    Time Management

    How much time do you spend preparing for section? Office hours? Responding to email? Is there any time left for your own classes or research?

    TAing expands to fill your time.

    Any time left over is for classes and research. But don't expect to get much done. Well, unless you hate TAing and never spend any time on it. But I loved it. More than my research at the time, and for sure more than my classes.

    You just have to have a good work ethic. Always work on TAing. Always work on your classes. Slack off on research. Usually that's supposed to take a while anyway, so no one will notice. Take some weekends off. Not before a test. But some. See some friends. Tell them all about your students. Don't worry. You aren't boring them to death. Really.

    Reflection on Your Own Teaching

    Do you like TAing? Which parts? Why? Have you ever told your students this (you should probably call your mother, too. It's been a while, hasn't it?)?

    What parts do you hate? Do you gripe about TAing to your friends? to your students? to the prof? Do you mean it?

    How has your teaching changed over time? For me, I was scared in the beginning because I didn't know what to do if the students asked me a question I couldn't answer. Over time, I became more confident due to two things. One, 61a is relatively easy material and it's not hard to master it all. Two, 61a students don't know much about anything in CS yet, so any question they ask is usually easy enough that you can figure out the answer in the time that it takes them to breathe in after finishing their question (It also impresses the hell out of them when you can answer the question without seeming to think about it at all).

    As the material becomes harder, you have to come up with better explanations, and more of them. You might think one explanation is good, but it could backfire for some students, maybe even all of them. Having backup explanations for things marks the sign of a well-prepared TA.

    Over the term, I learned everyone's name. This made it much easier to call on them and ask them to answer questions for me without refering to "you there in the red jacket in the last row!"

    Know your weaknesses! I don't have enough practice explaining really hard concepts. I tend to jump to first principles and work my way up to the concept. Unfortunately, this takes time. So if there are two hard concepts to explain I don't get to the second. What to do? At the very least, I write the class email explaining the second topic so they at least get the information in a timely manner.

    If I haven't worked out a topic fully before I explain it, I find it really easy (and tempting) to go off on a tangent and descend into madness. Prompted by a student, I accidentally tried to explain the Y combinator. Not a good idea. After 10 minutes, I stopped, said I was not going to go on and backed up to a better topic. The students were very relieved. Of course, after that section, I apologized to the students over email, and explained the topic fully there for those that cared. And, definitely told them the material was not on the test. :)


    So these are just a few of those things that a TA should keep in mind. Hopefully, you've learned something from this. If you disagree with me or agree with me or anything in between, and want to let me know about it, you can write to me at I'm all ears!