Spencer Kim, A.B. '19, a computer science and philosophy concentrator, plays a 3D boat racing game developed by CS50 students Cherie Lo '19, a human development and regenerative biology concentrator, Daniel Ayane A.B. '19, and Evan Sussman (not pictured), A.B. '19, an applied math concentrator. (Photo by Eliza Grinnell/SEAS Communications.)

The operating principle of Computer Science 50 is that if students can dream it, they can code it.

The final projects on display at the annual CS50 Fair, held on Dec. 7 at the Harvard John A. Paulson School of Engineering and Applied Sciences, showcased students’ computer programming acumen, as well as their imaginations and ingenuity.

Computer science concentrators Francisco Trujillo, A.B. ’19 and Jan Geffert, A.B. ’19 didn’t even let the bounds of Earth constrain their final project. They developed a version of the classic game “Asteroids” that uses a virtual reality headset to put players in the middle of an asteroid field with no choice but to blast their way out. For Geffert, the only thing more challenging than navigating the 3D asteroid field was creating it. He and Trujillo spent hours tweaking their program to provide the most realistic experience, down to the lighting and shadows on individual space rocks.

“This project really emphasized to us that programming takes a lot longer than people may expect,” he said. “It took a lot of attempts to get everything just right, but in the end, we got a final result that we are really happy with.”

CS50 instructor David Malan, Gordon McKay Professor of the Practice of Computer Science, plays the virtual reality "Asteroids" game developed by Jan Geffert, A.B. ’19 (right) and Francisco Trujillo, A.B. ’19. (Photo by Eliza Grinnell/SEAS Communications.)

Other projects were more grounded in reality. Applied math concentrator Taylor Paige Li, A.B. ’18, and economics concentrator Allison Meghan Walsh, A.B. ’18, created “expendite” to streamline shopping for time-strapped consumers. Users search for a specific item, like a black skirt, and the application locates stores within a two-mile radius that have the item in stock.

“As college students, we don’t have a lot of free time during the day to go shopping. This app makes it so much easier to find the item you need,” Li said. “Our hope is that this app could really enhance the consumer experience.”

Taylor Paige Li, A.B. ’18 and Allison Meghan Walsh, A.B. ’18 explain the premise of "expendite" to a CS50 Fair visitor. (Photo by Eliza Grinnell/SEAS Communications.)

Making tasks easier was the aim of many apps on display, including “Charity Central,” which helps Harvard students find volunteer opportunities. The application, developed by biomedical engineering concentrator Anubha Srivastava, A.B. ’19, women, gender, and sexuality concentrator Julia Wiener, A.B. ’19, and mathematics concentrator Rebecca Hernandez, A.B. ’19, provides a searchable database of student volunteer opportunities offered through Harvard’s Phillips Brooks House Association.

Users select an interest from eight options and enter the number of hours they would like to volunteer, and the website provides links to local organizations that match those criteria. They developed the idea after feeling overwhelmed by the sheer number of volunteer opportunities presented at a student activity fair. Creating an application to simplify the process was both challenging and rewarding, Srivastava said.

“There was definitely a steep learning curve for us to jump into this project, since we didn’t have a lot of experience,” she said. “But it was great to have the opportunity to take our idea and develop it into a tangible website by applying the skills we learned.”

(left to right) Anubha Srivastava, A.B. ’19, Julia Wiener, A.B. ’19, and Rebecca Hernandez, A.B. ’19 developed "Charity Central" to make it easier for Harvard students to volunteer. (Photo by Eliza Grinnell/SEAS Communications.)

That’s the whole idea of CS50, said instructor David Malan, Gordon McKay Professor of the Practice of Computer Science. The course, which is designed for all students irrespective of their concentration or background, teaches computer programming, while also emphasizing broader critical thinking and problem solving skills that are applicable well beyond the realm of computer science.

CS50’s focus on innovation and self-direction, as well as its carnival-like final project fair, have made it the most popular Harvard course. Nearly 800 students enrolled this fall. An identical course, also taught by Malan, was launched this year at Yale, where it became the highest-enrollment class on that campus.

As he moved from table to table in the basement of Northwest Hall, beaming like a proud father, Malan said he was impressed by what the students were able to accomplish over the course of just a few weeks.

“The final project itself is meant to be an opportunity for students to go well beyond the course’s boundaries and actually apply the fundamental lessons to some new tool, some new language, some piece of hardware, or environment,” he said. “That’s what so many students here do. They take their knowledge for a spin and create something totally of interest to them.”