La programmation consiste à écrire des programmes avec un language informatique. Pour pouvoir exprimer cet art, il faut donc maîtriser un langage informatique comme on maîtrise une langue. Un langage informatique consiste en un ensemble de mots clefs et une syntaxe. Pour résumer: il faut manipuler des données pour écrire des algorithmes !

Haaa le mot est lâché ! Al-go-rithme. Alors l'algorithmique est en soit une matière et son apprentissage est nécessaire pour savoir programmer. Ecrire des algorithmes fait appel à des notions complexes de logique et requiert des ingrédients fondamentaux. Ce qui nous amène à distinguer d'une part le langage informatique qui est un outil, un support pour exprimer une idée et l'algorithme qui est la réalisation de l'idée. Et c'est là que tout se joue pédagogiquement. Un enfant, même jeune fait déjà des algorithmes sans le savoir et n'a donc pas besoin de connaitre un langage pour écrire un programme. 

Maman comment on fait un gâteau ?

J'entendais dans la bouche de mon petit, fasciné, demander à mon épouse comment elle faisait si bien les gateaux. Oui c'est madame qui cuisine, moi j'enseigne l'algorithmique à mon fils. Mais notez au passage que c'est bien lui qui veut apprendre à cuisiner... Enfin bref. L'explication n'a pas été faite par mon épouse, je lui ai cuisiné un véritable cours d'algorithmique...

Mon fils: "Papa tu as goûté le gâteau de maman ? il est bon".

Moi: "Heu t'es sûr, elle ne l'a pas acheté à la boulangerie ?".

Mon fils: " Bah non, je l'ai vu faire, j'aimerais bien qu'elle m'explique".

Moi: "Elle ne doit pas avoir le temps, elle a commencé ce matin, elle ne terminera pas avant minuit".

Mon fils: "C'est si long de faire un gâteau ?".

Moi: "Pas quand tu maîtrises les 5 ingrédients de l'algorithmique" ( Je l'ai perdu à "ingrédients" il a 6 ans).

Mon fils: "huummm !" d'un air dubitatif.

Moi: "Les ingrédients, c'est la liste sur le frigo accroché à l'aimant".

Mon fils: "Hi hi hi, bon je vais la regarder faire pour apprendre à identifier les ingrédients".

Moi: "Les ingrédients c'est bien mais t'as pas l'algorithme".

Mon fils: "Le go-rithme ?".

Moi: "Oui, la recette".

Mon fils: "J'ai pas compris".

Moi: "Tu prends 80 g de farine, 125 g de sucre, 1 sachet de levure, 1 tablette de chocolat à cuire, 4 oeufs, 125 g de beurre. Tu me suis, tu as tout noté ?"

Mon fils: "Oui attends j'écris".

Moi: "Tout d'abord, tu mélanges la farine, le sucre et la levure puis tu ajoutes les oeufs battus à la préparation. Je peux décomposer cette étape en différentes instructions : 1/ préparer la farine, 2/ le sucre et 3/ la levure. 4/ mélanger le tout. etc...

Moi: "Ensuite tu ajoutes le beurre et le chocolat préalablement fondus au micro-ondes ou à la casserole sans eau." J'ai dis préalablement fondu, donc en parallèle tu as lancé cette action. Ce n'est pas anodin comme information, en tout cas en programmation informatique.

Moi: "Bats bien le tout jusqu'à obtenir un mélange parfaitement homogène." En d'autres termes: TANT QUE le mélange n'est pas homogène TU BATS.

Moi: "Allez, tu y es presque, enfourne la pâte à 180° pendant 30 minutes dans un moule à cake."

Moi: "Plante un couteau dans ton gâteau au chocolat pour vérifier sa cuisson. L'idéal est que le couteau ne ressorte pas tout à fait sec, preuve que le gâteau est resté tendre et moelleux. En d'autres termes: SI tu plantes un couteau ET qu'il ne ressort pas tout à fait sec ALORS le gateau est prêt.

Moi: "Tu as compris l'algorithme de préparation du gâteau ?".

Mon fils: J'ai rien compris mais je saurai refaire le gâteau.

Moi: " Donc tu as compris! Aller on va refaire la même chose avec Scratch".

Mon fils: "Heu non je préfère faire un gâteau".

Moi: "En d'autres termes, un algorithme c'est tout simplement un ensemble d'opérations qu'on appelle aussi instructions en programmation ayant pour but de répondre à un problème, ici réaliser un gâteau".

Mon fils: "Ha ok, j'ai compris, c'est pour ça que les gâteaux sont bons".

Programmation et programmation graphique

L'algorithme n'a pas besoin du langage ! Hé oui et c'est là qu'est la clef pédagogique. En effet, vous vous embettez à enseigner tous les mots clefs à un enfant de 8 ans alors qu'en fait il est déjà prêt à raisonner ? Non ! Alors faites un schéma. Le dénominateur commun entre l'enfant et l'adulte, c'est l'algorithmique.

La programmation graphique a de fort le fait qu'elle permet de représenter les ingrédients fondamentaux de l'algorithmique par des illustrations graphiques simples à travers une interface graphique ergonomique pour l'enfant.

La programmation graphique avec Scratch consiste en une interface où seront mis en action des lutins dans une scène. Ces lutins peuvent être manipulés en utilisant des briques à déplacer simplement (par simple drag & drop). L'enfant va véritablement créer l'univers du jeu et coder les actions à réaliser sur les lutins.

Les avantages liés à la programmation

La programmation apporte un lot de vertus tout aussi intéressantes les unes que les autres.

Comme programmer c'est raisonner et s'approprier la pensée informatique mêlant logique et analyse, les enfants développent leur capacité à raisonner et à organiser leur pensée. L'analyse d'une situation en vue d'élaborer une séquence d'un programme impose à l'enfant de réfléchir, de synthétiser puis de formaliser.

Mais encore programmer amène l'enfant à communiquer avec les autres. En effet dans un atelier de programmation, le simple fait de voir évoluer un autre apprenant différemment pose une intrigue propice à un échange. Et pour certain il y a lieu de dédramatiser la prise de parole.

La pédagogie par le jeu est un vecteur puissant pouvant amener l'enfant à exploiter son potentiel. La pédagogie par le projet apporte une dynamique et un sens à un projet de programmation mais surtout c'est la possibilité pour l'enfant de s'approprier et de personnaliser les réalisations diverses dans un projet. La pédagogie par l'erreur pose une nouvelle approche de l'erreur, qui n'est plus perçue comme un manque de connaissance mais comme une étape de l'apprentissage, c'est un outil d'apprentissage sur laquelle la connaissance correcte va pouvoir être construite.

Alors à votre avis, à quel âge peut-on commencer ? Observons ce petit jeu, j'ai nommé cubetto.