The Mark J. Stehlik Introductory and Service Teaching Award
School of Computer Science, Carnegie Mellon University
Pittsburgh PA 15213-3891
(412)268-8525 . (412)268-5576 (fax)

Why do I want to be a TA for an introductory programming class?

Rohan N. Varma
2017 Introductory and Service Teaching Award

Over the years I have interviewed hundreds of students who were aspiring to be 15-112 TAs. The first question we always ask a candidate is: Why do you want to be a TA for an introductory programming class? In the 4 years that have passed since I was first asked that question, I have gained a lot of new perspective on why I value being a TA. If I had to interview again to be a TA and was asked that same question, here is what I would say:

First, I want to TA an introductory programming course because I believe it will allow me to profoundly change my students' lives. It's not because students come in not knowing how to program. It's because they come in thinking that they can't. By teaching our students how to code, we are giving them a tool that they often doubted they would ever understand. It opens the floodgates on opportunities and possibilities for students. The most rewarding memories I have as a TA are when I see students who struggled at the beginning of the semester but then end up completing awesome term projects that they never dreamed were possible.

Additionally, I want to help improve my students in ways that extend beyond the classroom. Most of the students in introductory computer science are at an inflection point in their lives: they are just starting college and trying to find their stride. Thus, introductory programming can't just be about data structures and algorithms; it has to also address work ethic, maturity, responsibility, and initiative. Many students won't carry their programming skills with them past their introductory class. However, the things that will stick with them are the skills they learned about how to manage the challenge and strain of the course. Teaching programming may be the job description, but empowering and inspiring achievement is the mission.

Finally, I believe that TAing an introductory computer science class allows me to have a huge impact on my students for seemingly little effort on my part. In more advanced classes, spending 15 minutes to move someone along on a homework is often times just that: help on a homework. In introductory programming, 15 minutes with a student can be the difference between them dropping the class or them mastering the material. It can be the difference between them being a biology major or them being a computational biology major. It can be the difference between them going home for the summer empty handed or them getting that internship. This fact is what drives me when office hours ends but there are 10 people still on the queue, or when I have a deadline the next day but a student asks to meet, or when I'm out with my friends but there are 10 unanswered Piazza questions.

Teaching introductory programming might not seem all that glamorous; at the end of the day, we are teaching our students about for loops and if statements. However, if you dig deeper into how we impact our students, it is easy to see how awesome the job really is. I believe that if you appreciate the incredible impact you can have on your students, and go into every student interaction and every decision with that in mind, then your student will love you and you will be a great TA.


Return to: SCS Student Awards