my first semester as a TA
DISCLAIMER: These are the thoughts and opinions from one student after teaching two data science classes at UC Berkeley.
Being part of course staff has been one of my most valuable experiences as an undergraduate student. After the Fall 2024 semester, I wanted to share the lessons I’ve learned and things I’ve discovered as a first time teaching assistant (TA).
Before that, I wanted to outline the process it took for me to become part of course staff. At Berkeley, there’s a lot of demand for being part of course staff and everyone’s journey to joining is different. The most general and straightforward approach is first being an academic intern (AI), tutor/reader, then teaching assistant. The course staff positions available also depend on the EE/CS/DS course since some courses might not have academic interns.
These are the positions I held as part of course staff:
-
Spring 2022
: Data 8 Academic Intern -
Summer 2022
: CS 61B(L) Academic Intern -
Fall 2022
: CS 61A Academic Intern -
Fall 2023
: CS 88 / Data C88C Tutor -
Spring 2024
: CS 88 / Data C88C Tutor -
Fall 2024
: Data 101 Teaching Assistant -
Spring 2025
: Data 101 Head Teaching Assistant
These are the positions I held as part of Computer Science Mentors (CSM) @ Berkeley where I taught weekly tutoring sections for a group of 4-5 students:
-
Fall 2022
: CS 88 / Data C88C Junior Mentor -
Spring 2023
: CS 88 / Data C88C Senior Mentor -
Fall 2023
: CS 88 / Data C88C Senior Mentor -
Spring 2024
: CS 88 / Data C88C Senior Mentor
Prior to getting those positions, I was continuously rejected from course staff until I eventually gained more experience and refined my application. Even though I’ve spent almost every semester teaching, I still have SO MUCH to improve on. There have been multiple instances where I didn’t know the answer to a student’s question or stumbled when mini-lecturing, but that’s a reason why I continue to teach — so I can continue improving as an instructor and help others learn.
When transitioning from being a tutor to a TA, I thought that there wouldn’t be too big of a change with the exception of running my own discussion section individually. However, there were a lot of differences that I didn’t anticipate. As a disclaimer, these are five takeaways from one student after teaching two data science classes at Berkeley.
1. Exam logistics are a lot of work
Teaching assistants usually have a focus area, such as proofreading discussion worksheets, labs, projects, etc. My focus area was admin/logistics, meaning that I was in charge of managing weekly announcements, course email inbox, all exam logistics (room/seating assignments for students, staff proctoring and grading logistics, exam review sessions) for midterm and final exams, feedback forms, and the basic TA duties of teaching + office hours.
Prior to being a Logistics TA, I never knew how much work went into holding an exam. At Berkeley, typically the week or a few days before an exam, students will receive an email stating their assigned room location and optionally, their assigned seat. I never thought too much about that email but the process it takes to book exam rooms, accommodate exam preferences (ex: left-handed seats), assign seats, etc is extremely lengthy and time consuming. When running exams, regular and DSP (Disabled Students’ Program) students need to be accounted for and there’s additional logistics to account for if there are alternate exams. And that’s just for holding the exam, not to mention exam review sessions, writing the exam (dependent on course), and grading the exam…
I remember spending hours on exam logistics and quite literally manually assigning 200 students’ seats because we didn’t have enough seats from the exam rooms provided, causing the Seating Tool to not work effectively.
2. Student support is important
Throughout the semester, since I was monitoring the staff email inbox, I categorized which emails pertained to which TA. There were hundreds of emails requesting for additional student support because of personal issues and even more leading up to exams or deadlines. Before this, I never knew how many students contacted course staff and the answer is, hundreds.
There’s a lot of variance between courses on the extent of support from course staff. Typically, there’s a lot less or none for upper division courses because students are expected to be able to handle the rigor. However, I personally believe that there should always be student support in any course because unexpected circumstances occur out of one’s control and it’s a lot to handle while balancing school. Depending on the circumstances, it’s sometimes okay for a course to be less accommodating but generally, I believe that it’s best practice to thoroughly evaluate the scenario before arriving at a conclusion.
For courses that provide student support, it takes up a lot more time than you think. Typically, each student that requires support results in multiple student support meetings that range from 15 min to hour long meetings, then you have to multiply that for every single student that wants or needs additional support. This especially builds up around exams or deadlines which takes up a lot of time for the student support TA.
3. Established vs. developing courses
The first course I taught was CS 88 / Data C88C, which is the lower division fundamentals data science course that is built on top of CS 61A, an even older course. The next course I taught was Data 101, which is the upper division data engineering course. Data 101 has only been offered for five semesters as of Spring 2025, meaning that the course changes every semester (for improvements) in comparison to CS 88 rarely changing.
With all of the changes, course staff needs to be able to adapt to additional content being added. I remember some instances where the students and I were learning at the same time, except I also needed to be able to teach it during my own discussion section.
4. Teaching lower division vs. upper division courses
Adding on to the differences between teaching CS 88 and Data 101, the largest takeaway is probably the type of students I taught. In lower division courses, students are a lot less knowledgeable so there are a lot more “basic” questions, especially since CS 88 is an introduction to programming. However, in upper division courses, students are more familiar with programming and ask more conceptual-based questions that I sometimes didn’t know the answer to. Additionally, I typically didn’t know the students I taught in CS 88 since lower classmen (freshman, sophomores) took that class whereas in Data 101, I taught students that I knew or shared classes with which was sometimes weird. For instance, it puts staff in a weird position if students ask for help through Instagram direct messages…
5. CS education is intriguing
Not much more to it. I never enjoyed or found research too interesting but especially after TAing, it’s an avenue I want to dive deeper into.