Ce site présente une initiation à l'algorithmique sous forme d'une application Web interactive   éducAlgo   qui propose de résoudre des exercices de difficultés variées.

On trouvera dans la rubrique     Exercices     de nombreux exemples classés par thèmes

Vous pouvez télécharger le manuel complet de l'utilisateur :   educAlgoManuel PDF

éducAlgo   un logiciel d'initiation à l'algorithmique au travers d'exercices interactifs

Pour chaque exercice, le logiciel propose des outils spécialement adaptés à l'exercice, en petit nombre, pour écrire, exécuter et mettre au point un algorithme résolvant le problème.

Chaque exercice comporte une solution exécutable, et éventuellement des aides. Lors de l'exécution, on peut examiner une trace des calculs pour analyser le déroulement.

L'édition se fait avec une interface très simple à base de boutons minimisant les manipulations, permettant facilement des corrections. L'utilisation ne nécessite pas la connaissance préalable d'un langage de programmation et les instructions sont rédigées en français. L'objectif du logiciel est la familiarisation avec les notions de base (variables, affectation, test, boucle) sans chercher la technicité, en se limitant à des exemples simples pour la plupart.

Un logiciel organisé autour d'exercices

éducAlgo a d'abord pour particularité d'être organisé autour d'une liste d'exercices, et ensuite de présenter pour chaque exercice un jeu d'instructions réduit, qui peut changer à chaque exercice, et qui permet de traiter l'exercice. L'utilisateur a ainsi à chaque fois sous les yeux la totalité du langage utile, soit au plus une vingtaine de boutons.

Cette organisation a pour but de minimiser les détails techniques de l'écriture d'un algorithme (utilisation d'un éditeur de texte et d'un environnement de programmation, apprentissage d'un langage de programmation) pour concentrer la réflexion sur la conception et la logique de l'algorithme.

Des objectifs pédagogiques limités aux notions de base

Les notions de base spécifiques à l'algorithmique et vraiment nouvelles pour un débutant sont celles de variable, d'affectation, de test et de boucle. Pour éducAlgo , le but pédagogique est d'aider les débutants à découvrir et maîtriser ces notions, et cela au travers de la résolution de problèmes. L'algorithmique présente bien sûr d'autres concepts et d'autres difficultés, mais cela n'entre pas dans le cadre des objectifs pédagogiques. Le logiciel ne se veut pas un outil universel, mais simplement une activité pédagogique parmi d'autres, avec des objectifs précis et bien délimités.

Un choix d'exercices prédéfinis

Les exercices prédéfinis ont été choisis intentionnellement simples (relativement) et donnant lieu à des algorithmes courts (une dizaine de lignes, une vingtaine de clics, souvent moins). Il s'agit d'une initiation pour de jeunes débutants ne maîtrisant pas encore toutes les subtilités de l'abstraction et du langage formel. Un des objectifs est justement d'améliorer cette maîtrise, sans commencer par supposer qu'elle est acquise.

On n'accumule pas toutes les difficultés à la fois. L'important est de se familiariser avec la pensée algorithme et principalement avec les notions de variable et d'affectation qui obligent à raisonner sur les changements d'état d'une machine au cours du temps, et à utiliser ces changements et les planifier pour obtenir un résultat donné. Tout cela s'exprimant dans un langage formel qu'il faut utiliser avec rigueur pour arriver à agir sur la machine, et qui impose des contraintes d'expression rappelant qu'il ne suffit pas d'exprimer des intentions formulées de manière vague pour qu'elles se réalisent.

Un environnement simple pour rédiger puis exécuter des algorithmes

En algorithmique, La construction d'un algorithme quelconque, même simple, n'est jamais immédiate et il faut souvent procéder par essais et erreurs. Dans éducAlgo, les manipulations d'édition (insertion, suppression, déplacement) sont suffisament simples et peu coûteuses pour que cette démarche soit possible facilement, sans pénaliser l'utilisateur.

Chaque exercice fournit des aides, des indications et une solution. Cela permet de ne pas rester bloqué face à un problème et aussi de comparer les résultats de l'exécution de l'algorithme en cours de mise au point aux résultats corrects attendus (ce que ne propose pas en standard un langage de programmation classique).

Pour aider la mise au point et la compréhension, chaque exécution peut être assortie d'une trace montrant sous forme de tableau les valeurs des différentes variables au cours de chaque étape. Ce tableau se présente sous une forme familière analogue à celle d'un tableur, ce qui permet des comparaisons entre la version éducAlgo d'un algorithme et sa version tableur, lorsque celle-ci est concevable. L'algorithme apparaît alors comme une abstraction des calculs faits avec le tableur.

Un logiciel libre que les auteurs de sites peuvent télécharger et adapter à leurs besoins personnels

éducAlgo est fourni en standard avec une liste d'exercices prédéfinis, mais des outils sont fournis pour rajouter des exercices. Les auteurs d'exercices peuvent alors utiiser le logiciel comme support de leurs options pédagogiques personnelles, par le choix des exercices mais également par le choix des outils qu'ils décident de fournir aux élèves pour résoudre tel exercice. En effet, pour un même énoncé d'exercice, les difficultés et notions abordées peuvent changer suivant les outils mis à la disposition des élèves. D'ailleurs certains exercices prédéfinis utilisent cette technique pour présenter différentes méthodes pour un même exercice.

Il est possible aux auteurs d'exercices d'offrir des outils qui cachent certaines difficultés lorsqu'elles ne correspondent pas à l'objectif pédagogique de l'exercice. Pour cela les appels à des calculs ou à des fonctions peuvent être synthétisés et résumés en des expressions formulées en langage "courant".

Par exemple : dans un exercice d'arithmétique dont le but n'est pas d'insister sur la traduction du concept de divisibilité, il est possible à l'auteur d'exercice de présenter à l'élève un bouton "A est divisible par B", sans que l'élève ait besoin de savoir que pour tester cela on peut calculer A - B*(partie entière de A/B) et tester si le résultat est nul. Mais c'est l'auteur qui décide ce qu'il veut rendre visible ou pas, et sous quelle forme.

Une application utilisable en ligne immédiatement

éducAlgo a été conçu pour permettre une disponibilité immédiate sur les principales plate-formes : il s'agit d'une application web qui fonctionne directement sur Internet. Il n'y a rien à charger.

On peut alors commencer directement les exercices. La seule contrainte pour le moment est d'utiliser un navigateur Firefox ou Safari. Un avantage est de toujours pouvoir utiliser la plus récente version publiée. Mais l'application est aussi téléchargeable gratuitement et les enseignants peuvent la configurer comme ils le souhaitent, l'utiliser localement sans passer par Internet ou en publier un exemplaire sur leur propre site web, avec leur propre choix d'exercices.

éducAlgo   est fourni en standard avec une liste d'exercices prédéfinis, mais des outils sont fournis pour rajouter des exercices. C'est une application Web disponible sur tous les environnements disposant des navigateurs Firefox ou Safari et ne nécessitant aucun chargement ou installation préalables.