Students develop real-world apps in advanced computer science course| Feb 25, 2018
Most technological breakthroughs come from the powerhouses that populate Silicon Valley, but the next life-altering app may be only a few lines of code and a mouse click away for students in the University’s Computer Science building.
Every semester, students in the computer science course COS 333: Advanced Programming Techniques work in small groups to create real-world, functional, and practical applications that are made available to the Princeton community at large. These apps are often constructed to address unmet needs within the Princeton community.
Professor Brian Kernighan GS ’69, who teaches COS 333 in the spring, wrote in an email that the objective of the class was to teach people “how to write significant pieces of code using modern tools and techniques.”
“[Students] will learn quite a few specific technical skills through their projects, although different students will learn different things because they will be using different tools and applying them to different problems,” Kernighan wrote. “I often say that the course is a simulation of reality, and these aspects … will definitely be encountered in the real world.”
Projects have in function and scope from a better grading or submission tool for COS 340: Reasoning about Computation to a map of free food locations for University students to a mobile game combining Tetris and Scrabble for all smartphone owners.
“I think the most successful projects have been ones that address issues that all students face, and do that well,” Kernighan said. “I would like to see more projects that reach out to other parts of the University and wider communities as well.”
The Daily Princetonian sat down with three students who took COS 333 in spring 2017. Sarah Pan ’19 was a member of the team that worked on Comet, a productivity app “to help students track their daily routines and ability to follow through with their schedules.”
Comet is a location-based app that adds a star to a virtual galaxy every time the user is where he or she is scheduled to be. Unfortunately, it was never released to the public and has been indefinitely retired.
“All of us had some sort of concern keeping up with our commitments, whether it was going to the gym or going to class,” Pan said when asked about what inspired her group to build Comet. She believes that apps targeting social needs in the student community would do best to focus on communication and productivity “simply because [they] are two of the most important aspects of being a student.”
While Comet aimed to address a need shared by students in general, another app called TigerFinder sought to improve quality of life specifically for University students. Samuel Miller ’18 and Brian McSwiggen ’18 explained that their web app was meant to help people find resources like bathrooms, laundry machines, water bottle refill stations, and printers.
TigerFinder used the Google Maps application programming interface to optimize paths, as well as various online tools to compile a list of resource locations. An important lesson that he took from COS 333, McSwiggen said, was “figuring out how to use existing information and services to pull together something useful.”
As for the main challenge of building TigerFinder, Miller cited the difficulty of collaborating efficiently and effectively with team members throughout the semester.
The TigerFinder app was live for a year before its web hosting expired. It has since been indefinitely retired as well.
Miller, Pan, and Kernighan all mentioned the ReCourse app as a particularly notable project completed in spring 2017. Created by Jessica Zheng ’19, Bill Zhang ’19, Natalie Diaz ’19, Julie Zhu ’19, and Elizabeth Tian ’19, ReCourse is a “” that provides not only the functions included in the Registrar’s basic search engine but also many more refined ones, such as avoiding time conflicts and identifying courses that fulfill certificate requirements.
This semester’s COS 333 project presentations will take place in late May.