• Aucun résultat trouvé

• L'algorithme : un auxiliaire d'apprentissage

Un autre exemple, souvent employé, de description de pratique présentée comme un algorithme est celui de la recette de cuisine. Pour faire des endives au jambon, il faut :

faire cuire les endives.

entourer les endives d'une tranche de jambon et les disposer dans un plat allant au four.

napper le tout de sauce béchamel.

recouvrir de gruyère râpé et passer au four.

Cette recette est, à la fois, inopérante pour un cuisinier novice qui ne sait pas comment faire cuire des endives ou préparer une sauce béchamel et superfétatoire pour la ménagère courante qui confectionne ce plat de manière quasi-automatique, c'est-à-dire, en déroulant intérieurement la suite des actions à effectuer, qu'elle a mémorisée, intégrée et qu'elle sait réaliser. On n'utilise donc pas de véritable algorithme dans la vie courante.

L'utilisation de pseudo-algorithmes permet de se familiariser progressivement avec une notion. Il convient cependant de noter que, dans les exemples choisis (mécanique, recette…), la description écrite est probablement insuffisante et doit souvent s'accompagner d'une démonstration effectuée par un « expert ». Ce dernier est, a priori, celui qui sait exécuter la tâche. Il sait probablement commenter, au fur et à mesure, ses actions. De nombreux exemples nous prouvent cependant qu'il a souvent du mal à formaliser de manière précise et concise les

différentes étapes de son travail. Reconstituer formellement, ex nihilo, dans le bon ordre, toutes les instructions à fournir à un apprenant novice pour qu'il puisse refaire le même travail constitue une gageure.

Ceci nous permet d'aborder une des caractéristiques essentielles de l'utilisation de ces pseudo-algorithmes. Ils constituent une étape importante dans les apprentissages. Savoir exécuter, pas à pas, une description de pratique, écrite par autrui, constitue un palier primordial dans certains enseignements. En effet, lorsque l'élève cuisinier aura acquis un certain nombre de « pratiques de base », il sera capable d'exécuter seul de nouvelles recettes en suivant soigneusement leur description. Lorsqu'il saura réagencer le pseudo-algorithme présenté, le modifier ou l'interprter, il aura atteint un degré de connaissance supplémentaire. Le pseudo-algorithme changera alors de statut pour glisser de celui d'indicateur à celui d'aide-mémoire.

• L'algorithme : un objet d'apprentissage

En informatique, l'algorithme est l'objet même du travail à faire. Il ne s'agit plus d'effectuer un algorithme déjà écrit mais de le concevoir de manière assez précise pour qu'une machine l'exécute tel quel, sans qu'on puisse lui fournir d'autres explications orales ou gestuelles. Le travail de l'élève informaticien consiste à trouver l'algorithme correspondant au problème posé. C'est un travail difficile et complexe pour lequel il n'existe pas véritablement… d'algorithme d'apprentissage.

Raisonner de manière algorithmique n'est pas un processus naturel. Il faut acquérir une forme d'esprit particulière à ce type d'exercice qui est assez peu transposable, formellement tout du moins, dans la vie courante.

Précisons aussi qu'à l'école maternelle, le terme « algorithme » est souvent réduit et confondu avec « suite répétitive de signes » (un rouge, un vert, un rouge, un vert…), c'est-à-dire avec un rythme, qui n'est qu'un cas particulier d'algorithme montré à reproduire. Cette pratique constitue cependant un premier pas vers l'algorithmique.

On utilise également le terme « algorithme », à l'école primaire, dans des expressions renvoyant aux techniques opératoires. On parle de « l'algorithme de l'addition », par exemple, qui consiste à décrire, de manière squentielle, les différentes étapes permettant d'effectuer une somme. Il s'agit là encore d'une « description de pratique » contribuant à l'apprentissage mais dont les termes sont plus limités et plus précis. Le terme d'algorithme n'est pas totalement usurpé, dans ce cas.

Exprimer, comprendre, utiliser, fabriquer des algorithmes précis à l'école maternelle est donc tout à fait envisageable. Le « jeu de l'enfant-robot » entraîne les enfants à décomposer un parcours en une succession de mouvements élémentaires. Il opère donc un véritable travail de type algorithmique dans le domaine très particulier des parcours. Il ne s'agit pas d'un exercice de type « description de pratique » dans la mesure où c'est l'enfant qui fabrique l'algorithme, qui indique au robot les tâches élémentaires à exécuter et ceci, uniquement avec le langage informatique associé à la méthode. Par conséquent, il n'y a pas d'ambiguïté sur les instructions minimales exécutables et le travail précis de décomposition est réel.

