Programming prowess and powerful problem solving

Computing science students excel at international programming contest

Katie Willis - 24 November 2016

Each year, the Association for Computing Machinery International Collegiate Programming Contest attracts students, faculty, and researchers from 2,736 universities from more than 102 countries on six continents. It is the oldest and largest programming contest in the world.

This year, UAlberta computing science students won the regional competition--beating 53 other teams from the Rocky Mountain zone--to secure their spot at the World Finals next May in South Dakota.

The team, led by Assistant Professor and Canada Research Chair (Combinatorial Optimization) Zac Friggstad, is comprised of Morgan Redshaw, Noah Weninger, and Yunpeng Tang, undergraduate students with the Department of Computing Science.

"It all comes down to problem-solving skills." -Zac Friggstad

Teams of three have five hours to try to solve 10 to 12 problems as quickly as possible. The problems range in difficulty from first-year undergraduate questions to advanced challenges that require knowledge of algorithms learned in senior undergraduate classes. The team that solves the most problems in the shortest amount of time wins.

In the tradition

For Friggstad, participating at the ACM-ICPC has been a longstanding tradition. After earning a bronze medal with an 11th place in the 2006 World Finals as an undergraduate student, he began coaching as a PhD student. "The programming club was a passion of mine when I was a student, and now I enjoy helping as a coach," he says.

The best teams have a strong background in algorithm design, graph theory, number theory, and geometry in addition to programming prowess.

"It all comes down to problem-solving skills," says Friggstad. "Computer programming outside of the classroom is basically one big problem to solve. Many tech companies that hire software developers specifically look for these skills, so the payoff for developing them early is very real.

So, how do students become better problem solvers?

"Practice, practice, and more practice," says Friggstad. "The more programming you do, in or out of the classroom, the better you'll become."

As for the winning team, the biggest challenge at the World Finals is yet to come.

"Once the Winter term starts, we will practice with fervour, going through challenging problem sets from previous World Finals and other notoriously difficult regions," says Friggstad.

Redshaw, Weninger, Tang, and Friggstad will attend the 2017 World Finals in Rapid City, South Dakota in May 2017. Congratulations and good luck!