Enseigner la programmation aux enfants, oui mais comment ?

Depuis un an, on commence à voir apparaître des cours de programmation au lycée (certes, en option pour les Terminale S uniquement, mais c’est un début). C’est l’option ISN (Informatique et Sciences du Numérique). C’est clairement l’option que j’aurais moi-même prise si elle avait existé à mon époque il y a quelques années.

L’INRIA, l’organisme français de recherche en informatique, réclamait depuis des années que la programmation ne soit pas enseignée que dans le supérieur, mais aussi avant le Bac. Ce sont eux qui ont obtenu l’ajout de cette option ISN. Et je sais, pour leur en avoir parlé, qu’ils veulent en fait aller plus loin : ils veulent que la programmation soit enseignée pas seulement au lycée, mais aussi au collège et au primaire. On en est loin.

Leur opinion sur le sujet est la suivante : tout le monde devrait avoir touché au côté « créatif » de l’informatique, et pas seulement au côté utilisateur (bureautique…). Bref, ils pensent qu’il faut plus d’utilisateurs actifs alors qu’on ne forme actuellement que des utilisateurs passifs avec des diplômes comme le B2I.

De mon côté, je dois avouer que je ne me suis vraiment posé la question que récemment. Qu’est-ce que j’en pense ? Bon je crois que vous devez avoir une petite idée là-dessus (indice : j’ai commencé à donner des cours de programmation en ligne en lançant le Site du Zéro en 1999 alors que j’étais en classe de 4e :-°). Le manque de formation sur l’utilisation de l’informatique était criant, et c’est ce qui m’a poussé à écrire les premiers cours sur le sujet.

Former à la programmation, pour quoi faire ?

Soyons clairs : on n’a pas besoin de former 100% des gens à la programmation. Je ne crois pas que ce soit le sujet. De la même façon qu’en arts plastiques en ne vous forme pas à être des peintres professionnels, je pense que les cours de « programmation pour tous » devraient être une initiation qui permet de comprendre l’informatique au-delà du côté utilisateur basique. Et de ce point de vue, je pense effectivement que tout le monde devrait y avoir touché, à petites doses mais quand même. On est de plus en plus en contact avec ces outils et ces notions. On commence à en parler dans les journaux grands public, et parfois les journalistes eux-mêmes semblent ne pas toujours bien comprendre de quoi ils parlent.

« Former à la programmation », je dois dire que le terme est trompeur : il ne s’agit pas juste d’enseigner la programmation. Il s’agit de comprendre l’univers technique. Qu’on ait parlé au moins une fois à tout le monde de protocoles (TCP, UDP, HTTP…), de cryptographie (symétrique, asymétrique…), de techniques de compression (destructrice, non destructrice…), de langages, de méthodes de stockage (fichiers, XML, SQL, NoSQL…), d’API… Je continue ? :D

En fait, je pense que tout le monde devrait avoir des notions sur tout cela, et je l’ai déjà dit récemment. On ne veut pas former des experts, mais des gens qui ont une culture informatique qui dépasse l’utilisation de Word, Facebook et Google (quoique sur ce dernier des cours pourraient aussi être utiles ;o).

Oui, mais à des enfants ?

Il y en a qui parlent carrément d’enseigner la programmation aux enfants, à l’école primaire, au même titre que lire, écrire, compter. Est-ce que la compréhension de l’outil informatique est aussi essentielle que lire, écrire et compter ? J’ai l’impression que la question déchaîne les passions. Je pense que oui, parce que le sujet est devenu beaucoup plus important qu’on ne le croit en peu de temps. Les enfants sont tout à fait capables de comprendre ces concepts. Et l’école, qui avance à pas de fourmi, a déjà pris beaucoup de retard là-dessus.

Alors, concrètement, que peut-on faire ? Comment s’adresser aux enfants et éveiller leur créativité ?

Premier constat, les enfants sont de plus en plus précoces. Alors que les plus jeunes lecteurs du cours HTML5 du Site du Zéro étaient âgé de 10-11 ans il y a quelques années à peine, j’ai désormais des retours de lecteurs qui ont à peine 9 ans, voire « 8 ans et demi ».

Ne les sous-estimons pas : ils apprennent vite. A moins qu’ils ne soient très jeunes, il n’est pas franchement nécessaire de se lancer dans la création de dessins animés dans des tons colorés. Evitons l’approche condescendante et concentrons-nous rapidement sur tout ce qui a un aspect pratique et qui permet de « construire » des choses. Et tant qu’à faire, amusons-nous !

