A brief tale of computers, algorithms, logic, love, hate, and widescreen monitors.
Generally the SRC, in the basement of the computer science building, has people going in and out of it, generally to see their TAs or meet with their group to work on CS homework and projects. Most students come in a couple times, talk to their TA, and leave, without looking back (and without knowing how to open the door poorly labeled “Push”).
Maybe four to six students were here for nearly the entire semester, or at least every time I was working. With the Thursday and Friday late shifts, it generally wasn’t TA office hour time, and so the crowd varied from “this homework is due tomorrow, shit” to “this homework was due a week ago, shit” to just nobody here, minus those students. Perennially working, forever turning in things late, always getting extensions and help.
Two of them in particular, whose names I never learned, needed quite a bit of help near the middle of the year. Both were reasonably able to work computers but were not well versed in using Java in the way their class required — and really, that’s fine, this is school, a place to learn.
The intensity of the help they asked for increased to almost a breaking point, right after the final difficult assignment was due, about 2/3 of the way through the semester. The two of them were sitting on either side of me, both completely lost in their enormous project, both doing completely different things completely incorrectly. I turned my attention back and forth, trying to split my time evenly, trying to figure out what was wrong (because I sure didn’t know, or I would have told them). I spent a five-hour Thursday shift and a three-hour Friday shift exclusively helping these two — on Friday I didn’t even log in to my own computer.
I was exhausted, but their programs worked, finally, and we were both happy. To this day, one of them is still periodically in the SRC, just to study I presume, and he always says hi to me and calls me by name (which makes me feel bad that I don’t know his), and it’s great, and I feel good for helping him.
Just tonight, a slightly older gentleman, the only person in the SRC besides me on the last day of the semester, and the last SRC shift before spring, calls me over to help him with his computer science homework. He’s working on algorithms and doesn’t understand how to use a binary search tree in one of his homework problems. He has a binder of notes on trees and the homework printed out, and I have an empty markerboard before me.
It’s great. In the span of maybe forty minutes, I relearn how binary trees and binary search trees are distinct, and what a heap is, and how to remove elements from each of those (heaps are hard), and indeed we both sit down and think on the bonus question and take 20 of those minutes to draw out different solutions on the markerboard, and after two or three refinements finally arrive at the correct answer, which I explain and he asks questions about and understands.
It was good for me, a review of my own CS classes. It was good for him, a guy who needed some help with his homework and got a perfectly acceptable lesson in trees and algorithms. And it was particularly fulfilling, to find the sense of discovery in making the algorithm work, in explaining and seeing him understand even in the space of minutes. Not always do I love working the desk, because not everyone is like this fellow. But tonight it was worth it.