Oxford students reach final stage of world championships of programming
Posted: 27th November 2023
Oxford has made it through to the finals of the International Collegiate Programming Contest (ICPC), the world’s most prestigious competitive programming contest for students.
Four Oxford teams participated in the Northwestern European Regional Contest (NWERC) in the Netherlands last weekend, where a total of 143 teams from 64 universities from 13 countries competed.
One of our teams, 'NewJeans', won the competition after an excellent performance from start to finish, with another Oxford team, 'ShameShame', not far behind, taking 5th place.
Following success at the weekend, Oxford University will now send one team to participate in the World Finals in Kazakhstan in 2024.
The programming contest
In the lead up to the competition Department of Computer Science Associate Professor Bartek Klin, who has been coaching the Oxford teams, said the contest attracted the elite of young programmers across the globe.
‘Among all the disciplines in the sport of competitive programming, ICPC is like a sprint relay: a dozen programming problems, small but challenging, to be solved as quickly as possible, within five hours, in a team of three,’ he said.
In a competition, a team has access to only one computer which they must share effectively, without access to any other electronic device. This is due to when the ICPC was first organised in the 1970s, computers were much more difficult to come by.
‘The rule has persisted to this day, and for good reasons. It enforces teamwork, encourages thinking away from the keyboard and makes good communication skills essential. An experienced team works like a well-oiled machine: participants know each other very well, they understand the strengths and weaknesses of their team-mates, and know how to help each other when needed,’ he said.
Problem-solving
Once competitors think they have a program to resolve a problem they submit it to judges, who run secret tests and will confirm whether the program is correct or not. If it’s a success they can move on to solve the next problem, and they get a colourful balloon to let other teams see that they have solved the problem. If the solution is wrong, they can still submit a new one, but every incorrect submission incurs a 20-minute time penalty. This is important because in the final scoreboard, if two or more teams have solved the same number of problems, then the sum of the times of their correct submissions (with the penalties added) decides the order between them. This means that it is important to work as quickly as possible but avoid mistakes at the same time.
‘As the Oxford coach, I am very fortunate: there is no need to teach our best students anything about coding or problem solving, because they have all those skills already. My role is to give them hints about effective team working’, Bartek said.
‘The team must really learn how to work collaboratively - because there is only one machine that they share to input their codes. We must remember that these are students that are used to having access to their own devices and usually work independently. In this contest, they need to learn how to share, how to effectively communicate clearly about how urgent their need is to access the machine and importantly when to ask teammates for help if they get stuck on an issue.’
'The intensity of the contest and difficulty of the problems means that it is very rare for even the winning team to solve all problems presented to them in the five-hour window. But it is amazing how quickly they can solve some of the easier ones. First correct solutions usually appear within the first 15 minutes of the contest. For an unprepared mind it would be impossible to even read and understand the problem statements in that time, let alone find a correct solution and implement it!' Associate Professor Bartek Klin
Bartek went onto explain that that the students who excel in the contest are those that have an intrinsic mindset for problem-solving.
‘We went to a training camp recently and spent three days straight doing five-hour simulated sessions to prepare for this competition. Naturally when you get to the end of such an intense period you would think you would want to zone out and rest. But these students are so curious to find the solutions that even in their downtime they just start solving programming problems again.’
In the days leading up to the Netherlands competition Bartek said his advice to the teams was to ‘switch-off, sleep well and eat well’ - advice that seems to have resulted in success for Oxford.
The four Oxford teams who competed in the Netherlands were:
‘NewJeans’
- Viktor Kozhuharov (Magdalen, 3rd year CS)
- Harris Leung (Merton, 3rd year M&CS)
- Thien Udomsrirungruang (Keble, 3rd year CS)
‘ShameShame’
- Xingjian Bai (St. John’s, 4th year M&CS)
- Andy van Horssen (St. John’s, 2nd year M&CS)
- Yichen Huang (St. Catz, 4th year CS)
‘MovingUp’
- Ivo Karagyozov (Univ, 4th year CS)
- Maria-Alexa Tudose (Univ, 4th year CS)
- Justas Zelnia (St. Catz, MSc ACS)
‘Alaska with blue’
- Atanas Dimitrov (Hertford, 1st year CS)
- Martin Kopchev (St. John's, 1st year M&CS)
- Georgi Petkov (Hertford, 2nd year CS)
The final scoreboard of the contest and all problem descriptions can be found at https://www.nwerc.eu/main/scoreboard.
Our competitive programming teams are proudly supported by OxFORD Asset Management, a technology driven investment firm.