Voici quelques pistes que j’ai glanées ces derniers mois. Elles sont triées grossièrement de la plus simple à la plus « complexe » pour vous donner une idée, même si je pense qu’elles peuvent toutes convenir à des enfants du niveau primaire à condition qu’un adulte les guide bien.

Scratch

Scratch (du MIT) est l’outil dont on parle le plus souvent. Il permet d’assembler visuellement des instructions, de créer des conditions et des boucles, tout en animant des petits personnages. On peut l’essayer en ligne rapidement. L’idée est séduisante, mais je pense qu’il y a encore des progrès à faire : j’ai mis beaucoup de temps à comprendre comment ça s’utilisait et je n’ai réussi à animer les personnages que récemment (je vais peut-être passer un test de QI juste au cas où…).

Scratch

Kodu

Kodu est un jeu pour PC et XBox qui contient un langage de programmation visuel. Je n’ai pas eu l’occasion de le tester mais les captures d’écran sur le site donnent effectivement envie ! S’il y en a qui ont des retours là-dessus je suis preneur !

Kodu

Microsoft SmallBasic

Microsoft SmallBasic est un petit langage de programmation (encore plus « basic » que le « Visual Basic »). Je me souviens avoir programmé pour la première fois au collège dans un langage similaire sous DOS : le QBasic (pour Quick Basic). L’avantage est ici que les commandes sont simples et limitées, et qu’on peut même les traduire.

Microsoft SmallBasic

Lego Mindstorm

Les Lego Mindstorm sont une bonne façon de faire le pont entre un jeu connu de tous (les Lego) et la programmation. Conçus comme un outil éducatif, ils permettent de faire de la robotique programmable. Il y a de quoi s’amuser pendant des heures !

Lego Mindstorm

Kids Ruby

Kids Ruby est un outil tout-en-un pour découvrir la programmation en Ruby. On peut démarrer rapidement et observer visuellement les effets de son programme. Néanmoins, il ne faut pas oublier que derrière c’est le langage Ruby : il est plus complexe que SmallBasic ou Scratch. L’avantage c’est qu’on peut aller plus loin ensuite avec.

Kids Ruby

Arduino

Arduino est une carte électronique programmable. Les possibilités sont infinies et la carte rencontre un très grand succès. Pas très chère (30-40 €), elle permet d’imaginer toutes sortes de projets. Le Site du Zéro a un cours sur Arduino !

Arduino

Raspberry Pi

Raspberry Pi est un mini ordinateur sous forme de carte. Il est peu encombrant et permet là aussi d’imaginer de nombreux projets. Comptez dans les 20-30€. Attention, la puissance de cet appareil est limitée mais il est bien adapté au traitement du signal vidéo. On peut facilement l’étendre pour y rajouter de nouveaux modules, c’est d’ailleurs là que les choses commencent à devenir intéressantes. J’ai moi-même en tête d’écrire un petit cours là-dessus un de ces quatre. :o)

Raspberry Pi

Autres ?

Cette liste est évidemment un début, je reviendrai la compléter. Si vous avez d’autres suggestions et retours d’expérience, n’hésitez pas à commenter ce billet, je serai ravi d’inclure vos retours ici !

Sur le Site du Zéro, nous réfléchissons en ce moment à ce que nous pouvons faire pour ce type de public. En fait, c’est même mieux que ça, nous avons déjà commencé à agir suite à une idée de nos développeurs. ;o)

Vincent travaille sur son projet top secret sur le Site du Zéro

