Build it and they will learn: course yields innovative sites and apps
Elaine Liew is no ordinary tour guide.
The Princeton University senior does not work for Orange Key, the organization responsible for campus tours. She does not walk backward in front of large groups or field questions on the fly from campus visitors. But it is her voice that guides virtual visitors and prospective students through the campus in PTour, a new student-built website that allows users to tour Princeton University through panoramic images and short descriptions of select locations.
PTour is one of 42 projects that students developed this semester as final projects for COS 333: Advanced Programming Techniques, taught by Professor of Computer Science Brian Kernighan. Liew and her team, "Singapore Noodles," demonstrated their website during the course's final presentation sessions -- some 22 hours of demonstrations over 4 days ending May 9.
Other projects included Princeton Undergraduate Research Finder, a website to help students find an advisor for independent research, and myPrintston, an iOS app which allows students to visually find printers and report printer problems directly to the Office of Information Technology.
Thomas Truongchau, a senior, who created PTour with fellow computer science majors Liew and David Durst, a junior, and Shwetha Raghuraman, a senior, said that the class stands out for its emphasis on practical projects as opposed to theoretical exercises.
"This is a must-take class for any student who is interested in building a rather complex project," said Truongchau, who called the course the "capstone experience" of his time at the University.
Since Kernighan created it in 2000, COS 333 has been known among students for producing useful websites and, recently, phone applications. The "Integrated Course Engine," a website that synchronizes with the University's course registration system and allows students to visualize their class schedules, was created through the course in 2008 and is still widely used by students. One project has even become a business venture for a student.
During their presentation, the PTour team explained that they designed the website with students like Liew, an international student from Singapore, in mind—students who might not have the time or money to fly across the world for a tour. Offering 360-degree panoramic photographs of key locations on campus, such as the Engineering Quad, Firestone Library and Frist Center, the tour allows users to rotate the image and click on points of interest for more information. The team wanted to recreate the experience of a campus tour with special features available through the online medium. Locations are tagged by name, as well as by associated department or club. Users can search for buildings based on academic or extracurricular interest.
Other projects also focused on audiences beyond campus. Ankush Gola, junior, Aaron Himelman, Sam Payne, Riley Thomasson, and Akshaya Uttamadoss, all students in the Department of Electrical Engineering, created Histograph, a website that allows anyone to visually sift through their browsing history. Available in circle clusters, a sunburst graph, or a line graph over time, the user’s browsing history can also be sorted by time period and URL. Users can connect with their friends over Facebook and obtain a recommendation based on similar browsing history.
Gola expressed his appreciation for the course and the project they created. “I learned a ton through the project—such as web development, overcoming design challenges and tradeoffs, and collaborating in a group," he said. "In the end, it was very rewarding to create a final product that users can use and say ‘Wow, I helped build that.’”
Kernighan said that reaction is what he considers a major factor in what makes the class practical to students. “It gives students something unique to talk about in an interview,” Kernighan said. “If the interviewer says, 'Tell me about something you did once,' you can talk for hours about a really interesting project that you did.”
Overall, he said, the aim of the course is to create real-world assignments and problems that computer science graduates are likely to face in the work environment, whether at tech giants such as Google or Facebook or in start-up companies. Collaborating with other students in a small-team environment and working with previously written code are examples of such experiences. Teams must also meet weekly with a mentor to review progress on their project and outline their next steps, similar to how a team might meet with management every week.
But ultimately, Kernighan said, it is "what the course forces the students to learn" on their own that benefits them the most.
Indeed, Anjalie Field, a junior in the Department of Computer Science whose team created a web-based tool for working with texts in Latin, said her team learned more from playing with available tools and searching through online resources than the lectures themselves. Field created the website, Palimpsest, with teammates Nikitas Tampakis, senior, and Gabe Banevicius, junior, both also in the Department of Computer Science. Focusing on the idea of the "digital humanities," they incorporated a vocabulary search tool and allowed users to make private notes as well as public comments directly on texts such as the Aeneid.
Field praised the class for increasing her understanding for working efficiently in a team. "The best part of COS 333 is that at the end of the semester, you end up with a project that you can be proud of," she said.