International Collegiate Programming Contest

concours mondial universitaire de programmation compétitive

L’International Collegiate Programming Contest (abrégé en ICPC) est un concours annuel de programmation informatique compétitive, ouvert aux étudiants. La première finale est organisée en 1977 à Atlanta (Géorgie) par l’Association for Computing Machinery (ACM)[1]. Elle confronte uniquement des universités américaines.

Logo du concours

À partir de 1990, la participation est élargie à des universités non américaines[1]. Les concurrents proviennent de tous les continents. La compétition est découpée en étapes régionales puis en finale mondiale. Elle est ainsi animée chaque année par près de 10 000 bénévoles, 5 000 cadres, 60 000 étudiants issus de 3 450 universités dans 111 pays[2]. La fondation ICPC en assure la gestion. Son siège est hébergé de 1989 à 2021 par la Baylor University[3]. Le concours est placé sous l’égide de l’ACM jusqu’en 2018[4].

Principe

modifier

Le concours se déroule par équipe de trois étudiants rattachés à un même établissement universitaire. Un membre du personnel du dit établissement, distinct des membres de l’équipe, est désigné pour assurer l’inscription de la dite équipe et pour certifier le statut de ses membres. Il joue souvent le rôle complémentaire de tuteur (coach). Chaque équipe opère sur un seul ordinateur de configuration identique pour toutes les équipes[5],[6].

Lors de la compétition, une dizaine de problèmes de nature algorithmique est soumise aux équipes. Ces dernières disposent d’une durée de cinq heures pour tenter d’en résoudre le plus grand nombre. En pratique, la résolution d’un problème consiste à écrire un programme en langage C, C++, Java, Python ou Kotlin. Les équipes peuvent tester leur programme sur un ou plusieurs jeux de données fournis avant de le soumettre au jury.

Le programme proposé (run) est alors vérifié de manière automatique à partir d’un jeu de données détenu exclusivement par le jury. Le verdict indique si le programme est accepté ou rejeté.

Le rejet d’un programme peut être déclaré par le jury pour l’une des quatre raisons suivantes : erreur de compilation (compilation error), erreur d’exécution (run-time error), délai expiré (time-limit exceeded), réponse incorrecte (wrong answer). L’équipe concernée peut soumettre une nouvelle version du programme jusqu’à la fin de la compétition. Dans ce cas, une pénalité de 20 minutes est appliquée par tentative avortée, sauf pour les erreurs de compilation.

À l’issue de la compétition, le classement des équipes est établi selon deux critères : d’abord le nombre de problèmes résolus, puis le temps total de résolution des problèmes résolus. Ce second critère tient compte des éventuelles pénalités de temps pour chaque problème résolu par une équipe.

Organisation

modifier

Le concours est organisé en plusieurs étapes. La première phase consiste en une sélection à l’échelle régionale, une région pouvant couvrir plusieurs pays. En l’occurrence, l’édition de l’année 2017-2018 dénombre 69 régions[7]. Certaines sélections régionales fédèrent plusieurs sous-sélections plus locales. Une centaine d’équipes est ainsi sélectionnée pour la finale qui a lieu chaque année dans une université différente.

Entre 2000 et 2018, quatre universités se distinguent : l'Université d'État en technologie de l’information, mécanique et optique de St-Pétersbourg ITMO en Russie[8] remporte 7 fois le concours, l'Université d'État de Saint-Pétersbourg 4 fois, l’Université d'État de Moscou et l'Université Jiao-tong de Shanghai en Chine trois fois chacune[9]. Ces victoires correspondent à des pays où le concours a une reconnaissance importante[10].

Participants célèbres

modifier

Beaucoup d'anciens finalistes de l'ICPC ont réalisé des exploits dans l'industrie du logiciel et la recherche. On peut citer Adam D'Angelo, ancien CTO de Facebook et fondateur de Quora, Nikolaï Dourov, cofondateur de Telegram, Matei Zaharia, créateur d'Apache Spark, Tony Hsieh, PDG de Zappos et Craig Silverstein, premier employé de Google.

Notes et références

modifier
  1. a et b (en) Marsha Poucher, « The Early Years : World Finals Champions », Palmarès des éditions ACM ICPC de 1977 à 1997, sur icpc.global, (consulté le )
  2. (en) ICPC Foundation, « ICPC International Collegiate Programming Contest », Présentation synthétique (consulté le )
  3. (en) ICPC Foundation, « ICPC Fact Sheet : The 2025 ICPC World Finals » [PDF], sur icpc.global, (consulté le )
  4. (en) ACM ICPC, « ICPC Fact Sheet : The 42nd Annual World Finals of the ACM International Collegiate Programming Contest (ICPC) » [PDF], sur Baylor University, (consulté le )
  5. (en) ICPC, « World Finals Rules : 2024 ICPC World Finals Rules - Astana », Règlement des finales mondiales, sur icpc.global, (consulté le )
  6. (en) ICPC, « Regional Rules : ICPC Regional Rules for Regionals 2024/25 », Règlement des étapes régionales, sur icpc.global, (consulté le )
  7. (en) « ICPC Regional Results : Year 2017-2018 », sur icpc.global (consulté le )
  8. (en) « ICPCWiki : History », Histoire du concours, sur Baylor University, (consulté le )
  9. (en) « ICPC World Champion Hall of Fame », sur icpc.global (consulté le )
  10. (en) « Transcript of Meeting with Russian Students Who Won the ACM International Collegiate Programming Contest », Verbatim de l’entretien du Président russe Dimitri Medvedev avec les étudiants russes lauréats de la finale ACM ICPC 2009, Présidence de Russie, (consulté le )

Voir aussi

modifier

Articles connexes

modifier

Liens externes

modifier