Commentaires( 19 )

  1. Bonjour,
    Un cours pour enfant, cela pourrait etre super sympa en effet! Et je suis sur que nombre d’adultes iraient (dont moi, j’avoue).
    Est-il possible de donner un coup de main bénévole?

  2. Pour une Arduino tu peux même descendre à 20€ !

  3. arduino avec ardublock et des connecteurs pré soudé comme groove ou linker kit c est tout a fait possible en collège et la carte arduino pour 14€
    cf : http://www.duinoedu.com/

  4. pour la programmation, je conseil rpg maker xp qui est vraiment super ludique et du coup motivant pour tous les élèves. il permet également de travailler le coté graphique ou musical.
    robotprog également

  5. C’est genial vraiment j’ai hâte de voir le projet top secret ! Je vais être entièrement à côté de la plaque mais ce qui serait génial c’est un reportage vidéo de comment se passe une journée type dans les locaux du site du zéro :P ce serait vraiment super

  6. Bonjour

    Comme outil, il y a également CraftStudio ( http://crafstud.io ) qui permet de scripter en Lua ou avec du scripting visuel.

    Ce n’est pas forcément le meilleur choix pour des enfants mais un excellente entrée en matière pour la programmation tant par son coté collaboratif temps réel que par son approche simpliste des assets dont est composé le jeu.

  7. Moi je ne suis pas du tout d’accord pour apprendre l’univers technique à des enfants.
    En plus de la difficulté (qui est en fait une fausse excuse pour se dégonfler), ça sera une nouvelle matière « qui ne sert à rien » pour 80% des élèves et qui sera répétée mot pour mot dans les classes supérieures (lycées, postbac) pour les 20% restant.
    Le vrai défi, aujourd’hui, c’est « d’apprendre à apprendre ». Utiliser les NTIC pour apprendre c’est là le défi. Le copier/coller wikipédia c’est pas la bonne chose à faire mais comme ni les enseignants ni les élèves ne sont formés à autre chose c’est ce copier/coller qui est surreprésenté.
    La connaissance et le savoir faire des hommes du XXIème siècle sont bien plus étendus que ceux des siècles précédents et ils s’étendent chaque jour un peu plus.
    On ne peut plus donner des cours complet comme auparavant pour deux raisons :
    – on a compris qu’assommer les élèves d’un lexique abscons à réciter par coeur c’était inutile
    – si le savoir s’est étendu, les journées de cours sont restées les mêmes !

    Ainsi dans le future, le savoir clef, qui permettra de tout faire c’est de savoir apprendre, savoir obtenir le savoir même s’il reste peu de temps dans nos mémoire parfois. Et cela multi support, dans tous les lieux, à toutes les heures, dans toutes les situations.

    • Qui a ici prétendu qu’il fallait gaver les élèves de connaissances à retenir par coeur ?

      • Pas vous.
        Malheureusement, plus ton cours est fouillé, plus tu vas devoir ajouter du vocabulaire et des notions. L’extrême, c’est ce qui est relaté dans la vidéo sur l’infection virale.
        Pourquoi beaucoup de profs d’université « cassent » le sdz alors que certains d’entre eux copient/colle le site et enlève les smiley and co? Parce que la plupart du temps ils veulent mettre tout le vocabulaire qui sera à coup sûr le sujet du QCM d’évaluation.
        Revenons au primaire (pour bien faire comprendre que je n’ai pas oublié le sujet principal) et le collège : les jeunes élèves ont eu droit, il y a quelques décénies au bourrage de crâne, aujourd’hui on a retiré la plupart des exercices de mémorisation (demande trop de travail à la maison) et on fait du « touche à tout ». Le problème c’est qu’un élève n’a pas le temps de poser des questions qu’on doit déjà toucher à autre chose. Résultat, dans le choc générationnel actuel, seul le bourrage de crâne est vu comme la solution au problème.

        n’oubliez pas que même si vous êtes dans une démarche d’innovation et de révolution, vous avancez dans un domaine qui est d’un naturel très conservateur et là vous êtes en dehors des deux principales routes. Vous serez seuls pendant un long moment !

  8. En fait, je suis plus ou moins d’accord à enseigner cela obligatoirement à des enfants dès le primaire. De la façon que je vois les choses, c’est que le primaire est essentiellement fait pour apprendre les trucs primaires les plus utiles dans notre vie quotidienne.

    Vient ensuite ce qu’au Québec on appel le secondaire (je sais pas comment on appel cela en France). Je trouve qu’apprendre ce sujet à ce second niveau me paraît plus juste pour la bonne raison qu’on apprend à parfaire nos connaissance à ce grade-ci. Plusieurs notions sont abordés dans ce stade, mais qui ne sont pas essentiels à la vie de tous les jours. Cependant, on a une connaissance plus général avec ce que l’on apprend et on garde en mémoire les patrimoines laissés par les générations antécédentes. Là, je trouve plus justifié d’y enseigner « l’envers du décors » de l’informatique.

    La nouvelle génération d’étudiant à goûté et sait comment on utilise un ordinateur relativement jeune. En effet, depuis les dix / douze dernières années, l’ordinateur s’est amplement démocratisé pour que la grosse majorité ait un accès facile à cet outil. D’ailleurs, je travailles dans un magasin de vente électronique et il n’est pas rare d’entendre des parents m’informer que leur enfant, âgé souvent de 3 à 6 ans est pratiquement autonome sur plusieurs points à l’ordi ou sur le cellulaire.

    En sachant que la nouvelle génération d’étudiant est familier avec l’outil, je penses qu’on peut modifier les cours d’informatique dans les classes. Ne serait-ce que pour permettre aux étudiants peut-être pouvoir y trouver en l’ordinateur un outil plus puissant que de la recherche.

    Il serait intéressant de voir si cela affecterait aussi le marché du travail dans ce domaine-là. Ne se le cachons pas, si on intéresse plus de gens au domaine, il va forcément avoir une croissance de population qui poussera ses études vers cette branche. Cela pourrait possiblement mettre un terme aux entreprises qui chargent très cher la confection d’un produit web ou logiciel au profit d’autres entreprises qui rendront les mêmes produits plus abordable et plus accessible.

  9. C’est super de pouvoir enseigner cela mais maintenant on apprends que la moitié des bases ! Une grosse partie des jeunes rentrant au collège ont des difficultés pour lire, écrire et compter (calcul mental) ! Il y a 50 ans, à environ 11 ans un enfant connaissait beaucoup mieux les bases que ceux qui sortent du collège voire du lycée.
    De nos jours on apprends des tas de choses dont certaines très peu utiles qui nous serviront à rien dans la vie avec une petite base…

  10. Aujourd’hui membre actif du SdZ et Chef d’entreprise en développement mobile, j’ai découvert la « programmation » avec TheGameFactory en classe de 6ème et je n’ai pas lâché mon ordinateur depuis.

    J’ai déjà dans le cadre de colonie de vacances fait des activité d’algo sur papier et j’ai beaucoup utilisé Scratch, présenté plus haut avec des tout petits (les plus petits avaient 5 ans), ils ont ADORE !

  11. Mon commentaire porte sur un point de détail, je réagis juste à ceci : « Néanmoins, il ne faut pas oublier que derrière c’est le langage Ruby : il est plus complexe que SmallBasic ou Scratch » (à propos de KidsRuby).

    Derrière Scratch, c’est un interpréteur SmallTalk qui tourne, et on peut programmer directement en ST. La plupart des interpréteurs ST embarquent une GUI directement modifiable par le code interprété, et proposent un IDE programmé avec ladite GUI. Du coup, Scratch n’est « que » la bibliothèque qui modifie l’apparence de l’IDE pour l’adapter à des enfants (on trouve souvent sur le Web un bundle squeak+scratch). Les plus curieux pouront facilement aller plus loin et programmer « pour de vrai » en SmallTalk, chose que je conseille d’essayer au moins une fois à tous ceux qui font/aiment l’orienté-objet. :)

  12. Très bon article, learn 2007 vue de la plus vache x, impatients de plusieurs de vos idées merveilleuses, merci, que Dieu vous bénisse!

  13. Très bon article, learn 2013 vue de la plus vache x, impatients de plusieurs de vos idées merveilleuses, merci, que Dieu vous bénisse!

  14. Le mieux je pense pour des enfants serait déjà un jeux éducatif ou ils apprennent à rechercher par eux mêmes les informations qu’ils veulent et non de leur donner tous crue dans le bec.. car ce n’est pas tellement le principes d’internet! ^^

    Enfin, ce n’est qu’un avis.. perso, la j’attend le projet top secret pour voir ce que c’est et peut être y participez si c’est possible.

  15. J’ai utiliser les Lego Mindstorm en ISN cette année et j’avoue que c’est assez fun, on programme grâce a des instructions que l’on choisit dans un menu, seul inconvénient : la précision du robot n’est pas terrible du tout…

  16. Bonjour,

    J’ai reçu la newsletter ce matin sur le projet docky. c’est tout simplement génial. Je suis dans le développement WEB (JEE – Richfaces, PrimeFaces – bootstrap …), je trempe dans ces problèmes d’appli web pour de l’informatique de gestion (Banque) et je suis complètement fan de votre idée (en premier lieu, merci pour cette liste, je decouvre kids Ruby, deja incroyable que cela existe !).
    Je cherche depuis longtemps à initier mes 3 enfants (9, 6 et 3 ans + une quatrieme en route pour cette fin d’année :-) ) aux « devs » informatiques, et je ne savais pas comment. Docky est très bien pensé pour cela !!
    Et prendre comme base technique HTML5, CSS3 c’est parfait, ca ne demande aucun environnement de dév particulier, tout en offrant des possibilités graphiques d’animations etc … déjà avancées.

    Bref je suis complètement fan, j’aimerais participer à ce projet (avec ma petite famille tout entière si possible) Comment faire ???
    Julien (32 ans, papa de 3+1 enfants)

    • Contactez-nous directement sur github ou sur la page de présentation du projet dans les forums du Site du Zéro (selon si vous voulez proposer des améliorations de code ou des nouvelles histoires). Merci ! :)

Les commentaires sont fermés.