My Experiences as an Undergrad TA
“As a student, seeing the “other side” of our classes is really interesting. The amount of thought that goes into the way that our courses are designed is usually invisible to students.”
As students of UTCS, we often have no concept of the amount of work that goes into teaching and running our courses. Tests, lecture material, projects, grades, and grading rubrics don’t just appear out of thin air-somebody has to design and implement them. Of course, the amount of effort and the assignment of these duties varies by professor, by class size, and by class material. Much of this is carried out by your TAs, who are either graduate or undergraduate students in this program.
I am a junior in UTCS, currently in my second semester as a TA for Alison Norman’s CS439, or the infamous Operating Systems class. This requires me to lead discussion sections, hold office hours, answer Piazza questions, help design tests, grade tests and projects, and handle miscellaneous tasks that come up. Doing any of these things requires me to have a deep understanding of the lecture material and of the projects. OS is a pretty intense course that covers a wide breadth of material and a lot of tricky concepts. In addition, as anyone who is currently taking or has taken the course can tell you, PintOS (the basis of most of the projects) is …interesting, and sometimes takes a bit of digging to really figure out what’s going on, not to mention add to the functionality. There are twelve TAs for this semester, but we are all kept busy by the number of students and level of effort that it takes to run this class.
I, personally, have gotten a lot out of being a TA. Teaching a subject is known to be one of the best ways to deeply understand it, and my understanding of operating systems has definitely improved. However, the biggest benefit that I have gotten as a TA is in my ability to effectively communicate difficult concepts. I think that this skill is extremely important to succeed in computer science as a career, given that it plays a major role in everything from job interviews to working on a team. However, it goes unstressed in most of our CS classes, which are too often graded purely on passing test cases.
In OS, we try to help students learn how to think about these concepts rather than just tell them all the answers. For me, it means that I have to listen closely to students and understand their thought process to be able to give meaningful help. For example, holding office hours requires much more than just debugging — we try to help them learn how to debug effectively. When students come with misunderstandings of concepts, our job isn’t to explain the concepts at them, but instead to have a conversation that pinpoints the hole in their knowledge so that they can understand the whole picture. This process challenges me along with the students to think critically, communicate effectively, and grow in understanding.
As a student, seeing the “other side” of our classes is really interesting. The amount of thought that goes into the way that our courses are designed is usually invisible to students. Lots of routines and policies that may seem strange as a student make a lot more sense from the perspective of the course staff. Sometimes they are meant to aid us in getting grades out in a
reasonable time, force people to think critically, or help everyone feel welcome in class. We spend a lot of time making sure that the class is fair and figuring out how to apply that to individual cases of missed deadlines or special circumstances. It can be frustrating at times but seeing how these decisions are made has helped me better understand how my other classes
Through all of this, I am still a student myself. Performing TA duties on top of my classes can be a lot to manage. I spend on average 15 hours a week on TA work, but this can be significantly more if project and/or exam grading is happening. I usually end up treating it like another one of my classes: I still have to meet deadlines and study to keep on top of the material. I have a particularly heavy schedule this year (thanks graphics!), so sometimes deadlines stack up. Time management becomes really important unless I want to stay up until 3am grading design documents. Fortunately, in OS, there are lots of TAs to help out if one of us gets overworked, so my TA duties have not had a noticeable impact on my other classes.
Overall, being an undergraduate TA has been a work intensive but rewarding experience. I think that this job has improved my communication skills, deepened my knowledge of the subject, and given me a deeper appreciation for the work that goes into the class that I take. There’s also something special about being able to help people through a position that you were in not too long ago. Finding a tricky bug in a student’s code or watching someone have a moment of realization on a concept can be really gratifying. If you are thinking about applying for an undergrad TA position and are willing to put the effort, I would highly recommend it.