Accueil > TICE > Outils pour la classe > Apprendre à coder à l’école avec le Logo ?

Apprendre à coder à l’école avec le Logo ?

« Hypothèse Logo » : cette bonne vieille tortue logo peut-elle reprendre du service dans les classes pour apprendre la programmation ? Elle n’est pas citée dans les programmes 2016, mais on peut l’inviter dans nos classes sans risquer de passer pour des ringards. Logo est même très adapté à cette initiation tout en restant ancré dans les apprentissages pour éviter de faire de la programmation « à vide ».

Que disent les programmes ?

Un aspect des nouveaux programmes 2016 est vite ressorti avant même leur publication. Cela a été vécu comme une nouveauté par beaucoup et résumé dans la presse par « On va enseigner le code à l’école ». Il s’agit en fait d’initier les élèves à la création d’algorithmes dans des situations très concrètes. Ceux qui ont connu le plan IPT [1] de 1985 retrouverons d’ailleurs ce cher Logo, mis en avant à l’époque.

Détail des éléments des programmes C2 et C3 (déplier)

Cycle 2

Attendus de fin de cycle - Mathématiques : (Se) repérer et (se) déplacer en utilisant des repères
Connaissances et compétences associéesExemples de situations, d’activités et de ressources pour l’élève
S’orienter et se déplacer en utilisant des repères. Coder et décoder pour prévoir, représenter et réaliser des déplacements dans des espaces familiers, sur un quadrillage, sur un écran. ● Réaliser des déplacements dans l’espace et les coder pour qu’un autre élève puisse les reproduire.
● Programmer les déplacements d’un robot ou ceux d’un personnage sur un écran.

Repères de progressivité : Dès le CE1, les élèves peuvent coder des déplacements à l’aide d’un logiciel de programmation adapté, ce qui les amènera au CE2 à la compréhension, et la production d’algorithmes simples.

Cycle 3

Attendus de fin de cycle - Mathématiques / Espace & géométrie [2] [3] [4]
Connaissances et compétences associéesExemples de situations, d’activités et de ressources pour l’élève
● Accomplir, décrire, coder des déplacements dans des espaces familiers.
● Programmer les déplacements d’un robot ou ceux d’un personnage sur un écran.
● Réaliser, compléter et rédiger un programme de construction.
● Réaliser une figure simple ou une figure composée de figures simples à l’aide d’un logiciel
Travailler [...] avec de nouvelles ressources comme les
systèmes d’information géographique, des
logiciels d’initiation à la programmation...

Repères de progressivité
Initiation à la programmation : Une initiation à la programmation est faite à l’occasion notamment d’activités de repérage ou de déplacement (programmer les déplacements d’un robot ou ceux d’un personnage sur un écran), ou d’activités géométriques (construction de figures simples ou de figures composées de figures simples). Au CM1, on réserve l’usage de logiciels de géométrie dynamique à des fins d’apprentissage manipulatoires (à travers la visualisation de constructions instrumentées) et de validation des constructions de figures planes. À partir du CM2, leur usage progressif pour effectuer des constructions, familiarise les élèves avec les représentations en perspective cavalière et avec la notion de conservation des propriétés lors de certaines transformations.

Attendus de fin de cycle : Sciences - Repérer et comprendre la communication et la gestion de l’information
Connaissances et compétences associéesExemples de situations, d’activités et de ressources pour l’élève
Le stockage des données, notions d’algorithmes, les objets programmables. Les élèves découvrent l’algorithme en utilisant des logiciels d’applications visuelles et ludiques.

Liens :


Quelle place pour le Logo ?

Logo c’est quoi ?

Logo (voir la page Wikipédia) est un langage de programmation qui se veut proche du langage, d’où son nom (du grec logos). Logo est né dans les années soixante et a donné naissance à toute une famille de langages dont une grande partie a été développée pour l’apprentissage de la programmation chez un jeune public.

Logo vs Scrath

