Over the summer, I participated in Princeton’s Summer Programming Experience (SPE). The program consisted of six weeks spent in the Friend Center computer labs, where we worked in teams of two or three on a programming project of our choice. Each team was supervised by a faculty member or a graduate student from the Computer Science department.
The Summer Programming Experience is targeted at first-year students or sophomores with minimal programming backgrounds. Since it is often the first exposure many of us have with a significant programming project, guidance was offered if we asked for it. However, we mostly had to teach ourselves the tools we needed to complete the project we had in mind — from familiarizing ourselves with the basics of a new programming language, to making design decisions at every juncture of the project — decisions that I had never made before in a classroom environment. Like many other experiences at Princeton, I quickly learned that my greatest takeaway from SPE was the power to teach myself more.
Our team of three made a 2-dimensional platform game called “RADish”. Everything was coded from scratch, from how the many dynamic components in the game collided with one another, to the variety of power-ups to be collected and enemies to overcome, as well as the user interface and special effects. Many hilarious incidents ensued when a typo in the map input resulted in a labyrinth of pixels that was impossible for our poor protagonist to navigate! Over hours huddled together trying to locate the source of bugs or inefficiencies, we grew close as a team. Sometimes, we would leave motivating comments or inside jokes for each other in the source code we shared.
At the end of the program, each group shared their project. One group made a phone application to connect students on campus who wanted to study together for a specific class. Another made a program that simulated evolution. Another group programmed a remote controlled car that could play hide and seek with the user. It was incredible to see how each team managed to take their ideas from a brainstorm to actual implementations within such a short window of time.
Overall, SPE was a rewarding experience. It was filled with the challenges of working on a project of a large scale for the first time, but flexible enough to allow us to develop our projects at our own paces and according to our capabilities.