« jeu de l'enfant-robot » --> esprit rigoureux et méthodique

• Algorithme, rigueur et formation de l'esprit

Le « jeu de l'enfant-robot » entraîne l'enfant-programmeur à expliciter avec précision les différentes étapes permettant au « robot » d'aller d'un endroit à un autre. Pour réussir convenablement ces exercices, il devra :

donner les instructions convenables en utilisant exclusivement le langage autorisé.

les agencer dans le bon ordre.

veiller à leur exécution précise.

Outre l'utilisation qu'il pourra en faire ultérieurement, en tant qu'informaticien, ces connaissances pourront être immédiatement réinvesties dans d'autres circonstances.

L'élève sera amené à utiliser très tôt et à se familiariser avec des structures de contrles essentielles en informatique. Il pourra donc exprimer convenablement une alternative ou une itération. On retrouve ces structures dans de nombreux problèmes courants (Si la somme dépasse 9 Alors il faut poser le chiffre des unités et garder une retenue). Avoir l'habitude de les utiliser de manière rigoureuse ne peut être que très formateur.

L'enfant pourra ainsi appréhender qu'un algorithme permet de résoudre ce type de problème, qu'il convient d'énoncer les instructions de manière précise en utilisant un langage particulier (« tourne » ne peut remplacer « pivote à droite d'un quart de tour »), que l'ordre dans lequel sont données les consignes est primordial et qu'un programme de ce type est dterministe. Avoir une pensée ordonnée et rigoureuse lui permettra de résoudre plus facilement de nombreux problèmes courants (rechercher une cachette, ranger une chambre, jouer au jeu des sept familles). Cette pensée est également associée à des formulations et à un vocabulaire précis tout à fait formateurs. De plus, il ne faut pas négliger l'incidence de cette pensée sur les structures linguistiques profondes au moment du pré-apprentissage de la langue.

Lorsque l'on travaille, par exemple, sur la rsolution de problmes, en mathématique au CM2, on élabore également un algorithme devant permettre aux élèves de systématiser leur recherche et de trouver la solution (lecture attentive de l'énoncé et des questions posées, recherche d'indices pertinents, élimination des informations inutiles…). Ce travail n'est réellement algorithmique que si ce sont les élèves eux-mêmes qui élaborent, avec l'aide du maître, cette « check list ». Une fois celle-ci établie, la suite des « choses à faire » deviendra, au départ, un aide-mémoire puis disparaîtra formellement lorsqu'elle sera mémorisée et intégrée par l'apprenant.

• Réflexions sur l'apprentissage de la programmation par les jeunes enfants

La conception d'algorithmes permet, entre autres, d'accéder à la programmation d'ordinateurs ou de robots. Nous étudierons plus particulièrement dans ce paragraphe l'intérêt que différents chercheurs accordent à l'enseignement de la programmation auprès des enfants et des jeunes adultes tout au long de leur cursus.

« Ainsi, Mendelsohn fait observer que l'activité de programmation est probablement sans équivalent dans l'ensemble des activités humaines… Il s'agit donc d'un apprentissage

complexe et composite » nous relate Jean-Pierre Dufoyer46. Il ajoute : « apprendre à programmer produirait, selon Feurzeig, sept changements fondamentaux dans la pensée dont :

rigueur de la pensée, précision dans l'expression, besoin conscient d'expliciter ses démarches.

acquisition de facilités dans l'art de l'heuristique : planification, recherche de cas similaires, résolution par décomposition en parties.

apprentissage de techniques de recherches d'erreurs transférables à d'autres types de résolution de problèmes que dans l'informatique.

intensification de la prise de conscience et du savoir à propos des techniques de résolution de problèmes ».

« Cette activité -la programmation- que nous venons de décrire repose sur une notion déjà bien étudiée par les psychologues : la planification des actions.… La construction de programmes, qui suppose obligatoirement cette activité, se révèle par là même très intéressante dans l'apprentissage des connaissances… L'utilisateur a toujours l'impression en programmant qu'il progresse sans cesse et que chaque but devient un sous-but pour un nouveau projet » nous précise Patrick Mendelsohn.47

Il ajoute également : « La programmation favorise l'exercice de certaines activités intellectuelles. Parmi les hypothèses les plus probables, on peut citer :

La découverte, en les apprenant à un automate, de ses propres manières de penser. Il s'agit d'une véritable aide à la réflexion sur sa propre pensée. Le programme qui se construit peut être considéré comme une surface de projection de ses propres schèmes. Le sujet peut ainsi objectiver sa façon de résoudre le problème.

De manière plus générale, tous les auteurs sont unanimes pour penser que la programmation développe la capacité de résoudre des problèmes par l'exercice des aptitudes d'analyse et de synthèse.

Sur le plan affectif et relationnel, on peut noter que l'apprentissage de la programmation, avec un dispositif attrayant et simple comme les « micro-mondes » du langage LOGO, provoque une attitude de satisfaction chez l'enfant et une réduction du niveau de frustration face à l'apprentissage. En effet, l'enfant devient un sujet actif, il prend plaisir à être créateur, à découvrir de nouvelles propriétés aux objets, de nouveaux moyens pour réaliser ses projets, de nouveaux buts ».

J.P. Demouveaux48 accorde également un grand intérêt à ce type de travail. « L'activité de programmation, en obligeant l'enfant à mieux communiquer, à reconnaître la valeur positive de l'erreur, à apprendre à apprendre, à maîtriser les démarches algorithmiques, à développer un comportement intellectuel exigeant prudence, doute, rigueur et créativité, oblige à dépasser les actes cognitifs simples comme la reproduction et la répétition et favorise le développement de capacités cognitives fondamentales ».

46 Informatique, éducation et psychologie de l'enfant, Le Psychologue, PUF, 1988, page 75 et 87

47 L'informatique à l'école élémentaire et pré-élémentaire. Grand N. page 13, 14 et 16

« jeu de l'enfant-robot » --> esprit rigoureux et méthodique

Et Jean-Pierre Dufoyer49 d'ajouter : « L'apprentissage de la programmation constitue donc un exercice de réflexion et d'apprentissage d'une certaine forme de logique dont on peut supposer qu'il occasionnera certains transferts bénéfiques dans d'autres domaines ».

Apprendre à programmer à l'école et pas seulement à utiliser l'informatique constitue probablement une excellente formation. « Si l'introduction d'ordinateurs à l'école peut apporter une innovation pédagogique véritable et quelque chose de proprement inédit, c'est certainement par la possibilité de la programmation. Il faut que les enfants programment eux-mêmes pour entrer en relation véritable avec l'informatique et se l'approprier dans l'autonomie ».50

Nous laisserons à Seymour Papert51, inventeur du premier langage à objectif pédagogique, le soin de conclure : « Programmer un ordinateur revient tout simplement, plus ou moins, à communiquer avec lui dans un langage « intelligible » pour la machine comme pour le programmeur. Or, apprendre une langue est l'une des choses que les enfants font le mieux ». Il précise son propos : « Ce qui compte ici pour moi, c'est l'éternelle question de savoir comment nous pensons et comment nous apprenons à penser » et« en s'efforçant d'apprendre à penser à l'ordinateur, l'enfant se lance dans une exploration : il lui faut retrouver comment il pense lui-même. Cette expérience peut l'emmener très loin. Penser sur sa pensée, c'est devenir épistémologue ; c'est entrer dans une étude critique de sa propre réflexion - une expérience que bien des adultes ne vivent jamais ».

L'apprentissage de l'algorithmique et de la programmation, tout au long du cursus scolaire, constitue donc un travail dont chacun s'accorde à penser, qu'au-delà de son propos initial, il est bénéfique pour la formation de la pensée, la réflexion, la rsolution de problmes, l'autonomie…

Le travail que je propose avec le « jeu de l'enfant-robot » se situe au début du parcours scolaire. Il constitue donc une « première pierre » dans l'apprentissage de la programmation. La connaissance que je peux avoir de celui-ci me permet d'aborder les notions envisagées avec le souci de travailler dans la même direction et de bien préparer l'avenir. Cette méthode a l'ambition d'aider à construire des esprits rigoureux structurés et méthodiques sans négliger toutefois d'autres aspects essentiels de la formation des jeunes enfants.

49 Informatique, éducation et psychologie de l'enfant, Le Psychologue, PUF, 1988, page 84

50 Direction des Écoles. Circulaire du 24 Mars 1983