On connaît tous, au moins de nom, Scratch, LE logiciel facile d’accès qui permet d’aborder la programmation avec les plus jeunes, cité dans les programmes ou les documents d’accompagnement. Dès lors, pourquoi ressortir ce vieux logo ? Une réponse en quelques points :

  • Logo permet d’aller aussi loin que Scratch sur les aspects purement programmation (instructions/commandes, variables, boucles, et même procédures ...) ;
  • Logo est un langage écrit avec des commandes et une syntaxe, en cela il conserve les apparences d’un langage commun comme php, java, javascript, ... ;
  • Logo est directement ancré dans notre programme de géométrie, il ne permettra pas d’en couvrir tous les aspects mais il sera une excellente occasion de réinvestissement de propriétés découvertes en classe. En d’autres termes avec Logo on ne fera pas de la programmation pour de la programmation mais au service de la géométrie.
  • par contre, Logo ne permet pas de faire tout ce que peut faire Scratch aussi facilement : manipulation d’images et de sons, ... Par ailleurs, l’écosystème Scratch est bien plus vaste et complet avec une communauté active, la possibilité de publier et de partager ses créations. Si l’on souhaite dépasser la géométrie et approfondir la programmation, on optera donc pour Scratch.

Sur Pécé

GéoTortue

GéoTortue
Simple, complet et pratique... En Java, donc multi-plateforme MacOS Gnu/Linux Windows

  • commandes en français avec alias abrégés ;
  • mono-fenêtre ;
  • des boutons reprennent les commandes les plus courantes pour aller plus vite ;
  • historique des commandes facile ;
  • un compas que l’on peut tourner permet d’afficher l’angle en degré (par pas de 45, utile en primaire pour donner une valeur à un angle ou pour se repérer ;
    Valeur d’un angle en degrés
  • on peut faire varier la vitesse de la tortue ;
  • un catalogue en ligne d’activités avec des niveaux de progressivité est prévu, il s’ouvre dans une deuxième fenêtre et permet la consultation de la figure à réaliser en même tant que le travail de programmation ;
  • la pinacothèque permet de faire des captures des figures créées, de les archiver et de les colorier ;
  • gros plus : on peut exporter ses figures en svg et en png.

XLogo


Probablement le plus simple, multi-plateforme car basé sur Java. MacOS Gnu/Linux Windows

  • Les commandes sont en français (avance, cachetortue, levecrayon) et ont des alias abrégés (av, ct, lc, ...) ;
  • on peut afficher une grille paramétrable (dimension carreaux et couleur du quadrillage et couleur de l’arrière plan) en fond ;
  • l’éditeur est simple et s’affiche dans une deuxième fenêtre mais on peut aussi entre des commandes à la volée ;
  • historique des commandes accessible : on peut relancer une commande de l’historique et double-cliquant dessus ;
  • on peut enregistrer les programmes créés, on obtient alors un fichier texte à l’extension .lgo ;
  • on peut faire varier la vitesse de la tortue ;
  • Java WebStart [5]

La syntaxe varie un peu entre ces deux programmes :

  • XLogo ne demande pas de ponctuation entre les commandes par ailleurs, les variables sont précédées de deux points « : » par exemple
    pour carre :longueur
    repete 4 [av :longueur td 90]
    fin
    XLogo - Procédure carre
  • GéoTortue requiert des points-virgules « ; » entre les commandes, en revanche les paramètres d’une procédure sont listés simplement sans ponctuation, par exemple :
    pour carre longueur
    rep 4 [av longueur ; td 90]
    fin
    GéoTortue - Procédure carre

KTurtle

KTurtle est une application Gnu/Linux, elle a été portée comme App dans Chrome. On la trouve donc :

  • dans les paquets de sa distribution Linux (Debian, Ubuntu) disponible en français ;
  • dans le Chrome WebStore à installer dans son navigateur Chrome (inutile d’accéder à ce lien depuis un autre navigateur que Chrome...) seulement en anglais.
KTurtle dans Ubuntu
KTurtle dans Chrome
Chercher KTurtle dans le Chrome Web Store, cliquer sur KTurtle puis sur « Accéder au site Web »

KTurtle est plus complet que les deux autres logiciels cités. On peut entrer des commandes directement dans la console pour les exécuter ou bien écrire un programme grâce à l’éditeur. KTurtle est doté d’un inspecteur à trois onglets qui permet de voir l’état des variables ou la suite des fonctions appelées lors du déroulement du programme créé.
On peut exporter les résultats du programme au format png et svg.
Par rapport aux autres, KTturle a la particularité de pouvoir écrire du texte (on paramètre la taille de la police)

Manuel en ligne de KTurtle

Les procédures sont précédées de « learn » et encadrées d’accolades ainsi que les boucles. Les variables sont précédées de $. Il n’y a pas de ponctuation entre les instructions. Le logiciels gère les enregistrements de fichiers.
Voici un exemple de programme et de résultat :

learn losange $long, $angle {
repeat 2 {forward $long turnleft $angle
forward $long
turnleft 180-$angle
}
}

reset
repeat 24 {
losange 100,30
turnleft 15}
Le direction chooser de KTurtle

À noter un « Direction chooser » qui permet de choisir la valeur des angles. KTurtle permet en plus de tourner à gauche ou à droite de donner une direction absolue avec l’instruction « direction ».

Androïd Androïd

Droid Draw

PNG
Droid Draw est en anglais mais assez simple, une fois les bases comprises. On commence par créer un programme que l’on nomme. Ensuite on ajoute les commandes une par une à l’aide du bouton « + ». Les commandes sont abrégées mais peu nombreuses et elles sont toutes reprises par un tableau dans l’éditeur de commande. Il n’est donc pas besoin d’utiliser le clavier virtuel, ce qui est confortable. Une validation de syntaxe est faite à chaque commande.

Copies d’écrans, cliquer pour agrandir
Création du programme
Programme en cours d’édition
Accès direct aux commandes
Éxécution d’un programme

La syntaxe des boucles est un peu particulière, dans l’éditeur on n’entre que le crochet fermant « ] ». Ce qui donne par exemple pour un losange (PT est l’alias de Pencil Thickness, pour paramétrer l’épaisseur du trait) :

