Monday, January 13, 2014

5C Hack-a-Thon: There's a first for everything

January, 2014
--

With only two months of coding experience, I decided to sign up for the 5C Hack-a-Thon. Initially with no partners in the competition, I convinced my friends Jackie and Maureen to join. Jane, one of the Introductory Computer Science teaching assistants, was assigned to us as our final teammate. The Hack-a-Thon was a first for us all, so we were naturally placed in the beginners' division. We had 24 hours to come up with, program, and functionalize the best project we could. At first, we were eager and excited, but our limited programming knowledge kept us at the drawing board for the first two hours. My Introductory Computer Science course specialized in developing object-oriented programs and elementary algorithms, while my other three teammates' course specialized in graphical user interfaces to design games like Tetris, Pictionary, and Frogger . Together, we coded a GRE vocabulary speed game, dubbed "GRE Spree," in which definitions fall from the top to the bottom of the screen while players type in the corresponding words to eliminate these falling phrases. We also included a review option that displays the definition, a sentence example, and a relevant GIF (like those seen on Tumblr and Reddit) for each incorrect response.


My first Hack-a-Thon team: Me, Jackie, Maureen, Jane (from left to right)

Although GRE Spree is not particularly extravagant, it was the most sophisticated project I had worked on. Our team decided to pair program, where two programmers code at one computer. Jackie and Maureen handled "how it looks", while Jane and I designed "how it works". What was most probing was figuring out how to keep numerous rules running simultaneously. We timed definitions falling and disappearing, marked wins and losses, and tracked inputs from the player. These individual features were carried out by "methods", and having so many to keep up with resulted in bugs, or kinks, in our program. It was surprising how many features and variables we had to account for through techniques like inheritance, trees, and data structures. By about 6 AM the next morning, our team finally finished the game and made it to final presentations.
Grilled Cheese Truck at the Hack-a-Thon!
This was one of the main coding rooms with tons of snacks.


Besides coding with Jane, I worked as the planning master. With a marker and a whiteboard, I led the planning process and established a clear vision. At the final presentation, I had the privilege of presenting the team's final product. To be working on a project from beginning to end was truly rewarding and fulfilling. My most powerful realization was that our program started with a bunch of lines of code to a finished product that anyone can enjoy. Not only that, final presentations were unbelievable. Other groups designed 3D first-person games, Siri-like voice command programs, and hilarious mobile apps for dating. These remarkably genius and amusingly quirky students of computer science came up with priceless designs and ideas. I had so much fun that I am now on the 5C Hack-a-Thon Planning Committee for 2014 in hopes of sharing the Hack experience with the rest of the Claremont community. 
Made it to final presentations! Phew. Those 24 hours paid off.