College of Integrated Science and Engineering

Pursuing a Passion for Competitive Programming


By: Julie Stern

Last semester, assistant professor Dr. Chris Mayfield taught a Computer Science (CS) class with a somewhat unexpected goal: to have fun.

CS 280: Programming Challenges is a competitive computer programming class, which means students enter competitions to challenge their programming skills.

Asked what he hoped the students might achieve by taking the course, Dr. Mayfield thought for a second. "Have fun," he answered.

"The whole point is for students to have fun. Solving these puzzles is a friendly challenge. This is something we enjoy doing and enjoy getting better at."

Students form teams of three to compete. Generally, the fastest typist will write code—the solutions to the problems—and the other two members dictate what he or she should type. The team with the most correct answers wins. Getting any answers right is often difficult, said Dr. Mayfield.

If two teams solve the same number of problems, then the team with the lowest time is the winner. An incorrect answer results in a 20-minute penalty, but the team can continue to submit answers until it is solved.

"During the competition I always lose track of time since my thoughts are completely engrossed in the problems at hand," said junior CS major, Gaurav Kale. "Whether I win or lose, I only consider the competition good if I was able to solve at least half the problems and one of my friends was neck and neck with me the whole time."

Competitions are five hours long and typically have around eight questions. Students often wish the competitions were longer, said Kale, so there would be more time to finish the problems. In November, the students participated in the ACM-ICPC Mid-Atlantic Regional Contest at Radford University and CCSC Eastern Programming Competition at York College, Pennsylvania. One team, of which Kale was a member, placed 28th out of 189 teams at the Mid-Atlantic Regional Contest—in the top 15th percentile.

"[A competition] is really only as competitive as you want it to be," said Kale. "Some people just come in to see how they do solving problems in a timed environment and don't care about coming first or last. Others, like me, get very competitive with groups of friends."

Although the class aims to bring together like-minded individuals with a passion for puzzles and problem solving, it also helps students develop skills for their future careers.

According to Dr. Mayfield, giving students practice working under pressure is the best part of the class.

"It's a different type of pressure," he explained. At home, students can take their time solving problems. But when forced into a timed situation where someone is examining the student's work, such as a job interview, the pressure heightens. "What I want students to do is build the confidence to think and perform in that scenario. Competitive programming gives them a chance to practice that and see what it feels like."

Kale agreed that the class is helpful in developing the skills to efficiently solve problems in a timed environment. "I like how it really challenges me to work fast," he said.

The class was so well received that this semester Dr. Mayfield is starting a club where students can continue to advance their programming skills. Already, over 30 people have shown interest in becoming members.

The club will enable competitive programming students to continue pursuing their passion for problem solving.


Published: Friday, February 20, 2015

Last Updated: Thursday, January 4, 2018

Back to Top

Related Articles