PT 5
RPT 2
LT 150
FD 100
LT 30
FD 100
]
  • Gros plus, l’application permet d’enregistrer les programmes créés (extension .ddscript) et de les importer.
  • Point faible : on ne peut pas créer de procédure ou de fonction, ce qui limite beaucoup l’intérêt du langage.

Turtle and his friends

Turtle and his friends

Simple et sans langage. On déplace la tortue en tapant sur le bouton « pas » et on la dirige à l’aide des boutons de direction « Droite » et « Gauche » par pas de 15° . On apprend aux animaux des procédures en les envoyant à l’école (tap-long sur leur icône). Une fois diplômés, ils rejouent la séquence qu’ils ont apprise.
Les dés servent à faire répéter une commande. Pour créer une boucle de plusieurs commandes il faut apprendre à un animal la série de commandes puis apprendre à un autre animal à répéter cette série. Exemple pour le carré :

  • on apprend au singe à faire trois pas en avant puis à tourner de 6 « crans » à droite pour faire un angle droit (la séquence tapée sera : afficher le dé « 3 », taper sur un pas, afficher le dé « 6 » taper sur « Droite » ;
  • on apprend ensuite à l’éléphant à répéter quatre fois cette séquence en entrant : afficher le dé « 4 » puis taper sur l’icône du singe.
    Séquence « Cercle » apprise au singe...
    On a appris au singe à répéter 12 fois un pas en avant puis tourner à droite d’un cran...

Cette application est parfaite pour créer ses premières figures très tôt, mais je lui reproche de ne pas proposer l’écriture du script, il n’y a donc pas vraiment de langage, la transmission d’un programme est difficile. De plus, on ne peut pas revenir en arrière dans une construction pour corriger une commande ou un paramètre. Par contre, une sorte de médiathèque existe qui permet de mettre en mémoire le résultat d’un construction et de rappeler les programmes appris à ce moment de l’utilisation de l’application par les animaux.

Turtle Draw


Cette application est en anglais mais elle comporte peu de commandes la langue ne sera donc pas un obstacle pour son utilisation au primaire. L’interface est assez simple et facile d’accès et cela fonctionne plutôt bien même sur des terminaux assez petits, d’autant plus qu’un assistant de création de commandes à base de menus déroulants permet de saisir le moins de texte possible. Les copies d’écrans ci-dessous ont été faites sur un téléphone de 4,8 pouces)

Commande et résultat - Clic pour agrandir
Saisie manuelle de la commande. Les couleurs du fond et du crayon sont paramétrables.

L’assistant de création de commandes (qu’il aurait fallu nommer assistant de création de programmes) est très pratique. Il permet de s’affranchir de la syntaxe et de se concentrer sur le programme. Le nombre de commandes est d’ailleurs très restreint : elles sont toutes listées sur cette copie d’écran :

Éditeur de commandes

Des figures prédéfinies sont disponibles (étoile, carré, cercle et triangle), en les choisissant on créé un programme dont on peut modifier les paramètres et l’ordre des commandes.

Figures prédéfinies
Ici le programme prédéfini « carré »

