I recently served as a judge at the University of Vermont Computer Science Fair for the second time. If you’ve never attended this event, I recommend it - it’s a fascinating look into ideas spawned by the next generation of computer scientists. And if you’re a professional in the field, I especially recommend volunteering as a judge. Working with other judges is a great way to make connections with fellow technologists in our community. I connected in particular with Josh Dickerson from Dealer.com - it was a pleasure to talk shop as we checked out the exhibits.
The fair took place in the Grand Maple Ballroom in UVM’s Davis Center, which is an inspiring place in its own right with beautiful views. Dozens of tables were arranged in long rows, each with a student or small team offering their project on display. The projects ran the gamut in terms of completion, ranging from painstaking labors of love to mere concepts just getting off the ground. The subject areas varied widely as well - from heady deep-dives into computational theory to attractive marketing websites built for real local businesses. Overall, it offered a good snapshot into the great diversity of ideas that “computer science” can represent.
One project that stood out was an algorithm that analyzed the “happiness level” of various books, generating a graph showing happiness level against the timeline of the book’s story. I had a blast looking at familiar stories and picking out events in the story by the happiness - or lack thereof - on the graph. For kicks, I went to the website to pull up the happiness graph for Oliver Twist, which hit some of the happiest tones of all the Classics! You can try the tool at this site - enter in a title or choose from their curated list.
This project was also presented with a high degree of physical panache, including a gleaming steampunk-esque casing for the computer, and a big pile of books with usb drives poking out of them. There were so many interesting projects.
I have tremendous respect for the students who put their hearts and souls into these projects - and that’s one aspect to this process. But there’s also the “back-end” judging part of the process, which is very interesting and tests our ‘agility’ among other things. A few dozen judges are divided into groups by subject area and work together to review dozens of student projects - across three separate rounds - in a pretty tight timeframe.
Each group is expected to come up with the top three projects by the end of the session. As you might expect, this requires teamwork, creating a good workflow to inspect all the projects in a given round, and then achieving consensus on the criteria by which winners are chosen. The organizers do their best to split up judges who come from the same organization, so judging happens among practical strangers. But we don’t stay strangers for long.
I found the judging process to be an intriguing way to get to know others in the field, because we had to both plan and execute a novel task. Plus, the process of deciding the winners revealed each person’s values and assumptions about what makes for good software. By the end, we’d learned far more about each other than we would have from just a conversation. It was also an education in the great variety of approaches and attitudes that can go into a software team.
I’m grateful to Bob Erickson and the UVM Computer Science department and its sponsors for putting this fair on each year. I think I speak for other judges that we’re glad we had a chance to help further the education of the next generation - as well as our own.