
UBC Competitive Programming team places 1st in Canada in ICPC World Finals
Undergraduate team solved algorithm challenges in international programming competition, placing eighth in North America and 44th worldwide
UBC Computer Science placed first in Canada in the International Collegiate Programming Contest (ICPC) World Finals. A total of 139 teams from top universities around the world gathered in Baku, Azerbaijan on September 4, 2025 to solve difficult problems involving algorithms.
The UBC team consists of undergraduate students Joel Gunawan, Phu Binh Nguyen, and Rain Zimin Yang, and is coached by Ph.D. student Xingyu Zhou. The team qualified for the World Finals after competing and performing with top scores in multiple levels of regional contests throughout the year.
During the World Finals competition, the team was presented with 12 challenging questions to solve in five hours. For example, one problem involved a type of data structure called heap data structure and the students needed to develop a strategy to find the sequence of operations that generate these structures — similar to seeing a chessboard and figuring out the combination of moves that led to this configuration.
The UBC team solved a total of seven questions, ranking first in Canada, eighth in North America and 44th worldwide. With one computer per team, the students relied on their strong teamwork and communication skills to get through the challenge.
“Overall, our team did pretty well,” says Joel. “I would say we nearly maximized our results. We have good team dynamics, and we are generally pretty balanced in terms of skills so we can help each other a lot.”
Joel, a third-year computer science major at UBC, has been doing competitive programming for the past five years, starting from when he was a sophomore in high school.
“Doing competitive programming gave me a good foundation for taking computer science courses at university,” he says. “It has also made me very interested in algorithms, which can be applied to many areas.”
As part of UBC’s Competitive Programming Club, Joel meets with his teammates every weekend — more often, when they are nearing a competition — to practice programming on problem sets, guided by their coach.
“There’s a lot of creativity involved in solving these problems and students need to code precisely,” says UBC Computer Science Professor Dr. Yuanhao Wei, the faculty advisor for the team. “These students show strong technical capabilities and are extremely hardworking. It takes a lot of practice and dedication in order to get to this level.”
According to Dr. Wei, practicing for and participating in these challenges not only teaches students problem solving skills that will help them with their courses, it also gives them a leg up when applying for graduate school or industry jobs. For example, coding interviews for software engineering jobs typically require applicants to write programs to solve similar types of problems.
For Joel, he plans to continue practicing competitive programming as part of the team to keep up his skills and start coaching the next cohort, helping to prepare them for the next competition.
“These challenges are quite fun. They keep me sharp in terms of problem solving and solving new things that I’ve never seen before,” he says.
UBC’s Competitive Programming Club is accepting new members! Join the club if you enjoy coding and designing algorithms. Tryouts to compete in the next ICPC are coming up on Oct 11 and Oct 18. Find more information on the club’s website: https://icpc.cs.ubc.ca.
(Photograph by Xingyu Zhou)