Un algorithme décrit les opérations à effectuer pour résoudre un problème. Par exemple pour trier un ensemble de nombres on peut utiliser l'algorithme suivant : extraire la plus petite valeur de l'ensemble, puis recommencer le processus sur ce qui reste, et ce jusqu'à ce que l'ensemble soit vide. Une fois qu'on a un algorithme suffisament efficace, on peut le traduire dans un langage de programmation et obtenir un programme qui résoud effectivement le problème.
Maîtriser l'algorithmique, c'est être capable de trouver par soi-même des algorithmes résolvant des problèmes nouveaux. Pour atteindre ce but, nous vous proposons des séries d'exercices vous amenant à réfléchir et donc à progresser. Vous trouverez sur notre site d'entraînement :
- plus de 500 problèmes de tous niveaux, classés par thèmes.
- un système d'évaluation automatique qui teste vos solutions.
- des corrections détaillées, pour clarifier les notions découvertes.
- des cours centrés sur les méthodes de réflexion.
- un système de conseils automatiques, pour ne pas rester bloqué.
- des entraîneurs qui vous conseillent, et répondent à toutes vos questions.
Ce document est là pour vous donner une petite idée de la manière dont cela se passe en pratique.
À partir de la page principale de l'entraînement à l'algorithmique, vous pouvez accéder à toutes les épreuves auxquelles vous avez accès.
Prenons par exemple l'épreuve Calculs géométriques, qui regroupe plusieurs sujets dont les histoires suivent le thème de l'aéroport.
Regardons maintenant de quoi se compose un sujet. Celui-ci vous demande de déterminer le plus court chemin entre l'entrée et la sortie d'un labyrinthe.
Pour résoudre le sujet, votre algorithme doit être suffisement efficace dans le sens où il doit s'exécuter en respectant les limites de temps et de mémoire spécifiées.
Le sujet décrit le format des données que votre programme doit lire et écrire.
Vous disposez aussi d'un exemple d'une entrée et de la sortie correspondante.
En bas du sujet, vous trouverez trois boutons : tester, soumettre, et demander un conseil.
Voici la page à partir de laquelle vous pouvez soumettre votre solution. Il suffit de coller votre code source puis de clicker sur votre langage.
Évaluation de votre solution
Pour évaluer votre solution, notre serveur compile votre programme et l'exécute sur une série de fichiers tests. Pour chaque fichier test, il compare la sortie de votre programme avec la sortie attendue pour ce test. Pour réussir un test, il faut que votre programme :
- ait affiché exactement la sortie attendue,
- n'ait pas dépassé la limite de temps ou la limite de mémoire,
- n'ait pas planté en cours d'exécution.
Voici le résultat de l'évaluation d'une solution qui marche sur les deux premiers tests, qui donne un résultat faux sur les deux suivants, et qui dépasse la limite de temps sur les trois derniers.
Et voici maintenant le résultat d'une évaluation d'une solution validée.
Pour chaque sujet nous vous proposons une correction détaillée contenant l'idée, le pseudo-code et le code complet des différentes solutions possibles. Voici une capture d'écran (brouillée) du début d'une correction :
En plus de tout ce que vous apprendrez en cherchant à résoudre les sujets par vous-même et en lisant les corrections attentivement, vous pourrez progresser en lisant les cours généraux que nous vous proposons.
Vous pouvez visualiser votre progression à partir du lien dans le menu intitulé Voir ma progression accessible lorsque vous êtes loggés. Le graphique montre le nombre de sujets résolus en fonction du temps. Voici un exemple d'une belle courbe de progression.
Le site est conçu pour vous aider à progresser rapidement et de manière complètement autonome. Cependant, si vous êtes bloqué sur un sujet, des entraîneurs sont à votre disposition pour vous conseiller et vous aider à continuer. N'oubliez pas de préciser votre login dans vos messages.
Vous pouvez dès maintenant lire les sujets des épreuves publiques et jeter un oeuil aux cours généraux. Par contre pour soumettre des sujets et suivre votre progression, il faut d'abord vous inscrire. L'inscription est gratuite et ne prend qu'une minute.
Si vous êtes déjà convaincu(e), allez directement à la page d'inscription.
Sinon, continuez votre visite sur la page de l'entraînement à l'algorithmique.
Bonne progression en algorithmique !
L'équipe France-IOI