Il est dommage qu’il n’ait pas été prévu une forme d’enregistrement des programmes. On peut toujours faire des copier coller et enregistrer nos programmes ailleurs mais ce n’est pas pratique. De plus, l’éditeur de commande est trop petit, et en dehors des figures simples il devient vite contraignant de saisir ou modifier des programmes sur une seule ligne. Enfin, il n’est pas possible de créer de fonctions ou de procédures.

iOS MacOS

Logotacular


Une appli très bien faite, l’interface est en anglais mais le vocabulaire ne sera pas un obstacle. L’essentiel des commandes est résumé dans quatre pages facilement accessibles. On peut sauvegarder ses programmes, créer des procédures et utiliser des variables.

Logotacular
Espace de travail
Logotacular
Pages du « Tutorial »
Logotacular
Pages de références

Logotacular permet d’afficher une grille et d’en régler l’opacité, ce qui est pratique pour le repérage des distances. En revanche, il y a à mes yeux un point faible, c’est que les commandes et les procédures se saisissent dans le même espace. Du coup, si on souhaite effacer un appel à une procédure, on efface aussi la procédure. Enfin, la gestion des erreurs est un peu curieuse : si je saisis « td 90 » au lieu de « rt 90 » (tourne droite au lieu de right turn), le programme stoppe à cette commande erronée mais ne renvoie aucun message. Par contre, dans une procédure, avant même de taper sur « play », une flèche me signale un problème.

Logotacular - Grille
Afficher et régler une grille - Ici rectangulaire 100x100
Logotacular
Gestion des erreurs de syntaxe. Une flèche dans la procédure mais rien dans le reste du programme.

Web

Tortue-Logo


Une « WebApp » Logo utilisable sur tous les matériel et systèmes, sans-Java-ni-Flash(r), une pépite ?

Tortue-Logo

L’appli est bien adaptée à l’école primaire. Elle permet de faire de la géométrie en utilisant les procédures et les paramètres. Pour l’utiliser au mieux il faudra créer un compte sur le site à l’aide d’une adresse mail et d’un mot de passe. Ainsi, on devrait pouvoir sauvegarder ses procédures (qui s’appellent des fonctions dans Tortue-Logo) et les utiliser à tout moment mais aussi les modifier.

Tortue-Logo
Fenêtre de saisie des programmes et commandes
Tortue-Logo
Résultat du programme
Tortue-Logo
La tortue a interdiction de sortir de son enclos...
Tortue-Logo - Fonctions
Liste des fonctions créées par l’utilisateur
Tortue-Logo
Liste des fonctions, on peut les éditer en cliquant sur le nom.

Mais, il y a quelques points faibles de taille :

  • les fonctions enregistrées ne sont pas toujours invocables, on a souvent un message d’erreur qui indique que la fonction n’existe pas alors qu’elle est bien listée dans le profil. Il faut coller son code et la relancer comme une création puis la re-sauver... ;
  • l’espace de travail est limité : la tortue ne peut sortir de cet enclos ;
  • l’historique de commande ne fonctionne pas ;
  • le logo de l’appli se superpose à tout et on doit constamment le fermer.

Mais il y a de l’espoir car l’appli est libre et on peut se l’installer sur un serveur...

Quelles activités ?

