Le SWERC, prestigieux concours de programmation

SWERC 2021

L’édition 2021 a lieu en ligne samedi 6 et dimanche 7 mars. [site du SWERC].

Organisateurs : Antoine Amarilli, Louis Jachiet (enseignants-chercheurs à Télécom Paris), Marc Jeanmougin (ingénieur de recherche à Télécom Paris), Bertrand Meyer (enseignant-chercheur à Télécom Paris), Pierre Senellart (professeur à l’ENS Ulm)

Les chiffres de participation 2021 sont en croissance :

  • 52 universités,
  • 109 équipes (contre 98 l’an passé) soit 327 étudiants,
  • la part d’étudiantes passe à 12% (contre 6% en moyenne les trois
    dernières années).

SWERC 2021 : A. Amarilli & B. Meyer

Le SWERC, quésaco ?

Le SWERC (South Western Europe Regional Contest) est la déclinaison pour l’Europe du sud-ouest (Espagne, France, Israël, Italie, Portugal, Suisse) du prestigieux concours de programmation compétitive pour étudiants ICPC (International Collegiate Programming Contest). Elle est organisée par l’Institut Polytechnique de Paris et accueillie par Télécom Paris.

 

L’ICPC, un concours ancien, étendu et prestigieux
Le concours de programmation compétitive ICPC a lieu tous les ans depuis 1977. Il promeut la créativité, le travail d’équipe et l’innovation dans la résolution de problèmes algorithmiques et l’écriture de code informatique. Il permet aux étudiants de tester leur capacité à donner le meilleur d’eux-mêmes sous pression. Plus de 50 000 étudiants se mesurent dans le monde entier lors des phases de sélection régionales telles que celle du SWERC.
Une bataille de cerveaux

Chaque équipe doit résoudre un maximum de problèmes algorithmiques en cinq heures en produisant du code répondant parfaitement au problème. Toute solution proposée est instantanément validée ou rejetée par un juge automatique en ligne. Les équipes doivent non seulement faire preuve d’organisation et d’habileté au codage mais aussi recourir à de puissants raisonnements mathématiques, car toutes les approches ne sont pas bonnes et seules les plus rapides sont validées. Les problèmes sont préparés chaque année par une équipe d’une dizaine de juges issus du monde académique (CNRS, Inria, École normale supérieure, Télécom Paris, Université Gustave Eiffel, Université Paris–Saclay) et industriel (Apple, Google, Nomadic Labs).

Les participants
Les concurrents se présentent par équipe de trois étudiants. Ils représentent le fleuron de leur propre université ou école (d’Europe du Sud-Ouest et Israël) et sont sélectionnés en amont par leur propre institution. En 2020, 98 équipes ont concouru, dont 46 françaises.

Paroles de participants 2020

Louis Abraham, étudiant à Polytechnique

L’équipe de Polytechnique est lauréate du SWERC 2019-2020.

Comment avez-vous entendu parler du SWERC ? Pourquoi avez-vous décidé d’y participer ?

Je dois être l’une des personnes qui a participé le plus car je suis venu 4 fois en tout (de 2016 à 2019-2020).

Au début j’étais intéressé par l’algorithmique. Je voyais cela comme la continuité de l’informatique qui était ma matière favorite en prépa MP-Info. J’ai appris les algorithmes sur mon temps libre pendant le stage militaire de première année de l’École polytechnique, sur les conseils d’amis (des membres de France-IOI) qui m’ont également parlé du SWERC. J’ai ensuite assisté aux sessions d’entraînement communes avec d’autres écoles, organisées par Christoph Dürr. Aucune équipe de l’X n’a eu de médaille cette année-là, la mienne est arrivée 39e sur 60.

L’année suivante, j’ai créé un Binet (association d’élèves à l’X) dédié à l’informatique « scientifique » (computer science), qui organisait entre autres des conférences d’intelligence artificielle et une préparation au SWERC. J’étais moins intéressé par mon résultat personnel au SWERC qu’animé par une volonté d’améliorer l’image de l’école. Grâce au soutien du département d’informatique, l’X a remporté une médaille de bronze, la première depuis des années. De plus, il y avait enfin une préparation régulière pour le SWERC.

