The Princeton CS LabTAs

And a Computer Scientist Learning to Code


Like many other undergraduate institutions, Princeton offers nightly tutoring to the students in our Intro Computer Science classes. I’ve always loved teaching and mentoring, and I also love computer science, so when I was a sophomore becoming part of what we call the LabTA program was a no-brainer. It’s great meeting all of the CS students in the years below you, but I always found watching the next generation of students get those beautiful “ah-ha” moments the most rewarding.

During the second semester of my junior year, I took over the job of managing this program. To put it lightly, it’s a bit of a handful. The end product—great TAs in the lab helping students every night, is somehow easier said than done. Scheduling is a nightmare on its own, and that’s without dealing with substitutes and changing needs. Put on top of that the pressure of ensuring every TA a student interacts with is more than qualified and it starts becoming a lot to have on your mind.

Systemization of these processes would go a long way toward decreasing the load on the head TA, however, they are generally more of an annoyance than a hinderance. The greater place for innovation lies in building the capability to precisely track what is going on in the lab on any given night—which TAs are there, which students are there, and what people are working on. The hope is that by having this data we can better train and place TAs, provide the most impactful help possible to students, and as a bonus get some insight into how such a tutoring halls tends to work. Building this system is the independent work project I will be undertaking this semester with Brian Kernighan graciously advising me.

It should be clear that these problems and this sort of setup are not unique to Princeton, or even to computer science. In reality, it’s a generic setup that occurs in any tutoring environment. Thus at a basic level, my goal is to help CS students here at Princeton, but at a higher level it is to create a tool or at least a model of one that could be applied in any such situation.

Doing this well should be sufficiently challenging on its own, but I have the further difficulty of not being at all knowledgeable about web development. This bring us to the subtitle of this piece—A Computer Scientist Learning to Code, that’s the second part of the project. Like many of us who learned CS and software in academia, I tend to be more comfortable slinging kernel level C or doing reductions to 3SAT than building glamorous websites. Thus, by working through this LabTA project, I’ll hopefully get to learn a bit about how to do that too.

I’ll be sharing my thoughts and progress on an ongoing basis here on Medium—so if you care about undergraduate teaching, are a computer scientist like me who has so far avoided coding (as opposed to programming), or are just curious about that data we’ll be digging up, I hope it will be my pleasure to share with you my experiences and hear your thoughts over this semester.

Next Post: Computer Scientist Finds WebDev Frameworks

Email me when Alex Daifotis publishes or recommends stories