icpc logo

UBC team heads to World Finals of ICPC programming competition

ADDENDUM:  The 2020 UBC team finished an impressive 25/119 at the ICPC World Finals in Moscow on October 5, 2021, and they were the only Canadian team competing. UBC also won a coaching award for five consecutive appearances at the World Finals.

It’s hardly a cakewalk to beat the top competitive programming teams from Stanford, Berkeley, Harvard and Yale. But the UBC Competitive Programming Team placed ahead of them all in the  Intercollegiate Computer Programming Contest (ICPC) North America Championship 2021 which was held virtually this year on August 14.

The trio finished 5th out of 48 teams, earning themselves a coveted bronze medal.

Next stop:  the World Finals

With that win in pocket, Vincent Ling, Rahim Mammadli and Xingyu Zhou are advancing to the 2021 ICPC World Finals, currently scheduled to take place in March 2022 (location TBD). The top six teams from the regionals qualify to compete at the Worlds.

Professor Will Evans of UBC’s Department of Computer Science has been the team’s advisor for 13 years, but credits the student coaches for running the well-oiled machine year in and year out. This year, two CS alumni, Henry Xia and David Zheng, coached the team to their North American victory.

"We were really hoping to qualify for the World Finals,” said Henry. “But it was still quite a surprise when we did.”

What is the ICPC?
The ICPC is a competition between teams. Each team consists of three contestants. The teams are presented with a set of problems. The objective is to solve as many of the problems as possible, under a strict time limit. For each team a score will be determined, based on how quickly problems are solved and how many attempts it took to solve a problem. The team with the best score at the end of the time limit wins the competition. The World Final is the ICPC signature competition.

Henry and David run the team practices and bring their own experience and knowledge from having competed as undergrads in previous years. At practices, the teams run through previously solved problems, meeting 1-2 times per week, and more often in the weeks leading up to the competition. Saturday practices can be up to five hours.

This year, two UBC teams qualified for the North American event by placing at the regionals, which is no easy feat in itself. The regional competition draws skilled teams from UBC and SFU, Washington, Hawaii and Stanford. UBC had 8 teams total participating in that regional competition.

Secret weapon:  pizza

In terms of setting the competitors up for success, the advisor plays a very key role: “I have to make sure the pizza budget is sufficient enough for their practices,” Professor Evans laughed. “I also make sure the cheques are signed to pay for any flights needed to get them to competition and for accommodation if it’s not being held virtually.”

As Evans has now taken a year’s sabbatical, there are talks in progress with his colleague Professor Robert Xiao, also of UBC Computer Science, to inherit the role of advisor for the team. Xiao is already well-versed in the competitive programming world, as he manages the UBC Capture the Flag (CTF) team and has been an avid competitor in his time. Under his guidance, Maple Bacon placed 2nd across Canada in the CyberSci regional competition.

Evans and Xiao both can attest to the camaraderie and sense of belonging that programming contests create for the students, “I think it’s a really fantastic community,” said Evans. “And we seem to always do so well.  We basically won the regional competition last year. I think that’s the best thing for me to watch:  their advancement over the years. And now, going to the world finals.”

The ultimate payoff

Although there are no cash prizes with the ICPC Competition, the payoff can be pretty sweet for any team member in the form of a good-paying job with a tech company.

Anyone who competes at the World Finals has the opportunity to connect with some of the world’s most prominent players in the tech industry, as they try to recruit the participants to work for them. “Companies like Google and Facebook are interested in that calibre of computer science students once they graduate,” explained Evans. “Just by attending these competitions, our students are getting their names out in front.”

In past years, they have had local sponsorship – whether it’s for the weekly pizza, airfares, or the entire year’s budget, which comes in somewhere around thirteen thousand dollars. “It would be really great for a Vancouver company to sponsor this year’s team,” Evans said. Past sponsors have received direct access to these students not only for potential hiring, but for collaboration, and the opportunity to be more involved in the department in general. “I feel like it's a great thing for UBC to have this kind of outlet for the talented people that come through our program, or even from other departments. It’s a great way for them to expand their knowledge about computer science by doing things outside the curriculum.”

Due to COVID-19, the 2020 World Finals has still not been held but the current arrangements are to have it hosted in Moscow this fall. Once a locale is finalized for the 2021 competition, details will be conveyed on the ICPC website.