Only five years after its inception, the Computer Science Department at Manhattan College was catapulted onto the national stage, hosting the 2016 Greater NY ACM Computer Programming Contest. Nearly 150 top programmers from 19 college and universities in the area, including Columbia, Cornell, NYU and Princeton gathered on Nov. 13 to compete for first prize and a place at the World Finals this summer.
The contest is a storied event of epic proportions, co-sponsored by the Association of Computer Machinery and IBM. This past year, worldwide participation included 40,266 of the finest students and faculty in computing disciplines from 2,736 universities in 102 countries on six continents. The regional events typically take place at large universities to accommodate the number of participants with the correct technical equipment and space, so it was a rare honor for Manhattan to host.
"It was a great honor for us to host the regional contest and it has brought public recognition to the College,” said Tina Tian, Ph.D., assistant professor of computer science. “The judges all agreed it was the smoothest running competition they've ever had.”
The contest pits teams of three students against eight or more complex, real-world problems, with a grueling five-hour deadline. Huddled around a single computer, competitors race against the clock in a battle of logic, strategy and mental endurance.The competition environment is surprisingly animated. Each team seems to have a different collaborative style, some using whiteboards to map out solutions, others furiously scribbling on scrap paper and intermittently erupting in a shuffling frenzy, passing off code to a teammate for transcription.
This year, Manhattan College entered three teams, including computer science majors Tim Hamling ’18, Ryan McPartlan ’18, Patrick Mulvihill ’16, Paul Revelo ’18, Mitchell Rifkind ’18, Steven Romero ’18, John Stone ’18, and John Tomici ’17, and computer engineering major Christopher Dusovic ’17. For contestants, it’s more than just an opportunity to win a trophy. It’s a chance to learn new tricks, to rub elbows with fellow elite student programmers, to push limits and make breakthroughs.
“I typically program in a language called Java, but my teammate Chris who is in computer engineering and is the president of IEEE [Institute of Electrical and Electronics Engineers] here on campus, uses Python primarily,” explains Mulvihill. “During the first problem, he suggested we use Python because it was faster. He solved it in 15 minutes. And from there on out we used Python, even though my other teammate and I didn't have experience with that language. Chris led the way and we learned the syntax, how it worked, and some of the perks of the language during the competition. So that was pretty cool.”
This year, Princeton took the top prize with 10 correct solutions, followed by Cornell and NYU with nine and eight solutions respectively. However, no team goes away empty-handed. Unlike many collegiate competitions, there are lasting benefits to participation. After the competition, ACM posts the solutions so each student has an opportunity to study the material in preparation for next year. It’s also wonderful practical experience as preparation for the job market. Most tech companies give applicants very similar questions in interviews.
“When you go to programming competitions, you learn how to deal with different scenarios and how to formulate your thoughts,” says Hamling. “Let's say you're interning for somewhere like Google and you went to go for an interview, they would give you a question similar to the ones that are in the programming competitions. You would work through it with the interviewer kind of like how you would work through a problem with your team. Getting more experience with these helps you become a better programmer.”