Jour 4 – Compétitions de code

Aujourd'hui, je vole m'inspire du travail d'Alexis Comte et Stéphane Henriot. Mais surtout, je casse le combo « …tion du/des … de … » de mes intitulés jusqu'à présent :

Initiation à la programmation

Hour of Code

Pendant cette semaine, il y a Hour of Code. Il s’agit d’un mini-tutorial pour jouer avec des blocs et s’initier à la programmation. Alors que j’écris ces lignes, 68 millions de gens ont essayé une heure de code, ce qui est un nombre plutôt raisonnable.

Leur dernière idée, que je trouve géniale : « Apprends à coder avec Anna et Elsa de Frozen ! »

Castor informatique

Si vous êtes un enseignant au collège ou au lycée, vous serez sans doute intéressé par le Castor informatique, qui a lieu début novembre chaque année, et dont la dernière édition a attiré 228 324 élèves dont 49 % de filles. Voici un exemple d’exercice :

Fais 51 à l'aide de cette calculette ne comportant que les boutons +1 et ×2. Essaie d'utiliser le moins de boutons possible.
0

Nombre de boutons utilisés : 0

Cela permet de donner une idée de thèmes en informatique tels que la représentation en binaire, l’optimisation (plus court chemin), et ce sans que les élèves aient besoin de savoir coder. Courez donc voir d’autres exemples d’exercices sur leur site !

Concours d’algorithmique

Voici une liste non exhaustive de concours pour s’entraîner en programmation efficace, rédigée par nos soins.

Codeforces

  • Python autorisé
  • Excellents problèmes
  • Concours réguliers
  • Le plus complet (mathématiques, programmation dynamique, graphes, chaînes de caractères…)
  • Possibilité en concours de hacker le code d’un autre
  • Serveur instable
  • Héberge concours annuels tels que CROC, Abby Cup
  • Blogs actifs
  • Téléchargement possible des sources des autres, après chaque épreuve

CodeChef

  • Python autorisé… mais impossible de faire accepter autre chose que du C, du C# ou du Java
  • Concours courts et longs, réguliers (mensuels)
  • Combinatoire, géométrie, graphes, chaînes de caractères
  • Forum pour discuter des problèmes
  • Téléchargement possible des sources des autres, après chaque épreuve

Prologin

J’en ai déjà dit beaucoup sur mon blog.

  • Python autorisé
  • Concours pour les -20 ans seulement
  • Concours annuel (principalement national, assez bas niveau), avec demi-finale algo (papier et machine) et finale sur IA
  • Entraînement libre
  • Programmation dynamique, flots, graphes, tris...
  • Forum (principalement utilisé par les russes, japonais et américains)

HackerRank

  • Python autorisé (une vingtaine de langages en tout)
  • Des concours réguliers
  • Un peu de diversité (algo, CodeGolf, AI, …)

France-ioi

  • Cocorico
  • Python autorisé
  • Entraînements et concours principal pour les non bacheliers principalement
  • Concours [Algoréa] bas niveau de temps en temps (bi-annuels ?)
  • Cours/entraînement guidé
  • Géométrie algorithmique, programmation dynamique, flots, graphes, tris...
  • Système d’aide à la résolution

USACO

  • C/C++/JAVA/PASCAL
  • Cours/entraînement guidé
  • Concours mensuels avec Python autorisé ?

Google Code Jam

  • Tous langages autorisés
  • Concours à plusieurs rounds une fois par an
  • 24 h pour le round de qualification, 2 h 30 pour le reste des rounds
  • Téléchargement possible des sources des autres, après chaque épreuve
  • Sans doute le « meilleur » concours d’algorithmique (d’excellents problèmes chaque année)

Facebook Hackercup

  • Tous langages autorisés
  • Concours à plusieurs rounds une fois par an
  • Inspiré de Google Code Jam
  • Il y a déjà eu problèmes de sécurité au niveau des soumissions, mais c’est parce que le concours est jeune
  • Téléchargement possible des sources des autres, après chaque épreuve
  • Très difficile de consulter les archives

TopCoder

  • Python autorisé (depuis peu de temps)
  • Nombreux thèmes de compétitions (Marathon Match, Algorithm Match, autres...)
  • Utilisation d’une applet java obligatoire
  • Site web austère
  • Principalement problèmes à résolutions gloutonnes et de programmation dynamique (théorie de graphe, chaînes de caractères...)
  • Hacks à la fin de la phase de code (problèmes résolus ou pas)
  • Concours à plusieurs rounds une fois par an (OpenTCO)
  • Téléchargement possible des sources des autres, après chaque épreuve

ProjectEuler

  • Python autorisé (éxécution locale, tout autorisé, en fait)
  • Nouveaux problèmes régulièrement
  • Une seule instance par problème
  • Différents challenges/classements (vitesse de résolution, résolution de suites particulières, etc.)
  • Forum pour échanger avec les autres sur les problèmes résolus (ou simplement rire en lisant les codes J)

Défi Turing

  • Très fortement inspiré de ProjectEuler
  • Francophone
  • Assez simple pour l’instant, à destination des lycéens
  • Pas encore de forum Un forum tout neuf !

Internet Problem Solving Contest

  • Concours annuel
  • On peut participer seul ou en équipe (jusque 3 ?)
  • De nombreux problèmes, TRÈS variés
  • À peu près tout autorisé
  • WTF

ACM-ICPC

  • Payant, diverses contraintes sur l’âge/les études, il faut participer pour une école (pas plus de 3 équipes par école)
  • C, C++ ou Java
  • Droit à la doc et un poly de 25 pages
  • Concours annuel
  • Qualifications par zones (Europe du Sud Ouest pour nous), puis finale mondiale
  • Haut niveau (concours mondial)
  • Par équipes de 3 (un seul clavier)
  • Problèmes très diffusés, voir par exemple ( https://icpcarchive.ecs.baylor.edu/ et http://acm.hit.edu.cn/ [et SPOJ, et UVA Online Judge, …])

UVA Online Judge

  • C, C++, Java ou Pascal
  • De nombreux problèmes, rangés par chapitres
  • De nombreuses stats
  • Concours parfois (live des ACM-ICPC, etc.)

Sphere Online Judge (SPOJ)

  • Python autorisé (beaucoup de langages)
  • De nombreux problèmes, plusieurs catégories
  • Forum pour discuter de plein de choses

Codin’Game

  • Python autorisé (de plus en plus de langages)
  • Plusieurs épreuves par an
  • Aspect recrutement, possibilité de soumettre son profil à des entreprises (NINTENDO !!11), etc.
  • Épreuves permanentes ?
  • Évaluation rapide et relativement détaillée

Ressources

École polytechnique

Autres liens