Enseigner l'algorithmique à un enfant

Mon fils a 9 ans et est très intéressé par tout ce qui est robot (nous sommes allés voir à nouveau les sélections au concours Eurobot et il a adoré).
J'ai regardé un peu ce qui existait pour les enfants mais c'est soit quelque chose de déjà programmé et on choisit un mode soit quelque chose à programmer soi-même. Je trouve que le premier est un peu trop bas niveau pour lui vu sa réaction quand il a utilisé de tels robots lors d'ateliers de démonstration en marge du concours de robotique donc je me demandais si vous aviez des ressources en français à conseiller pour l'apprentissage de l'algorithmique de façon ludique. En effet, j'aimerais l'initier doucement à ça avant d'entrer dans le vif du sujet et qu'il se lance dans la programmation d'un robot pour enfant/ado.

Réponses

  • Bonjour,
    je suis enseignant en technologie au collège et j'utilise les robots mBot qui peuvent se programmer à l'aide de blocs avec un IDE dérivé de scratch (mBlock). Mais je les destine surtout pour le cycle 4 (5e, 4e et 3e).
    Pour un enfant de son age, je conseillerais plutôt les robots ozobot et tymio. Mais ne pas oublier le mBot pour plus tard, s'il ne l'étudie pas au collège. C'est un excellent support d'apprentissage.

    https://ozobot.fr/
    https://www.thymio.org/fr/
    https://www.makeblock.com/steam-kits/mbot
    quelques liens vers des sites qui proposent du matériel pédagogique pour la techno
    https://www.a4.fr/robotique-programmation/robots-programmables.html
    https://www.technologieservices.fr/produits/robotique-et-programmation/robots-et-drones-programmables.html

    un magasin en ligne sérieux pour le matériel électronique pour particulier : https://www.gotronic.fr/

    Les robots que j'ai mis en avant sont plutôt abordables et solides. Le robot mBot est compatible Arduino, technologie hardware en licence libre. Les autres utilisent des technologies et des logiciels propriétaires.

    N'hésite pas à me solliciter pour d'autres conseils.

    Dominique.

  • Pour l'apprentissage de l'algorithmique, je conseillerais le site de France IOI qui propose d'apprendre en s'amusant. Chaque année mes élèves passent les concours Castor Informatique et Algoréa mis en place par l'association. Les cours et jeux proposés sont très bien faits. On peut aussi s'entraîner aux concours des années précédentes. Le concours Castor ne nécessite pas de connaissances en programmation et les enfants font l'algorithmique sans s'en rendre compte.

    http://www.france-ioi.org/
    http://concours.castor-informatique.fr/ (cliquer ensuite sur "s'entrainer" dans le menu de gauche)

  • J'ai aussi des mbot à l'école, mais je suis fondamentalement contre des solutions comme scratch, heureusement Domi a pu te donner des ressources dans cette direction.

    Pour ma part, je commence à des exercices de réflexion dans GCompris qui amène une véritable démarche algorithmique, c'est-à-dire des problèmes à résoudre à l'aide de consignes, sans pour autant faire du code.

    Pour la partie code, rien de plus sympa que turtle.

  • @Arnaud qui malheureusement est largement exploité dans le DNB de maths

  • @Arnaud a dit :
    J'ai aussi des mbot à l'école, mais je suis fondamentalement contre des solutions comme scratch

    J'avais passé quelques heures sur scratch avec mon rpi, j'avais bien apprécié, pourquoi tu es fondamentalement contre ? Ça m'intéresse !

  • Arnaud à un python à la maison :D

    quelle que soit la réponse de Arnaud, il faut savoir que ses élèves sont des mutants. Scratch pour mes élèves de 3ème c'est encore trop compliqué.

  • C'est scratch au collège également, avec programming editor en 5e.
    Mon gamin vient de me filer une liste de soft qu'il souhaiterait que j'installe sur le PC, avec Geogebra, Gimp, ... je sens que je vais lui offrir un petit robot pour son anniversaire, ça a l'air de lui plaire tout ça et pourquoi lui laisser un PC sous Linux... :)

  • @poipoi a dit :
    J'avais passé quelques heures sur scratch avec mon rpi, j'avais bien apprécié, pourquoi tu es fondamentalement contre ? Ça m'intéresse !

    Tout simplement parce qu'un élève normal de collège ( voire même d'école primaire ) peut faire bien plus que passivement placer des blocs, dont il ne retiendra pas forcément le contenu.

    Avec des outils comme turtle, les enfants écrivent les commandes, et apprenne à respecter une syntaxe, car "l'ordinateur ne pardonne pas la faute de frappe".

  • @tous
    Merci pour vos idées.

    Intéressant de lire le commentaire d'Arnaud sur Scratch car il faisait partie des évidences que je voulais regarder. Personnellement, je comprends la remarque sur le déplacement des blocs et suis pour le « qui peut le plus peut le moins ».

  • j'ai des élèves de seconde générale qui sont plutôt des secondes de niveau technologique, à savoir un cran au dessus des bacs pro. Je les fais démarrer avec scratch et je les fais enchaîner sur algobox. Ils réalisent très rapidement que scratch c'est vraiment limité, quand tu dois commencer avec les blocs à écrire des formules mathématiques à peine compliquées c'est le drame.

  • 8 mai modifié

    Je ne suis pas totalement d'accord avec vous. Pour les plus jeunes, programmer par bloc est presque naturel. Bien plus visuel que du code littéral. Ils auront le temps de passer à autre chose plus tard.
    De plus en ce qui concerne la programmation de robots ou de cartes arduino, la programmation par blocs est vraiment un plus. J'imagine même pas devoir faire programmer mes collègiens en pseudo C pour l'IDE arduino.
    Et si ton fils,alsed , aime la robotique, quel plaisir de voir bouger en vrai un objet qu'on a programmé.
    Donc scratch a, pour moi, cet avantage de faire le lien entre les maths et la techno.
    Mais c'est clair qu'il n'est pas parfait.

  • 8 mai modifié

    @Domi a dit :
    Je ne suis pas totalement d'accord avec vous. Pour les plus jeunes, programmer par bloc est presque naturel. Bien plus visuel que du code littéral. Ils auront le temps de passer à autre chose plus tard.

    Il est indéniable que scratch facilite la prise en main, et que c'est effectivement naturel pour un enfant. Et je précise que je ne prône pas le code littéral dès l'enfance : je pense simplement qu'ils peuvent s'approprier une démarche algorithmique avec des jeux comme les tours de Hanoï, description d'un chemin, etc ... il y a de tels exemples dans gcompris.

  • Je vais jeter un œil à gcompris. Je l'avais installé il y a bien longtemps pour ma fille qui maintenant a 21 ans (pas encore mais dans 3 jours :blush:)

  • @Domi a dit :
    Je ne suis pas totalement d'accord avec vous. Pour les plus jeunes, programmer par bloc est presque naturel. Bien plus visuel que du code littéral. Ils auront le temps de passer à autre chose plus tard.

    En sachant qu'en ce qui concerne l'industrie, énormément de choses se programme également en bloc aussi.

    Ça n'est donc pas complètement inutile comme entrée en matière.

  • @bendia a dit :

    @Domi a dit :
    Je ne suis pas totalement d'accord avec vous. Pour les plus jeunes, programmer par bloc est presque naturel. Bien plus visuel que du code littéral. Ils auront le temps de passer à autre chose plus tard.

    En sachant qu'en ce qui concerne l'industrie, énormément de choses se programme également en bloc aussi.

    Ça n'est donc pas complètement inutile comme entrée en matière.

    J'ai enseigné l'automatisme et l'informatique industrielle (génie électrique) pendant 25 ans avant de passer en collège. Ce doit être la raison pour laquelle les blocs ne me gênent pas plus que ça. Mais je comprends Arnaud qui attend plus de rigueur.

  • Je pense comme @Arnaud mais je suis un vieux geek de 47 ans qui a commencé avec de l'asm 6809 après le logo et le basic ;^P

    Sinon ici, j'ai déjà vu des CE2 s'éclater avec GCompris et Scratch. Cela dépend beaucoup de l'enseignant et de l'entourage familial en fait !

    Hélas encore aucun arduino ou raspberry pi dans les 8 classes de l'école primaire que je côtoie régulièrement : les élèves découvrent les joies du bidouillage à partir du collège (6ème et 5ème).

  • Je vais partir de mon utilisation comme prof de Mathématiques.

    J'ai commencé il y a fort longtemps avec Squeak et des élèves de seconde. Même si on arrivait à faire de choses sympathiques (la fourmi sort toute seule du labyrinthe que je viens de dessiner), la durée d'apprentissage de l'interface était rédhibitoire.
    Je suis revenu à la programmation de la calculatrice, parce que c'est utile pour la matière et que les élèves l'ont toujours avec eux. C'est immédiatement utilisable sans réserver la salle E105 accessible uniquement via la E104, elle même trustée par le doyen du lycée).

    Puis le programme nous a explicitement demandé de faire de l'algorithmique. Scratch était autour de la version 1.x. et les blocs, notamment ceux des boucles permettant de bien distinguer ce qui était répété de ce qui ne l'était pas, apportaient un vrai plus à l'époque.
    On pouvait faire beaucoup de choses très intéressantes en mode logo. C'était plutôt stimulant pour les élèves parce que les dessins obtenus peuvent être beaux. Mais dès qu'il s'agit de manipuler des enchaînements d'opérations, c'était et c'est toujours infernal. Les versions 2 et 3 n'ont rien apporté de ce côté.
    Alors j'ai vagabondé entre les langages des calculatrices, les algobox et consorts. J'ai même utilisé linotte.
    Je suis à nouveau revenu à la calculatrice, pour les mêmes raisons.

    Et puis, alors que je ne le cherchais pas, je suis tombé presque par hasard sur Snap! et ça a été le coup de foudre.
    De prime abord, je me suis dit que ce n'était qu'un clone de Scratch, mais :

    • On peut faire le bloc d'opérations (3x+1)/(x+2) en l'écrivant presque tel que (il faut ajouter * pour la multiplication) dans la zone de texte qui apparaît, quand après un clic droit dans la zone des blocs, on choisit Find blocks ...
      J'utilise parfois cette fonctionnalité juste pour faire comprendre à un élève la nécessité des parenthèses. Il faut juste qu'il réussisse à voir le bloc final comme un empilement de bloc dont on réalise les opérations du haut vers le bas.
      Ça, c'est magique et d'un coup, une grosse limitation vient de disparaître. Essayez d'obtenir le calcul de (3x+1)/(x+2) dans Scratch après avoir créé la variable x et comparez.
    • Quand on crée un bloc, on peut choisir son type : Commande, fonction ou prédicat puis ajouter autant d'entrées qu'on veut. À nouveau, ça change tout.
    • Cerise sur le gâteau. Un bloc de fonction créé et déposé dans la zone de script peut être exécuté d'un simple clic gauche, le résultat s'affiche dans une bulle.

    Aujourd'hui, Snap! est un peu moins joli que Scratch 3 mais reste infiniment supérieur de mon point de vue.

    Désormais, au lycée on doit utiliser python, mais je commence en seconde par créer quelques fonctions en Snap!. Les élèves retrouvent les blocs et découvrent la notion de fonction. L'année dernière j'avais construit petit à petit, une bibliothèque de fonction de géométrie, milieu(A,B) qui renvoie les coordonnées du milieu où A et B étaient des listes de 2 nombres , vecteur(A,B) , parallelogramme(A, B, C, D) qui était un prédicat, etc.
    Puis j'étais passé à python et ça avait plutôt bien marché, mais le début avec une liste pour stocker les coordonnées n'avait pas été apprécié et j'y ai perdu quelques élèves.
    Cette année ce sera une bibliothèque pourcentage : En_pourcent(decimal) qui renvoie du texte, proportion(ensemble, partie) qui renvoie la proportion en décimal, partie(ensemble, proportion), ensemble(proportion, partie), taux(depart, arrivée), ...
    7 briques (fonctions) Snap! qui permettent de faire presque tous les exercices avec des pourcentages.

    Forcément, tout ce que je décris est orienté mathématiques, mais sur le site de Snap!, on trouve beaucoup d'autres choses et notamment au bas de la page :
    + un manuel de référence,
    + des livres dont Computer sciences with Snap! qui traite des situations que je n'aurais jamais cru réalisables avec Snap!
    + des extensions dont certaines pour piloter arduino, raspberry.pi et autres.
    + une version logo 3D.
    + un outil pour importer les fichiers Scratch.
    + ...

    Enfin quand une école n'a pas internet, elle peut télécharger la dernière version , la décompacter et lancer Snap.html avec Firefox. Il y a tout pour commencer, des images vectorielles d'arrière-plan et de lutins, des sons, la traduction en français, ...

    Tout ça pour dire que Snap! est accessible à un enfant de 9 ans, comme Scratch mais qu'avec on pourra l'amener beaucoup plus loin.

Connectez-vous ou Inscrivez-vous pour répondre.