Comment diriger un véhicule à distance ?
- Discipline / domaine
- Espace et géométrie
- Objectif
- - définir un langage de programmation et explorer les différences avec la langue naturelle.
- découvrir la notion de bug (optionnel)
- Durée
- 50 minutes (5 phases)
- Matériel
- Fiche 28
ordinateurs avec une connexion internet
cahier de mathématiques et de sciences
- Remarques
- Le cahier de mathématiques contiendra les éléments relatifs aux déplacements, exercices de prolongement... qui sont en lien avec la géométrie.
Le cahier de sciences contiendra les éléments liés au projet dans son ensemble et la programmation.
1. Présentation du projet
" Nous commençons une séquence sur le langage de programmation informatique. Vous allez apprendre comment fonctionne un programmation et comment donner des informations à une machine. C'est un travail à la fois de mathématiques et de sciences. Nous utliserons les deux cahiers. Pour cela, nous allons imaginer que...
Nous partons en mission sur une planète lointaine. Avant notre expédition, nous allons préparer la mission, réfléchir à la façon dont nous nous déplacerons, et dont nous communiquerons. Ensuite, la classe va simuler la mission à travers un programme." (trace écrite du projet à coller dans le cahier de sciences)
Première étape : notre véhicule (un rover).
Faire une affiche intitulée « Qu’est-ce que l’informatique ? » avec les différentes étapes de la mission , au fur et à mesure et prévoir un espace pour y ajouter les éléments de connaissance correspondants (notions de langage, d’algorithme, de programme, de machine, d’information…) → explicitation cognitive.
"Vous devez également savoir que la planète est déjà habitée et que la mission dispose d'un véhicule sur place. L'environnement est hostile et lors des sorties d'exploration, une personne doit toujours rester à la base par sécurité, ça s'appelle être d'astreinte.
Si les personnes sur le terrain ne sont plus en mesure de piloter le rover (perte de connaissance), cette personne d'astreinte doit pouvoir le diriger à distance pour le ramener à la base en utilisant des ondes, mais il faut inventer le langage qui va donner les ordres au véhicule."
2. Définition d'un langage
Affichage de la fiche 28 sur le vidéoprojecteur et distribution aux élèves :
"la zone de la mission a été quadrillée sur un plan et un chemin a été tracé. On ne peut pas modifier le chemin car il évite les zones dangereuses (donc pas de raccourci, pas de diagonale). Il faut donc suivre le parcours dans le sens de la flèche.
Vous devez définir les instructions à donner au rover"
cahier de mathématiques et crayon à papier
(6-7') Les élèves prennent connaissance de la fiche. Ils recherchent les instructions à donner au rover sur leur cahier de sciences.
L'enseignant circule dans les différents groupes pour s'assurer de la compréhension de la consigne. Il peut guider les groupes qui n'osent pas se lancer dans l'activité.
(6-7') Les élèves testent leurs consignes en regroupement de 2 ou 3 binômes. Prévoir une phase d'ajustement des consignes données au rover de quelques minutes.
3. Déplacements allocentrés ou autocentrés
Les élèves vont tester leur réponse en grand groupe et on isole les réponses qui guident effectivement le rover à la base.
Temps 1 : "d'où viennent les erreurs de consignes qui ne conduisent pas à la base ? Tout le monde a bien travaillé mais pour certains groupes les consignes ne permettent pas de retourner à la base. Pour quelles raisons ? "
Faire émerger la difficulté à se repérer, la distinction entre la position du rover et son orientation, ainsi que les problèmes d'organisation au sein du binôme.
Temps 2 : les consignes qui fonctionnent, sont classées en deux catégories : les consignes absolues ou allocentrées (va au Nord, va à l'Est...) et les consignes relatives ou autocentrées (qui dépendent de la position et de l'orientation du rover : tourne à gauche...). NB : les instructions du type "avance d'une case vers la droite" doivent être découpées en deux étapes "tourne vers la droite, puis avance d'une case".
Une troisième logique peut (plus rarement) être proposée : il s’agit de donner des coordonnées aux cases (A1, A2, B1…) et, comme dans un jeu de bataille navale, coder les déplacements en donnant le nom de la case de départ et d’arrivée. Exemple, « va de A1 vers A2 ». À noter : le chemin « A1 vers A2 » n’est pas ambigu car les cases sont adjacentes. En revanche, le chemin « A1 vers B7 » est ambigu (et, donc, non satisfaisant) : il y a plusieurs façons d’aller de la case A1 à la case B7. Nous ne détaillons pas cette méthode dans ce qui suit.
Il est probable que les 2 méthodes aient été trouvées par les uns ou les autres. Si cela n’est pas le cas, l’enseignant introduit les méthodes lors de cette mise en commun.
L’enseignant fait remarquer que les instructions sont exprimées dans un langage particulier, avec un vocabulaire très restreint, et non ambigu : chaque instruction est parfaitement explicite et ne peut pas donner lieu à plusieurs interprétations. Il s’agit d’un langage de «programmation ». Faire le lien avec la notation musicale, par exemple.
Ce langage peut encore être simplifié. Par exemple, il est inutile de dire « Va vers l’Est » quand on peut simplement dire « Est » ou « Va à droite » quand on peut simplement dire « Droite » (si on a bien défini au préalable ce que l’on entend par « Droite »,par exemple, « va d’une case vers la droite » et non pas « pivote sur toi-même d’un quart de tour vers la droite »).
Trace écrite
Langage absolu ou allocentré (4 mots) | Langage relatif ou autocentré (3 - 2 mots) |
NORD SUD EST OUEST | AVANCE DROITE GAUCHE (DROITE, DROITE, DROITE) |
En informatique, on invente et on utilise des langages. Pour donner des instructions à une machine, on utilise un langage de programmation, compréhensible à la fois par la machine et par l'être humain. Un langage de programmation est différent d’une langue naturelle :
- Il possède très peu de mots et de règles de grammaire
- Il ne laisse place à aucune ambiguïté
Il existe de nombreux langages de programmation, adaptés à différents usages.
Compléter l'affiche « Qu’est-ce que l’informatique ? ».
4. Sensiblité des erreurs (optionnel)
"D'après vous, que va-t-il se passer si on introduit une erreur dans le programme ?"
Faire un exemple avec la fiche 28.
Les élèves constatent que l'objectif n'est pas atteint.
De plus, cela peut conduire à des incidents graves (dans notre cas, le rover tombe dans une crevasse...)
Trace écrite
Si le programme contient une erreur cela s'appelle un bug. Un bug minime en apparence peut avoir des conséquences énormes.
Note pédagogique
Nous avons choisi d’utiliser l’orthographe anglaise « bug » (qui signifie « bestiole » en anglais) plutôt que l’orthographe francisée « bogue » de façon à respecter l’origine
historique de ce mot. C’est en effet Grace Hopper qui a popularisé l’expression « bug » lorsqu’elle a découvert l’origine d’une panne dans son
ordinateur : un insecte grillé au coeur des circuits. Prolongement : faire une recherche sur Grace Hopper (informaticienne américaine célèbre du début de l'informatique)
5. Exploration souterraine (prolongement optionnel)
Ces exercices peuvent être faits à la suite de la séance ou à posteriori. (cahier de mathématiques)
http://www.fondation-lamap.org/fr/page/34537/1-2-3-codez-espace-eleves#exo_exploration
Prolongements possibles :
- traduction d’un langage vers un autre langage, à faire en binôme :
Traduire la séquence d’instructions « Nord, Ouest, Nord, Est, Est, Est, Sud, Est, Sud, Ouest, Ouest, Nord, Nord » (langage allocentré) en une expression autocentrée. Vérifier
sur une feuille quadrillée que les 2 expressions conduisent bien au même résultat.
Traduire (pour un rover orienté initialement vers le Nord) « Droite, Avancer, Avancer, Gauche, Avancer, Gauche, Avancer, Avancer, Avancer, Avancer, Droite, Avancer » en
une expression allocentrée et, de même, vérifier sur une feuille quadrillée le résultat.
- Si ce prolongement a été traité, ajouter dans la trace écrite la notion suivante :
On peut traduire le même ensemble d’instructions d’un langage vers un autre.