# Codeforces

Codeforces (en russe : Кодефорсес) est une plateforme Web dédiée aux concours et défis de programmation informatique. Codeforces est maintenu par un groupe de programmeurs compétitifs de l'université d'État en technologie de l'information, mécanique et optique de Saint-Pétersbourg ITMO, dirigée par Mikhail Mirzayanov.
Depuis 2013, Codeforces affirme dépasser Topcoder (en), en termes de concurrents actifs. En 2019, il comptait plus de 600 000 utilisateurs enregistrés. Codeforces et d'autres sites Web similaires sont utilisés par certains programmeurs sportifs, comme Gennady Korotkevich, Petr Mitrichev, Benjamin Qi et Makoto Soejima, et par d'autres programmeurs intéressés par les défis ou souhaitant faire reconnaître leurs compétences en programmation$^,$$^,$.

## Contenus

La plateforme Codeforces est généralement utilisée lors de la préparation de compétitions de programmation$^,$$^,$$^,$ pour lesquels elle offre les fonctionnalités suivantes :
* concours courts (2 heures), appelés « Codeforces Rounds », organisés environ une fois par semaine$^,$ ;
* concours éducatifs (2 à 2,5 heures, avec une période de hacking de 12 heures (24 heures avant le Round 45), organisés 2 à 3 fois par mois ;
* un concours Défiez/piratez les solutions des autres concurrents ;
* résolution des problèmes des concours précédents, à des fins pédagogiques ;
* fonctionnalité « Polygone » pour créer et tester des problèmes ;
* réseautage social (via des blogs publics internes).

## Système de notation

Les concurrents sont évalués par un système similaire au système de notation Elo. Il n'y a généralement pas de prix pour les gagnants, bien que plusieurs fois par an des concours spéciaux soient organisés, au cours desquels les candidats les plus performants reçoivent des t-shirts.
Certains concours plus importants sont hébergés sur la base Codeforces, parmi lesquels :
* « The Lyft Level 5 Challenge 2018 », proposé par Lyft ;
* « Microsoft Q# Coding Contest — Summer 2018 » proposé par Microsoft.
Les concurrents sont classés selon leurs notes. Depuis mai 2018, ceux ayant des notes comprises entre 1900 et 2099 peuvent concourir dans les deux Divisions de concours : Div1 et Div. 2. Dans le même temps, une Div. 3 a été créé pour les utilisateurs ayant moins de 1 600 points, et une Div. 4 accueille ceux qui ont moins de 1 400 points.
| Plage de notation | Titre | Division |
| ≥ 4000 | T ourist | 1 |
| 3000 — 3999 | L egendary Grandmaster | 1 |
| 2600 — 2999 | International Grandmaster | 1 |
| 2400 — 2599 | Grandmaster | 1 |
| 2300 — 2399 | International Master | 1 |
| 2100 — 2299 | Master | 1 |
| 1900 — 2099 | Candidate Master | 1/2 |
| 1600 — 1899 | Expert | 2 |
| 1400 — 1599 | Specialist | 2/3 |
| 1200 — 1399 | Pupil | 2/3/4 |
| ≤ 1199 | Newbie | 2/3/4 |

## Histoire

Codeforces a été créé par un groupe de programmeurs compétiteurs de l'université d'État de Saratov dirigé par Mike Mirzayanov.
Il s'agissait d'y résoudre des tâches difficiles, et de participer à des compétitions de codage informatique.
Le premier Codeforces Round a eu lieu le 19 février 2010 avec 175 participants.
Fin août 2022, plus de 800 épreuves avaient été organisées, avec en moyenne plus de 9 000 concurrents inscrits par épreuve.
Avant 2012, les « Codeforces Rounds » étaient intitulés « Codeforces Beta Rounds » pour indiquer que le système était encore en cours de développement.
Le champion toutes catégories est le programmeur biélorusse Gennady Korotkevich (Генадзь Караткевіч, Hienadź Karatkievič, russe : Геннадий Короткевич ; né le 25 septembre 1994) est un programmeur sportif compétitif qui a rempoté de nombreuses compétitions dès l'âge de 11 ans, champion du monde 2013 et 2015 du Concours International de Programmation Collégiale ACM et - en octobre 2023, le programmeur le mieux classé sur Codeforces (et d'autres plateformes telles que CodeChef (en), Topcoder (en), AtCoder (ja) et HackerRank. En janvier 2022, il atteint une note historique de 3 979 sur Codeforces, devenant le premier à dépasser la barre des 3 900. Les défis de Codeforces servent à évaluer les capacités de codage des intelligences artificielles génératives (le modèle o1 d’OpenAI a ainsi battu en 2024 l'équivalent de 93 % des participants humains lors de compétitions simulées). En raison de ces nouvelles capacités de l'intelligence artificielle, Codeforces a en 2024 décidé de limiter ou d'interdire l'utilisation de l'intelligence artificielle dans ses concours de programmation.

### Codeforces et intelligence artificielle

Codeforces produit des défis de codage qui servent à évaluer le degré de performance de certaines intelligences artificielle s. Les problèmes et défis lancés par Codeforces servent aussi à évaluer les capacités de codage des intelligences artificielles génératives (le modèle o1 d'OpenAI a ainsi en 2024 atteint le score jusqu'alors inégalé de 1807 sur l'échelle Elo, ce qui signifie qu'il a surpassé l'équivalent de 93 % des participants humains lors de compétitions simulées).
Mais dans les concours entre humains, pour des raisons d'éthique de la compétition et en particulier d'équité, Codefordes a, en 2024, introduit une règle interdisant toute utilisation d’outils d’intelligence artificielle (notamment les intelligences artificielles génératives (IAg comme ChatGPT, Claude, et d’autres systèmes de génération de code), décision prise en raison des progrès récents faits par les réseaux neuronaux maintenant capables de dépasser l'Homme dans de nombreux défis de programmation complexes. Cette interdiction pourrait être difficile à appliquer en raison des contournements possible de cette règle, notamment grâce à l'intelligence artificielle.

## Utilisation académique

Codeforces est recommandé aux étudiants et enseignants par de nombreuses universités$^,$.
Selon Daniel Sleator, professeur d’informatique à l'université Carnegie-Mellon, les compétitions de programmation sont précieuses dans l’enseignement de l’informatique, car les concurrents y apprennent à adapter les algorithmes classiques à de nouveaux problèmes, améliorant ainsi leur compréhension des concepts algorithmiques. Des problèmes de Codeforces sont par exemple utilisés dans le cours n$^o$ 15-295 de l’Université Carnegie Mellon (cours intitulé Competition Programming and Problem Solving, conçu pour enseigner les techniques et compétences nécessaires pour résoudre des problèmes algorithmiques dans des concours de programmation).
À l'université nationale de Singapour, la note Codeforces est également utilisée comme critère d'admission pour l'inscription à un cours de 4 unités, CS3233 Competitive Programming, car les étudiants doivent obtenir une note d'au moins 1559 pour pouvoir s'inscrire au cours.

## Plateformes alternatives

Les autres grandes plateformes de ce type sont l’International Collegiate Programming Contest (ICPC), Don Mills Online Judge (plateforme open-source aussi connue par son acronyme DMOJ), CodeChef et au Japon : AtCoder.