En 2018, j’étais étudiant au Master’s in Computer Science de ETH Zurich et j’ai été sélectionné dans la seconde équipe d’ETH. Le classement global a été le même pour la troisième année consécutive : première place pour l’ENS Ulm, tandis qu’ETH reportait la deuxième place, plus une médaille de bronze.
Au-delà de ma première médaille, participer au même concours pour une université étrangère a totalement changé ma vision de la programmation compétitive : plus qu’un hobby ou une manière de motiver les élèves, c’est une communauté qui permet de se faire des amis dans toutes les universités du monde. L’un des membres de mon équipe est d’ailleurs devenu mon meilleur ami dans le Master.

Cependant, j’étais toujours déçu de mes résultats et de ceux de Polytechnique. L’année dernière, j’ai décidé de participer une dernière fois, avec un défi : gagner le SWERC. Notre coach, Hang Zhou, avait déjà prévu d’organiser une préparation renforcée grâce à l’attribution de crédits ECTS. Alors que le niveau de base de mon équipe était déjà avancé, nous nous sommes entraînés de manière plutôt intensive, 5 à 10 heures par semaine pendant à peu près 3 mois en équipe, plus des entraînements personnels. Au final, l’X a eu les meilleurs résultats de l’histoire : première place (médaille d’or) et quatrième place (médaille d’argent).

SWERC 2019-2020 : EP Chopper, lauréat
EP Chopper, équipe lauréate du SWERC en janvier 2020

En quoi votre formation est-elle utile à ce concours ?

Tout d’abord, je dirais que mon cursus personnel en mathématiques et informatique théorique me permet d’avoir une approche assez différente et complémentaire par rapport aux étudiants qui ne sont pas français. Je pense que cela a été déterminant lors de mes dernières participations, avec des camarades de nationalités suisse, roumaine et vietnamienne.
Ensuite, la communication est très importante dans un concours limité en temps et en ressources (un seul clavier). Le cursus de l’École polytechnique inculque des valeurs fortes et des compétences en communication et management qui permettent sans doute de faire la différence entre les équipes toutes excellentes en haut du podium.
Enfin, il est important de savoir expliquer des idées efficacement, donc d’être à l’aise en anglais dans une équipe internationale. L’enseignement des langues est très important dans le cursus polytechnicien qui nous encourage à faire des stages ou étudier à l’étranger.
En fait, je pense que la programmation compétitive a surtout beaucoup apporté à ma formation.

Coder des algorithmes de manière concrète est très important pour pouvoir les comprendre et la programmation compétitive permet de dépasser une réticence fréquente qu’ont les étudiants (moi le premier) à coder. Résoudre des problèmes permet aussi de gagner en intuition et en profondeur dans sa compréhension des idées. Enfin, et c’est sûrement le plus précieux, il n’y a pas de meilleure manière d’améliorer ses compétences de communication que de le faire sous la pression d’un concours limité en temps. En tant que capitaine d’équipe, il faut arriver à évaluer la situation et prendre des décisions critiques, le tout en maintenant la confiance mutuelle et la bonne entente.

Comment vous êtes-vous préparé au concours ? Que conseillez-vous aux participant·e·s afin de se préparer pour l’édition à venir ?

Au début, j’ai appris les bases des algorithmes en Python sur le site de France IOI puis sur HackerRank. Pour les nouveaux participants, je conseillerais le livre « Programmation efficace » de Christoph Dürr (mon ancien coach) et Jill-Jênn Vie qui enseigne les algorithmes classiques en Python. Cependant, les meilleures équipes utilisent C++ (surtout pour des raisons historiques) et la plupart des codebooks utilisent ce langage. Il est donc préférable de le maîtriser dans un second temps si on vise les premières places.
Actuellement, mon équipe s’entraîne en faisant des compétitions sur Codeforces. Nous faisons aussi des problèmes de SPOJ ou Timus qui concernent des techniques particulières.

Hang Zhou, enseignant-chercheur à Polytechnique

Hang Zhou est l’entraîneur des équipes SWERC de Polytechnique.

Que conseillez-vous aux participant·e·s afin de se préparer pour l’édition à venir ?

À mon avis, le plus important dans la préparation aux concours de programmation est de s’entraîner dur. Depuis trois ans, nous avons monté trois nouveaux cours sur la préparation au SWERC au département d’informatique de l’École Polytechnique : Modules Appliqués en Laboratoire (MODAL), Projet Scientifique Collectif (PSC), et Enseignement d’Approfondissement (EA), avec en total 17 ECTS. Ces formations, qui couvrent une période de deux ans, permettraient à nos élèves de préparer au SWERC de manière intensive. Nos élèves passent également beaucoup de temps libre sur la programmation, notamment le soir et le week-end. En particulier, des membres de l’équipe Chopper (premier au SWERC’19) s’étaient entraînés jusqu’à Noël, et les membres de l’équipe Rouje (quatrième au SWERC’19) s’entraînaient jusqu’à 4h du matin !

