The Russian capital has been selected as the venue for the International Collegiate Programming Contest in June 2020. ICPC is the oldest and most prestigious competitive programming event worldwide. Next year’s finals will be organized by the Moscow Institute of Physics and Technology with the support of RDI Creative.

Photo. MosCode programming festival, March 17, 2019. Credit: Nikita Kononenko

The announcement was made at the Alfândega Congress Center in Porto, Portugal, where this year’s ICPC finals take place.

Competing bids to host the 2020 finals were submitted by Shanghai, Sydney, and Orlando. ICPC Executive Director Bill Poucher, who is also a professor at Baylor University and a member of the Association for Computing Machinery, congratulated Moscow on being selected: “We are here at ICPC 2019 Porto meeting the MIPT delegation planning ICPC 2020 Moscow for June 2020. We will bring together the most gifted students of computing who have the capability of inventing software solutions to the problems of tomorrow. I look forward to having the greatest World Finals in ICPC history in Moscow when I have the opportunity to welcome everyone by saying in Russian ‘Dobro pozhalovat!’”

Moscow has never been the venue of ICPC, though the competition was previously held in St. Petersburg in 2013 and in Yekaterinburg the following year.

The finals are traditionally a five-day event welcoming around 450 students who passed the selection, along with their coaches, supervisors of regional ICPC contests, representatives of universities and companies, and public officials — a total of about 1,500 delegates. Host countries typically showcase national culture and arrange sightseeing opportunities.

“Russia has a close-knit community furthering ICPC and olympiad programming in general. For seven years, we have advanced Moscow Workshops ICPC, an international educational project originally based at MIPT. It offers an opportunity for students from across the world — even from smaller universities — to train side-by-side with contest champions and fulfill their talent. More than 2,200 students from 205 universities have already taken our training programs all over the world. Each of the 10 teams representing Russia in this year’s finals prepared for this at Moscow Workshops. It is a great honor for us to host the finals in Moscow. With the support from the government and the industry, we intend to hold the competition up to the highest standards,” said Alexey Maleev, ICPC 2020 Moscow director, MIPT vice rector, and Moscow Workshops ICPC founder.

Held annually, ICPC features several stages: the quarterfinals, the regional contests equivalent to semifinals, and the global finals. Some regions, such as Moscow, hold an additional qualifying round. The championship brings together the most talented students from all continents.

The participating countries are divided into nine major regions, each holding its own finals. The 2019 championship saw participants from 418 universities in North America, 547 in Latin America, 302 in Europe, 250 in Africa and the Middle East, 342 in East Asia, 491 in West Asia, 336 in Asia Pacific, and 17 in South Pacific. The Northern Eurasia finals featured teams from 281 universities in Russia, Belarus, Latvia, Lithuania, Kyrgyzstan, Uzbekistan, Kazakhstan, Tajikistan, Georgia, Armenia, and Azerbaijan.

ICPC was established in 1977 in the U.S. Today, it brings together students representing over 3,000 universities from 110 countries. Competitions are staged at 530 venues, and the overall number of students participating in the championship every year is more than 320,000. About 5,500 coaches are engaged in preparing them.

Based on the rules of ICPC, the competition is open for teams of three undergraduate, graduate, or doctoral students of one university, aged 25 or younger. Teams have five hours to solve between eight and 13 algorithmic problems. The programming languages used are C++, Java, Python, and Kotlin. One day prior to the finals, a full run-through is held to check the equipment and the systems used in tests.