This year, out of approximately 13,000 student teams that participated in regional contests around the world, the team from UCLA was one of 133 teams to qualify for the world finals of ACM’s annual International Collegiate Programming Contest, where it will compete for the ACM-ICPC gold medal and the $15,000 grand prize. The ACM-ICPC is a multi-tier, team-based programming competition that hones students’ problem solving skills and “enables students to test their ability to perform under pressure.” It is the oldest, largest, and most prestigious programming contest in the world. This year, the five-day world finals will be held at South Dakota School of Mines and Technology in Rapid City, South Dakota.
The 2017 UCLA ACM-ICPC team – composed of third year computer science major Jerry Li, second year mathematics major Konstantin Miagkov, and third year computer science major Andy Shih, along with their coach, fourth-year computer science major Walter Qian – competed against approximately 100 teams during the Southern California ICPC regionals back in November, where they won 2nd place and secured a spot in the world finals. Regionals are organized by universities from different regions around the world. Each region is allocated a certain number of slots in the world finals, depending on factors like institution participation rate, geographic coverage, and team performance. This year, the Southern California region was allocated only two slots in the world finals.
“Obviously, we’re really excited,” said Shih, when asked about his feelings about qualifying for the world finals. “We worked pretty hard during fall quarter, so we’re excited to show what we’ve learned against other schools.”
Vic Yeh, fourth-year computer science major and president of UCLA ACM, described the competition as “the holy grail of competitive programming”, and agreed that making it to the world finals was an incredible feat. “Only the best can represent their schools and countries, so I’m very proud of our team’s accomplishment – especially since all three team members are only sophomore and junior undergrads,” Yeh said. “UCLA has sent two teams to the world finals in the past three years, and I believe it reflects the growing interest in competitive programming on our campus, and the rising standard of the technical abilities of our students.”
The world finals will consist of roughly 10 algorithmic problems of varying difficulty, which are judged based on correctness of output. Teams are ranked according to most problems solved and, in the event of a tie, least total time taken. During the world finals, competitors are only allowed one computer, so teamwork is a necessity. “If there’s an error in the program, we switch roles and have that person debug their program on paper, so we can maximize efficiency,” Li said. “By having one person code and the other two working out problems or debugging on paper, we can save a lot of time, which is crucial to doing well in the competition.”
For Miagkov, the love of competitive programming started at a relatively young age. He began programming in middle school and went on to attend Saint Petersburg Lyceum 30, a public high school in Russia specializing in physics, mathematics, and programming. “I’ve always been interested in the theoretical aspects of things – how you can have a task that is seemingly difficult and would take a long time to solve, and come up with a sort of trick algorithm that solves it in a split second,” Miagkov said. “And that’s exactly [the sort of thing] we do in competitive programming.” After learning that the 2015 UCLA ICPC team placed 6th among North American teams at the world finals, Miagkov decided to attend UCLA, and joined the ICPC team shortly after.
Li’s interest in competitive problem solving started in middle school, where he actively participated in math and science competitions. After a friend introduced him to the world of programming in high school, he became fascinated by how practically any sort of idea could become a reality through programming, and started to gain interest in competitive programming. While he gained some experience in competitive programming during high school, it was not until his second year of college that he began actively training for and participating in programming competitions.
Like Li, Shih’s passion for competitive programming stemmed from his interest in mathematics and math competitions during high school, but he was not formally introduced to programming until his second quarter of college. After taking CS32 during winter quarter of his freshman year, he was drawn to the objectiveness of programming. “A lot of times when writing proofs [in math competitions], you would be rewarded with partial points, depending on how the judge likes your reasoning,” Shih explained. “I like how in programming, there’s no subjectivity in the solutions – your solution is either accepted, or not.” While he appreciates the coding aspect of programming competitions, he mainly enjoys the rigor of the mathematical challenges presented in competitive programming.
“My personal goal is to advance to the world finals next year, too,” Shih added. “Every student is only eligible to participate in the World Finals twice in their career, so that’s something I want to do [before I graduate].”
When asked how they make time for practice amongst their other extracurriculars and class schedules, the members agreed that practices did not feel like a commitment at all.
“Practice isn’t the same as work for a class, or a project,” Miagkov said. “It’s fun for us, so it doesn’t feel time consuming at all. We do it in our spare time because it’s something we really enjoy doing.”
Overall, Li, Shih, and Miagkov agree that competitive programming is just a hobby for them, and plan on pursuing other paths post-graduation. However, all three said that in the future, they still plan on casually participating in competitions like Google Code Jam and Facebook Hacker Cup. Outside of ICPC practices, they share their passion for competitive programming through the UCLA ICPC group by holding weekly competitive programming training sessions, where they teach algorithmic topics and offer practice competitions. In the long run, they hope to spread awareness about the intellectual sport, as well as make competitions more accessible to UCLA students. Last quarter, they hosted CodeSprint LA, a multi-round algorithmic coding competition for UCLA students, and in the future, they plan on hosting similar competitions that will be open to all students in the Southern California region.
Aside from the ICPC world finals, the team will be competing in the North American Invitational Programming Contest in April, an online programming competition hosted by the University of Chicago. The competition features the top 5 schools from each of the 11 ICPC regions in North America, where the highest-ranking teams will receive custom NAIPC t-shirts, trinkets, and prizes.
The UCLA ACM-ICPC group will be holding their last training session of the quarter this Friday from 4-6PM in Boelter 4750, and will continue to hold weekly training sessions next quarter, though time and location may vary. Follow the UCLA ACM Facebook page and the UCLA ICPC Facebook group for more updates.