Il est à noter que, à part réussir au SWERC, la préparation aux concours de programmation est utile elle-même pour former des excellents informaticiens. J’ai l’impression que, par le passé, il y avait une tendance en France selon laquelle les élèves les plus intelligents étudiaient les mathématiques. À mon avis, l’informatique est un domaine aussi important que les mathématiques et en plus très utile dans le monde d’aujourd’hui. Il faudrait donc plus de talents pour promouvoir la communauté informatique en France. Les formations sur les concours de programmation aideraient également à attirer des talents vers l’informatique. À l’École Polytechnique, des élèves brillants en mathématiques suivent ces formations intensives sur la préparation au SWERC. C’est une occasion non seulement pour améliorer ses compétences en algorithmique et en programmation, mais aussi pour acquérir une meilleure vision sur l’informatique. En particulier, plusieurs de nos élèves dans ces formations ont été lauréats dans les Olympiades nationales et internationales en mathématiques avant leur intégration à l’X, comme Henry Bambury, Killian Dengreville, Marc Dufay, François Sellier, Thomas Sepulchre, Antoine Stark et Alexandre Thiault. À l’issue de ces formations sur la préparation au SWERC, certains de ces élèves se sont orientés vers l’informatique, certains vont décider plus tard, et j’espère qu’ils vont également contribuer à promouvoir l’informatique en France.

Pierre Gimalac, étudiant à Télécom Paris (vidéo)

Pierre Gimalac fait partie de l’équipe de Télécom Paris participant au SWERC 2019-2020 (arrivée trentième, elle a gagné un prix spécial pour avoir été une des deux plus rapides à résoudre un premier problème).

SWERC Pierre Gimalac

Comment avez-vous entendu parler du SWERC ?

J’ai participé pour la première fois au SWERC 2019 alors que j’étais en Licence à l’université Paris Diderot. Un ami m’a proposé de faire une équipe, je trouvais ça intéressant et nous y avons donc participé.

Pourquoi avez-vous décidé d’y participer ?

J’aime beaucoup la programmation compétitive, je trouve que c’est une activité qui apprend à programmer vite et bien ainsi qu’à résoudre des problèmes complexes d’algorithmique.

Le SWERC est un concours qui regroupe les meilleurs étudiants des université du sud-ouest de l’Europe, c’est donc une bonne opportunité d’affronter des équipes de haut niveau et de représenter l’école.

De plus on nous offre à boire et à manger pendant tout le weekend, et il y a des récompenses pour les meilleurs à la fin, je ne vois pas quoi demander de plus. Par exemple mon équipe avait été la première à résoudre un problème et avait gagné une boite de Legos.

De manière générale l’ambiance est très sympathique et c’est une très bonne expérience, on y apprend également le travail de groupe vu qu’il n’y a qu’un ordinateur par équipe !

En quoi votre formation est-elle utile à ce concours ?

La formation à Télécom est utile d’une part pour le cours obligatoire d’algorithmique en première année, et d’autre part pour le cours d’entraînement aux concours de programmation qui est une option de 2e année.

La vie associative de l’école permet également de se préparer à ce genre de concours: Télécode, le club de programmation compétitive de l’école, organise des cours de manière hebdomadaire ainsi que des concours de programmation de temps en temps, dans l’objectif de préparer les étudiants.

Comment vous êtes-vous préparé au concours ?

Je fais la plupart des concours dont j’entends parler et j’essaie de faire des problèmes pour m’entraîner de temps en temps.

Quelles suites à donner à votre participation ?

Suite à ma première année à Télécom et à ma participation au SWERC, j’ai décidé de relancer Télécode, le club de programmation compétitive de l’école. L’objectif est d’encourager et d’aider les étudiants de Télécom, en particulier ceux de première année, à participer à des concours de programmation.

Que conseillez-vous aux participant·e·s afin de se préparer pour l’édition à venir ?

Participez à des concours de programmation et lisez les annales du SWERC.

 

Retour sur les précédentes éditions du SWERC


Photos et vidéo SWERC janvier 2020 (photos Comète, vidéo Comète et ICPC Live)

SWERC 2020