In this article, I’ve decided to analyze the results of the largest competitive programming contest in the world — ACM ICPC. International Collegiate Programming Contest (ICPC) is a team competition between universities. Teams of three people attempt to solve as many problems as possible. The team that solves the most problems in the shortest time wins the competition. Each year, teams compete in sub-regional contests. The best teams from sub-regional contests advance to the regional level and the best team from the regionals advance to the world finals.

The Ranking

I’ve analyzed the past ten year results to figure out which universities and countries are the best. In this ranking, the results from later years have a higher weight than the results from earlier.

| Rank | University                              | Points |
|------|-----------------------------------------|--------|
| 1. | University of Cambridge | 96914 |
| 2. | Technical University of Munich | 69702 |
| 3. | University of Oxford | 63030 |
| 4. | Karlsruhe Institute of Technology (KIT) | 56824 |
| 5. | KTH - Royal Institute of Technology | 56270 |

Since I currently study in this region, I’ve decided to present this one first. It consists of universities from Belgium, Germany, Denmark, Estonia, Finland, Great Britain, Ireland, Iceland, the Netherlands, Norway, Sweden, and Luxembourg. In this region, the University of Cambridge has been producing multiple great teams each year. All the teams they send have a certain quality, which helps their overall score. I am pleasantly surprised that my university took second place, but I can imagine why. The selection for regionals at TUM is pretty competitive and teams are formed based on months of worth of individual contest results.

| Rank | University                        | Points |
|------|-----------------------------------|--------|
| 1. | University of Warsaw | 47274 |
| 2. | University of Wroclaw | 37388 |
| 3. | Jagiellonian University in Krakow | 35886 |
| 4. | University of Zagreb | 33526 |
| 5. | Charles University in Prague | 26066 |

The Central European region includes Austria, Croatia, Czech Republic, Hungary, Poland, Slovakia and, Slovenia. Here, the University of Warsaw is the undisputed king. What’s also notable is Poland taking the first three places. Personally, I’ve met people from these top3 universities at Central European Regional Contest and I can tell you these people start training for ICPC early. Most of these people are high-school math/programming prodigies. When they go to university they are in an environment where many teams take ICPC training seriously.

| Rank | University                           | Points |
|------|--------------------------------------|--------|
| 1. | Universitat Politècnica de Catalunya | 36808 |
| 2. | ETH Zürich | 31520 |
| 3. | Ecole Polytechnique | 28346 |
| 4. | École Normale Supérieure de Paris | 23772 |
| 5. | Scuola Normale Superiore | 21664 |

The Polytechnic University of Catalonia sends each year multiple teams that rank at the top of the leader-board. Their overall first rank in the region is impressive as they defeat ETH which certainly attracts very talented students.

World Finals

Before revealing the top 10 universities at ACM ICPC overall, I wanted to show you how are the nationalities represented in the top 50 leader-board.

Countries by number of universities in the top 50 leader-board

In the world of competitive programming, China and Russia have been leading the way in the past 10 years. EU is not too far behind. In great part thanks to Poland. USA is also not too far behind thanks to the universities that attract international talent such as MIT.

| Rank | University                               | Points |
|------|------------------------------------------|--------|
| 1. | University of Warsaw | 80845 |
| 2. | Shanghai Jiao Tong University | 79284 |
| 3. | The University of Tokyo | 79267 |
| 4. | Moscow State University | 78613 |
| 5. | Peking University | 76460 |
| 6. | Tsinghua University | 75126 |
| 7. | Massachusetts Institute of Technology | 73415 |
| 8. | Moscow Institute of Physics & Technology | 68306 |
| 9. | National Taiwan University | 66248 |
| 10. | St. Petersburg State University | 66185 |

And the overall winner is the University of Warsaw! This university sends each year a team that consistently gets a medal at the finals. In the top 10, we see even bigger dominance from the Chinese and Russian universities.

Since the end of the cold war, China and Russia have been dominating ACM ICPC. I would say that this is because these countries retain most of their talent. China and Russia have been dominant in the high school International Olympiad in Informatics (IOI) as well. Once these talented sports programmers get into university, they will be in an environment where ICPC training is encouraged.

When I was training at the Petrozavodsk Programming Camp in Russia, we were training all day, as there was not much else to do. This was a perfect environment for competitive programming practice. The real question is how are Russia and China consistently winning the high school Olympiad? I am unfortunately not the right person to answer this.

ACM ICPC competition photo from pxhere

I do however believe that these results are slightly biased towards countries with higher population. If the statistics were accounting for population, we might have countries like Switzerland, Singapore, or Taiwan being the best.

Despite claiming most of the top universities in the university rankings (such as qsuniversityrankings), universities from the USA fall short to universities from China and Russia. I believe that there are two reasons for that.

Firstly, the university rankings do not perfectly reflect the quality of students and the quality of teaching at these institutions. They focus on research and facilities. They focus on the number of international students and since most of the world speaks English, the universities from English-speaking countries have an advantage in attracting international students and faculty. An example could be the University of Edinburgh, which ranks higher than most if not all Asian universities. However, I simply refuse to believe that the University of Edinburgh, despite being a great institution, has better students than Tsinghua University or The University of Tokyo. In this regard, the rankings give a false sense of excellence to the American institutions.

Secondly, performing well at ICPC is not a priority for US universities. This is similar to most of Europe. Harvard, MIT, or Stanford definitely attract the best. However, the competitive programming training environment at these institutions is almost non-existent to the Russian and Chinese counterparts. The benefits of spending most of the day working on difficult problems are small. On the other hand, once you are at Stanford your goals might be getting an internship, research experience, or starting your startup rather than being top at competitive programming.

Methodology

In this section, I will explain how I’ve calculated the points. First, we take into account the last 10 years of the region. To be specific, from 2010 to 2019. The points are calculated by the following form:

where i = 1 corresponds to the year 2010 and i=10 corresponds to the year 2019. This causes the later years to have higher weight. the value p_points is calculated by the following formula:

where k_teams represents the number of teams the university sent that year to the regional, n_participants is the overall number of participating teams and p_i represents the place of the i-th team from the university. We square the difference between the position overall number of participants because we want the teams that finished in the top position to contribute to a higher degree to the overall score. The sum of the points each team obtained is then finally divided by the square root of the number of teams the university sent. If we didn’t do the square root, it would be a simple average and we don’t want that. Because that would mean an advantage for universities that send only their best team. Also, we didn’t want the universities that sent the most teams to be in the advantage as well. This seems like a compromise that gives the most points to universities that send multiple great teams.

The code is available at https://github.com/JahodaPaul/ACM-ICPC-analysis

Machine Learning researcher and a student at Technical University of Munich