Accès à la partie scientifique
Cette partie de la formation décrit une activité de classe réalisée par groupes de 3 ou 4 élèves. Son but est de faire découvrir aux élèves les notions de programmation, d’exécution d’un programme et de débugage, c’est-à-dire la réparation d’erreurs dans le code. Ces notions sont découvertes par l’expérimentation, car les élèves doivent écrire des programmes pour un élève-robot afin qu’il construise des pyramides de gobelets. Cette activité a été pratiquée dans des classes des niveaux CM1 à 5ème. Elle ne nécessite pas de matériel informatique et peut se dérouler dans une salle de classe ordinaire.
On présente également une deuxième séance en classe de façon moins poussée car notamment sans vidéos démonstratives. Il y a cependant tous les documents écrits disponibles pour les professeurs plus intéressés. Cette deuxième séance est plus destinée aux collégiens mais est abordable aussi pour les primaires. Elle permet aux élèves de découvrir notamment la notion de fonction (dans le sens informatique et non mathématique du terme) et leur fait remarquer l’intérêt de l’existence de celles-ci.
1. Présentation de la séance
image ? |
- Objectif :
- Mettre en évidence les techniques de programmations et illustrer les besoins de définir les fonctions.
- Utiliser un « vocabulaire robotique » prédéfini que vos élèves vont utiliser pour guider l’un d’entre eux, afin d’accomplir des tâches spécifiques sans discussions préalables.
- Cette leçon permet aux élèves d’apprendre le lien entre symboles et actions, ainsi que la très utile compétence de correction « debugging »
- Découvrir la notion de variables (si l’on fait la seconde séance)
- Compétences :
- Apprendre à convertir des activités physiques en instructions ;
- Pratiquer le codage d’instructions avec des symboles ;
- Développer la nécessité de la précision dans le codage ;
- Apprendre à corriger un code qui ne fonctionne pas ;
- Comprendre l’utilité des fonctions et des paramètres (6e-5e).
- Niveaux : CM1, CM2, 6ème, 5ème
- Durée : 1h environ ; 1h pour la deuxième séance
- Prérequis : Savoir compter
2. Contexte informatique
- Dès lors que nous utilisons un ordinateur, nous mettons en action une quantité insoupçonnée de calculs en action dans notre ordinateur, que ce soit pour ouvrir une page internet, écrire un texte, ou tout simplement bouger notre souris. Pour que cet ordinateur sache comment réagir aux différentes actions, il a donc fallu lui communiquer quoi faire. Les informaticiens utilisent donc pour cela des langages de programmation, qui servent à écrire les programmes régissant notre ordinateur. Ce sont donc des éléments essentiels à l’informatique, bien qu’ils ne soient généralement pas approchés de près ou de loin par l’utilisateur.
- Dans la séance en classe, nous utilisons le langage Gobot, inventé pour l’occasion mais partageant la plupart des caractéristiques des langages de programmation. Il nous permet donc de faire une découverte simplifiée de ces langages.
- Les principales caractéristiques des langages de programmation ainsi que le langage Gobot sont présentés plus précisément dans la partie scientifique de cette formation.
Accès à la partie scientifique.
3. Contexte pédagogique
- L’informatique sans ordinateur est une approche de l’enseignement de l’informatique, complémentaire de l’approche classique, dont l’objectif est de profiter du décalage apparent entre les termes "informatique" et "sans ordinateur" pour se poser des questions sur les concepts mis en œuvre et prendre du recul par rapport aux usages quotidiens. L’idée directrice consiste à enseigner des notions fondamentales de la science informatique de façon ludique, sans aucun recours à des objets numériques. On utilise à la place des cartes, des jetons, des gobelets, des billes, etc. Ainsi, l’accent est mis sur le contenu scientifique, sans se laisser éblouir ou au contraire rebuter par la technologie.
- Dans l’activité proposée, on utilise les enfants pour jouer le rôle de l’ordinateur/du robot. Bien entendu, il est donc nécessaire de bien insister sur le comportement à adopter pour les robots afin d’avoir une bonne compréhension des phénomènes mis en évidence.
- Pour obtenir un exercice plus ludique et éviter de rebuter les enfants avec l’aspect souvent assez austère de l’informatique, l’exercice prend la forme de la construction d’une pyramide de gobelets. Bien entendu, il s’agit de construire cette pyramide non pas de manière naturelle, mais comme un robot le ferait : par le biais d’une suite d’instruction, c’est-à-dire un programme. Pour cela, on définit en classe entière le langage restreint utilisé. Ensuite la phase de conception d’un programme se déroule en petits groupes de préférence.
- Le contenu de cette partie de la formation s’appuie sur la vidéo d’une séance en classe assurée par Sarah Gali. Le film a été tourné le 11 janvier 2016.
- L’activité proposée dans cette formation est une adaptation d’un travail didactique américain, nommé « My robotic friend », publié sous licence CC By-Nc-Sa par la société ThinkerSmith Traveling Circuits, Eugene, Oregon, USA. (site en Anglais et ouvrage en Anglais).
4. Présentation de la séquence filmée en classe
5. Le matériel utilisé
Ce chapitre est consacré à la présentation du matériel utilisé dans la séquence filmée en classe, des liens pour télécharger les documents sont donnés à la fin de ce chapitre.
- L’équipe de l’école des sciences dans le Puy-de-Dôme a construit des supports pour gobelet, dans le but de bien illustrer ce que représentait un déplacement d’une unité (un rayon de gobelet) pour les élèves. Vous pouvez construire un autre support en suivant ce modèle si vous souhaitez faire quelque chose de durable ou réutilisé.
- Nous mettons également à votre disposition sur le site plusieurs documents :
- La fiche professeur détaillant le déroulement de séance, que nous avons également écrite et légèrement remaniée sur le site.
- La fiche scientifique, qui explique la notion de langage de programmation pour les professeurs, mais qui est moins détaillée que notre partie scientifique sur ce site.
- La carte résumé des symboles à potentiellement distribuer aux différents groupes pour se rappeler de la signification de chaque flèche.
- Différents modèles de pyramides pour faire les exercices, les plus compliquées à la fin.
- Une fiche contenant deux cartes "entraînement des robots" avec trois exercices pour que les robots s’entraînent à suivre les instructions pendant que le reste du groupe écrit le programme.
- Une fiche support pour bien montrer la longueur d’un déplacement
- Un modèle pour découper des gobelets si vous ne souhaitez pas en acheter.
Fiche professeur | Fiche scientifique | Carte résumé des symboles | Modèles de pyramides | Entraînement des robots | Fiche support | Gobelets à découper |
6. La fiche professeur
Ce chapitre propose un déroulement de séance détaillé et minuté, qui suit pas à pas l’utilisation de la fiche élève.
Voici une version à télécharger :
SÉANCE 1
Introduction de la séance
- Durée : 5’
- Dispositif : Oral collectif
Demander à la classe : Quelqu’un a-t-il déjà entendu parler de robotique ? Quelqu’un a-t-il déjà vu ou touché un robot ? Un robot entend-il vraiment quand nous parlons ? Comprend-il vraiment ce que disons ?
La réponse à la dernière question est : « Pas de la même manière qu’une personne. »
Les robots opèrent à partir d’instructions, un ensemble de choses qu’ils ont été préprogrammés à exécuter. Dans le but d’accomplir une tâche, un robot a besoin d’avoir une série d’instructions (parfois appelé algorithme) qu’il puisse exécuter.
Aujourd’hui nous allons apprendre ce qu’il faut pour que cela marche.
Présentation :
- Durée : 15’
- Dispositif : Oral collectif
- Matériel :
- Carte-résumé
- Gobelets
- Carte représentant la taille d’un pas
Présenter une copie de la carte-résumé des symboles (ou l’écrire au tableau). Poussez-vous et dites à la classe que ce sont les seuls 6 symboles qu’ils vont pouvoir utiliser pour cet exercice.
Les flèches latérales permettent respectivement d’avancer ou de reculer d’une unité. Attention, une unité est en fait un demi-gobelet si l’on veut pouvoir faire des pyramides !
La flèche vers le bas permet de poser le gobelet à l’endroit où est suspendue notre main. La flèche vers le haut permet de soulever un gobelet. (Il n’est pas nécessaire de mettre une flèche vers le haut après chaque flèche vers le bas)
Enfin, les flèches circulaires servent à tourner la main du robot d’un demi-tour, à droite ou à gauche selon le sens de la flèche, dans le but de poser des gobelets retournés.
Pour cette tâche, ils vont donner des instructions à leur robot afin de construire un empilement de gobelets, en utilisant uniquement ces flèches.
Il peut être utile de traiter un exemple en classe. Il y a dans le paquet de carte une situation qui inclut seulement trois gobelets. Montrez la carte à la classe et guidez-les vers la résolution de cet exercice.
Placez votre pile de gobelets sur le bureau, de telle manière que tout le monde puisse la voir. Demandez à la classe de vous donner la première instruction. La bonne réponse est « Prendre un gobelet ». Quand vous prenez un gobelet, remarquez qu’il doit automatiquement monter au-dessus du gobelet le plus haut actuellement dans la pile.
Avec votre main encore en l’air, demandez le mouvement suivant. Il se peut que vous ayez à rappeler à la classe une ou deux fois qu’un pas en avant ou en arrière représente seulement la moitié de la largeur du gobelet.
Une fois que vous avez placé un premier gobelet, passer au tableau et proposer à la classe de vous aider à écrire les symboles, de telle manière que vous puissiez « lancer le programme » plus tard. Une solution possible ressemblerait à cela :
Finalisation :
Une fois le programme écrit, vous pouvez appeler un volontaire pour « exécuter le programme ». Prononcez à voix haute les flèches pendant que vous déplacez les gobelets à leur place.
Par exemple, le programme ci-dessus serait énoncé :
« Prendre un gobelet » ; « Un pas en avant » ; « Un pas en avant » ; « Poser le gobelet » ; « Un pas en arrière » ; « Un pas en arrière ».
« Prendre un gobelet » ; « Un pas en avant » ; « Un pas en avant » ; « Un pas en avant » ; « Un pas en avant » ; « Poser le gobelet » ; « Un pas en arrière » ; « Un pas en arrière » ; « Un pas en arrière » ; « Un pas en arrière ».
« Prendre un gobelet » ; « Un pas en avant » ; « Un pas en avant » ; « Un pas en avant » ; « Poser le gobelet » ; « Un pas en arrière » ; « Un pas en arrière » ; « Un pas en arrière ».
Mise en exercice
- Durée : 30’
- Dispositif : Groupes de 3 ou 4 élèves
- Matériel :
- Gobelets
- etc ?
Limiter les groupes à 4 étudiants, trois étant l’idéal.
Le but est d’avoir assez de programmeurs dans chaque groupe pour que personne ne soit entièrement perdu.
Pour le collège : Les élèves terminent généralement rapidement l’ensemble des activités, ce qui permet de passer aux fonctions.
- Choisissez un « Robot » dans chaque groupe, qui se met à l’écart dans la « bibliothèque des robots ». Ce doit être un lieu assez loin des groupes, pour que les robots ne puissent pas trouver quelle carte du paquet les programmeurs sont en train de coder. Les robots peuvent passer leur temps dans la bibliothèque à s’entraîner à déplacer les gobelets ou demander des clarifications sur les règles.
- Chaque groupe de programmeurs doit utiliser une seule carte à la fois. Ils peuvent maintenant essayer de dégager des éléments importants de leur travail : Combien de gobelets sont nécessaires ? Combien de pas sont nécessaires pour le premier gobelet ? Le deuxième ? Y a-t-il des gobelets à l’envers ? Comment faire pour que le robot retourne un gobelet ?
- Une fois ces problèmes résolus, les programmeurs utilisent les symboles pour écrire leur code sur une feuille blanche. Les programmeurs doivent relire leur code pour vérifier qu’il est correct avant de faire sortir leur robot de la bibliothèque.
- Maintenant que le robot est de retour dans le groupe, tout le monde doit être silencieux. Les programmeurs ne doivent pas donner d’indications, verbales ou gestuelles, qui influencerait le comportement du robot. Le robot ne doit faire que ce que les symboles lui ordonnent de faire. Si le groupe remarque un problème, ils sont autorisés à arrêter l’exécution du programme, renvoyer le robot à la bibliothèque, et corriger l’erreur avant de faire revenir le robot pour terminer le défi.
- Chaque fois qu’un groupe résout un défi, ses membres choisissent un nouveau robot pour aller à la bibliothèque, et le groupe choisit une nouvelle carte, si possible plus difficile que la précédente. On continue jusqu’à ce que l’heure soit terminée.
Si cela fonctionne bien, et que les groupes n’ont plus de cartes-programmes, encouragez-les à créer leur propre empilement de gobelets.
Synthèse
- Durée : 5’
- Dispositif : Oral collectif
"Aujourd’hui vous venez d’imiter le travail des informaticiens lorsqu’ils doivent apprendre à un ordinateur ou à un robot à réaliser une tâche. En effet, ils utilisent des langages de programmation, c’est-à-dire des langages spéciaux pour communiquer avec l’ordinateur : tout comme notre langage des flèches !"
SÉANCE 2
Cette séance n’est pas présentée en vidéo et ne sera pas explorée en détail, mais voici le déroulé si vous souhaitez l’effectuer. Elle permet d’aborder la notion de fonctions.
Rassembler la classe à nouveau. Dites-leur que vous allez leur donner un empilement spécial que vous voulez qu’ils codent en un temps record.
Vous entendrez sûrement des plaintes, voire des refus. Demandez à la classe quel est le problème. Qu’est-ce qui rend cet empilement si difficile ? Cet empilement est intimidant, parce que chaque gobelet supplémentaire à ajouter en longueur demande à ce que l’on rajoute deux flèches pour l’avancée et deux flèches pour le retour. Pour coder proprement, inévitablement, on se retrouvera avec ce genre de ligne de code :
Souvent, les élèves commencent à écrire une version condensée des instructions durant la séance, en incluant des nombres. Par exemple :
Pendant la première séance, notez avec les élèves cette méthode, mais ne les encouragez pas. Rappelez-leur de n’utiliser que les 6 symboles de base autorisés.
Dans cette deuxième séance, par contre, vous pouvez reconnaître la clairvoyance de ceux qui ont essayé cette idée, et reconnaître qu’ils ont, de manière indépendante, découvert le besoin de fonctions.
Faites-remarquer à la classe que la flèche avec un nombre est une façon intelligente d’indiquer une répétition de la flèche un nombre spécifique de fois. En autorisant ceci, on peut créer un nouveau symbole que l’on peut appeler pour éviter les répétitions dans le code. C’est l’idée exacte derrière les fonctions.
Proposer à la classe de trouver les suites les plus longues de code qui se répète pour chaque placement de gobelet. Vous pouvez faire les regroupements que vous désirez, mais la série devrait ressembler à cela :
C’est un pas intermédiaire, mais on peut simplifier encore plus. Si on positionne les symboles dans le sens horaire, en partant du haut, et si on les assemble en un seul symbole, on pourrait obtenir quelque chose qui ressemble à cela :
où « x » est le nombre de pas dont on aura besoin pour avancer, puis reculer.
Ci-dessus, nous avons un symbole qui ressemble au reste du vocabulaire, mais nous avons aussi inclus un moyen de donner une information supplémentaire, sur le nombre de fois où nous souhaitons appliquer les flèches d’avancée et de recul.
Maintenant que la classe possède cette nouvelle symbolique, proposez leur de s’attaquer à une nouvelle carte. Les groupes peuvent se rassembler pour utiliser plus de gobelets.
Une fois la notion bien comprise par tous, rassemblez la classe et demandez ce que l’on a créé pendant cette séance. Les notions importantes à remarquer sont le fait qu’on représente maintenant une longue tâche en un seul "mot"/symbole et le fait qu’on peut faire varier sa signification en choisissant le nombre.
On peut alors dire par exemple : "Aujourd’hui nous avons créé une fonction : C’est quelque chose qui permet de réaliser à chaque fois la même tâche. On peut même préciser quel type de tâche on veut en écrivant également un paramètre : c’est le nombre que l’on marque au-dessus du symbole. C’est très utilisé par les programmeurs pour éviter de répéter en permanence la même chose"
7. Les élèves en situation de recherche
8. Quelques obstacles
9. Compléments
Fichiers pour la classe à télécharger
ZIP de tous les fichiers ? |