Sur le plan de la programmation, quels objectifs se fixer ?

  • connaître les commandes de base : avance, tourne droite, tourne gauche, vide écran, lève crayon, baisse crayon. On introduira le concept d’argument (syn de paramètre) tout de suite car les commandes avance ou tourne ne fonctionnent pas sans argument (si on passe la commande AV sans rien, GéoTortue me répond « Nombre d’arguments incorrect. La commande av doit être suivie de 1 argument(s). Taper la commande « av ? » pour afficher l’aide. » et Xlogo répond « Pas assez de données pour avance ».
  • introduire l’itération par exemple en créant une ligne de pointillés : répéter dix fois (baisse crayon, avance 10, lève crayon, avance 10) : rep 10 [bc ; av 10 ; lc ; av 10] pour GéoTortue et repete 10 [bc av 10 lc av 10] pour XLogo.
  • on peut ensuite construire nos première figures, les plus simples sont certainement les carrés et les rectangles car ils utilisent l’angle droit ;
  • à partir de là, il est important de reprendre nos carrés puis nos rectangles pour les construire avec une écriture itérative : rep 4 [av 100 ; td 90] au lieu de av 100 ; td 90 ; av 100 ; td 90 ; av 100 ; td 90 ; av 100 pour un carré dans GeoTortue et repete 2 [av 100 td 90 av 50 td 90] au lieu de av 100 td 90 av 50 td 90 av 100 td 90 av 50 pour un rectangle dans XLogo. On en profitera pour mettre en évidence qu’un tour complet de la tortue (quand elle revient dans la même direction qu’au départ) fait 360°
  • on peut à présent aborder la création de procédures, on peut commencer par un petit programme qui créera un carré de dimensions variables :
GéoTortue - Procédure pour un carré de côté « longueur »
XLogo - Procédure carre appelée avec divers paramètres
Fichier GéoTortue - Procédure carre
pour carre :longueur
repete 4 [av :longueur td 90]
fin
  • les élèves sont alors en situation de produire des solutions à des problèmes de construction de polygones réguliers, la valeur de la rotation de la tortue sera 360°/nombre de côtés (attention il s’agit de l’angle de rotation de la tortue et non de la valeur des angles du polygone construit). Par exemple pour un hexagone un code du genre :
Une procédure pour dessiner des hexagones de côté donné dans GéoTortue. On créé un polygone en appelant la procédure hexagone suivi d’un paramètre : la longueur des côtés.
pour hexagone longueur
rep 6 [av longueur ; td 60 ;]
fin
Une procédure pour dessiner des polygones réguliers de longeur donnée dans GéoTortue. L’utilisation avec 360 côtés permet de créer un « faux cercle » qui l’apparence d’un cercle mais reste un polygone.
pour polygone longeur cote
rep cote [av longeur ; td 360/cote]
fin
GéoTortue - Procédure Polygone
  • on peut ensuite imbriquer les boucles de répétition pour créer des figures complexes comme n carrés de même longueur décalés de x degrés. Ainsi, on créé une procédure qu’on utilise dans une autre :
pour carré longueur
rep 4 [av longueur ; td 90]
fin
pour figure longueur angle repete
rep repete [carré longueur ; td angle]
fin
figure 90 15 24
  • les branchements conditionnels : que se passe-t-il si on passe la commande polygone 90 3.5 ? C’est l’occasion de redemander la définition d’un polygone aux élèves (figure fermée formée dont tous les côtés sont des segments) et de montrer qu’on ne peut pas construire un polygone avec un nombre décimal de côtés. Or notre procédure trace la figure ci dessous, sans indiquer d’erreur. Il faut donc la corriger et introduire un test : si le nombre de côtés est entier je trace la figure, sinon j’écris « Ce n’est pas un nombre entier » :
pour polygone longueur cote
si (cote==floor(cote)) alors [rep cote [av longueur ; td 360/cote] ] sinon [écris « Ce nest pas un nombre entier »]
fin

Et en géométrie ?

  • S’orienter dans l’espace, on peut travailler simplement on mettant un place un petit labyrinthe en image de fond (XLogo ne sait pas le faire, pour GéoTortue : Outils → Préférences →
    Espace graphique → Image de fond → Fichier). Dès le CE1.
GéoTortue - Un labyrinthe pour s’orienter
Exemple d’image de fond pour un labyrinthe
Labyrinthe simple

Une variante de l’activité consiste à utiliser une direction absolue (un cap) au lieu d’une rotation de la tortue (direction relative) avec la commande fixecap de XLogo (pas d’équivalent dans GéoTortue).

L’IREM Paris-13 propose une programmation pour le cycle 3 avec activités et fichiers à télécharger.

Programmer sans ordinateur ni tablette

Et pourquoi ne pas commencer par travailler au tableau ? Un tableau quadrillé, un aimant déguisé en tortue et hop... Il n’y a plus qu’à définir une liste de commandes (on prendra celles du logiciel que l’on compte utiliser par la suite).

On désigne ensuite un interpréteur, élève qui exécutera au tableau les commandes puis les programmes créés par les programmeurs de la classe. On introduit ainsi progressivement les différentes commandes et concepts. Et on peut mettre en évidence le fait que plusieurs programmes permettent d’arriver au même résultat.


Historique de la page


[2(Se) repérer et (se) déplacer dans l’espace en utilisant ou en élaborant des représentations

[3Reconnaître et utiliser quelques relations géométriques

[4Reconnaître, nommer, décrire, reproduire, représenter, construire quelques solides et figures géométriques

[5On peut théoriquement lancer XLogo sans installation dans un navigateur si Java est installé sur le PC, ce qui exlut Android et iOs, mais même sur Windows, ce n’est pas si simple... En effet le chargement est assez long et plusieurs fenêtres s’ouvrent pour demander la permission de lancer l’applet, bref pas bien simple.