Réaliser une application sous Scratch pour calculer une vitesse moyenne TraAM 2019-2020

, par Jérôme Beaudet

Cet article illustre un exemple d’usage proposé par le GEP de l’académie de Versailles s’inscrivant dans le projet national TraAM 2019-2020 dont la thématique est :


Le codage et l’algorithmique pour l’enseignement de la physique-chimie


Aller à la page nationale des TraAM.



Professeur expérimentateur

  • Jérôme Beaudet
  • Collège Paul-Éluard
  • Châtillon (92)

Niveau - Thèmes

  • Collège
  • Cycle 4 — classe de 3e

Introduction

Cette activité vise à faire réaliser par les élèves un programme permettant de calculer la vitesse moyenne d’un mobile.
Elle permet une introduction à l’algorithmique et au codage, tout en faisant appel à des notions de Physique-Chimie, avec une attention portée aux unités.

Compétences

  • Pratiquer des langages (Domaine 1) : Passer d’une forme de langage scientifique à une autre (langages mathématiques, scientifiques et informatiques).
  • Mobiliser des outils numériques (Domaine 2) : Utiliser des outils d’acquisition et de traitement de données, de simulations et de modèles numériques.
  • Concevoir, créer, réaliser (Domaine 4) : Concevoir et réaliser un dispositif de mesure ou d’observation (ici, plutôt de calcul)

CRCN - Compétences Numériques

  • C1-3 « Informations et données » : traiter des données
  • C3-4 « programmer » : niveaux 1 (Lire et construire un algorithme qui comprend des instructions simples) à 3 (Développer un programme pour répondre à un problème à partir d’instructions simples d’un langage de programmation)

Notions et contenus du programme

  • Notions et contenus : Caractériser un mouvement (Utiliser la relation liant vitesse moyenne, distance et durée).
  • Compétences exigibles : Aborder les différentes unités de distance et de durée et savoir les convertir.
  • Capacités numériques : Réaliser un programme sous Scratch ; partager un fichier avec l’outil adapté au contexte.

Objectif(s) pédagogique(s)

  • Asseoir les compétences liées à la résolution d’un calcul, avec la rigueur nécessaire.
  • Bien distinguer grandeur et unité.
  • Rédiger un calcul de manière rigoureuse, en séparant ce qui est immuable (relation littérale) et ce qui dépend du contexte (application numérique).
  • Comprendre qu’une procédure telle que celle mise en œuvre pour faire un calcul peut être codée sous forme de langage informatique.
  • Distinguer algorithmique et codage.

Objectifs disciplinaires et/ou transversaux

  • Comprendre que toute résolution et présentation d’un calcul suit la même logique : utilisation d’une relation mathématique (avec les unités cohérentes), application numérique avec conversion des valeurs dans les bonnes unités, phrase-réponse présentant le résultat.
  • Savoir déterminer les objectifs à atteindre en fonction de leur difficulté (notion de "Cahier des charges").
  • S’approprier un langage de programmation pour résoudre une tâche, en réinvestissant les connaissances et méthodes travaillées en Technologie et Mathématiques.
  • Comprendre, par l’expérience, l’importance de la planification d’une tâche.
  • Comprendre qu’il peut exister plusieurs méthodes valables pour atteindre un objectif.

Description succincte de l’activité

Ce scénario propose aux élèves de réaliser un algorithme pour la résolution d’un calcul de type d = v × t (distance, vitesse, durée), et d’en tirer un programme dans Scratch permettant de résoudre ce type de calcul, en mettant en valeur les différentes étapes du raisonnement :

  • identification de la grandeur recherchée, des données disponibles, des unités ;
  • puis conversions éventuelles, calcul ;
  • rédaction de la phrase-réponse.

Découpage temporel de la séquence

Les durées mentionnées sont indicatives.

Pré-requis

  • Avoir pratiqué des situations dans lesquelles un calcul est à mettre en œuvre, qui utilise la relation d = v × t ou v = d / t ou t = d / v
  • La partie du programme sur laquelle il est proposé de travailler concerne la sécurité routière.
  • On pourra ainsi chercher à calculer une distance de réaction, par exemple, ou chercher à déterminer si une vitesse maximale autorisée a été dépassée ou non.
  • L’exemple de situation de démarrage choisie ici est un calcul de vitesse moyenne (relation sous la forme v=d/t).
    La relation 1 m/s = 3,6 km/h peut avoir été établie.

Outils utilisés / Matériel

  • Logiciel Scratch
  • Les vidéos à regarder peuvent être communiquées aux élèves en utilisant l’ENT de l’établissement, voire une plateforme d’apprentissage en ligne, si l’établissement en dispose (comme la plateforme Éléa dans l’académie de Versailles).

Gestion du groupe - Durée estimée

  • Le premier temps de travail (rédaction d’un programme en pseudo-code) peut se faire individuellement, puis la vérification du code (« débogage »), par binômes, voire par trinôme : un(e) élève lit les instructions, un(e) autre les exécute, le(la) troisième s’assure de la bonne exécution et relève les problèmes.
  • Le travail asynchrone est individuel.
  • Le travail de création des programmes peut être individuel ou se faire par binôme.
  • Le temps de finalisation peut aussi être l’occasion, pour les élèves ayant terminé le premier programme, d’apporter leur aide aux élèves qui rencontrent des difficultés pour la programmation.
  • L’activité proposée peut se dérouler sur deux séances d’une heure, avec deux temps de travail "à la maison" après chacune. Si on souhaite faire créer aux élèves un programme plus élaborer, une séance supplémentaire s’avérera nécessaire (voir les sections "Découpage temporel" et "Déroulement de la séquence de cet article).

Déroulement de la séquence

Le document-support distribué aux élèves pour cette séquence :

Document-support — Introduction à l’algorithmique et au codage
À faire en classe — séance 1, en présence
  • Introduction à l’algorithmique : succession d’instructions organisées de manière claire, permettant de résoudre certains types de problèmes.
  • Qu’est-ce que le codage ? Une façon de représenter des instructions, dans un langage spécifique. Un codage ne correspond pas nécessairement à un algorithme ! Mais tout algorithme peut être codé, souvent de différentes façons (diagramme logique, code informatique…) Comprendre que certaines choses peuvent être codées sous forme d’une succession d’instructions claires (certaines danses, par exemple).
    • Exemple : écrire sous forme de « pseudo-code » (en langage clair) la succession d’instructions permettant d’effectuer un brossage de dents (on pourra s’arrêter à la partie « brossage » seule, sans aller jusqu’au rinçage de la bouche). Tester le code écrit, en exécutant pas à pas les instructions. Mettre en évidence les oublis ou les erreurs qui empêchent la bonne exécution : c’est le débogage.
  • À partir d’un calcul déjà mené précédemment et résolu de manière « classique » (rédaction écrite), établir par écrit, sous forme de pseudo-code, la succession d’instructions permettant de mener le calcul à bien. Ce travail peut être fait individuellement, mais aussi en petits groupes de 2 ou 3 élèves. Puis déboguer ce « code » en binôme ou trinôme. Le professeur aura pris soin de proposer un calcul dans lequel la question des unités se pose, et implique des conversions. Un exemple est fourni en document joint (énoncé et correction).
    Calcul vitesse moyenne — Énoncé corrigé
    correction "de référence" fournie — exercice réalisé au préalable
  • Fixer comme objectif d’élargir les capacités de ce programme pour permettre de résoudre tout calcul de ce type.
  • Établir le cahier des charges du programme, qui aura des conséquences sur la complexité du programme, mais aussi sur sa facilité d’utilisation. Un document d’aide peut être proposé aux élèves pour se positionner et fixer son cahier des charges.

On pourra ainsi dès cette étape différencier en proposant aux élèves de rédiger soit un programme dans lequel la distance est donnée en kilomètre systématiquement, soit un programme dans lequel l’utilisateur choisit l’unité de distance.

À faire "à la maison" — entre les séances 1 et 2, à distance

Regarder ces vidéos-tutoriels, pour introduire la notion de variable et la collecte de données dans Scratch, et présenter comment programmer un calcul simple.

  • Les variables dans Scratch (durée 4 min 53)
À faire en classe — séance 2, en présence

Pour permettre aux élèves de commencer la rédaction du programme dans Scratch, cette séance nécessite que les élèves aient accès individuellement (ou par binôme) à un poste informatique ou une tablette pour accéder à la version en ligne de Scratch.

  • À partir du travail précédent (pseudo-code initial, cahier des charges), créer un nouveau « programme » sous forme de pseudo-code, permettant de répondre au cahier des charges.
  • Identifier les variables nécessaires au bon fonctionnement du programme, et leur traitement ensuite. Compléter/annoter le pseudo-code, en y faisant figurer toutes les variables nécessaires au fonctionnement du programme.
  • Identifier les types de commandes Scratch qui permettront de retranscrire les instructions écrites en pseudo-code.
  • Commencer la rédaction du programme sur Scratch.
  • Sauvegarder le fichier de programme dans son espace personnel de l’ENT, ou sur tout support individuel.
À faire "à la maison" — après la séance 2, à distance
  • Peaufiner le programme dans Scratch, pour le finaliser.
  • S’assurer de son bon fonctionnement ou relever les problèmes observés.

SI on souhaite finir l’activité à ce stade :

  • Rendre le fichier du programme finalisé.

SINON :

  • Passer à la séance 3.
(optionnel) À faire en classe ou "à la maison" — séance 3

Pour permettre l’aide du professeur et l’entraide entre élèves, une modalité "en classe" semble plus adaptée.

Réaliser un second programme, avec un cahier des charges plus exigeant.

Choix entre deux options, par ordre croissant de difficulté :

  • Programme de niveau 3 selon le cahier des charges initial : proposer de créer un programme permettant de choisir l’unité de distance, et de donner la durée en heure/minutes/secondes.
  • Programme au-delà du cahier des charges initial : proposer de créer un programme plus universel, capable de calculer une distance, une vitesse ou une durée, selon le contexte, avec la possibilité de saisir différentes unités (m ou km ; s ou h ; m/s ou km/h)

Retour d’expérience

Le scénario proposé ici n’est pas tout à fait celui qui a été expérimenté. Son adaptation est le fruit du retour de pratique.
La distinction entre algorithme et codage a été accentuée dans la version finale ici présentée.

Les plus-values pédagogiques (enseignants / élèves)
  • Aborder ce calcul sous l’angle de la programmation permet de mieux en souligner les invariants méthodologiques (relation littérale utilisée, adaptation des valeurs aux bonnes unités avant l’application numérique, énonciation d’une phrase-réponse).
  • La nécessité de planifier la tâche de programmation (dont la définition des variables nécessaires) fait écho à la nécessité de planifier une tâche expérimentale, souvent mise en avant dans notre discipline.
  • La nécessité de l’analyse des données disponibles (en particulier les unités) ressort également.
Les freins
  • Les élèves comprennent rapidement la nécessité de l’étape de débogage, mais une fois les oublis ou erreurs mis en valeur, ils rechignent souvent à ré-écrire le pseudo-code écrit pour en fournir une version corrigée, et préfèrent passer directement à l’écriture du programme sous Scratch, qui s’en trouve donc plus délicate.
  • La définition du cahier des charges est une difficulté pour les élèves. Leur proposer un cahier des charges avec différents niveaux de difficulté s’est révélé utile.
  • La nécessité de disposer d’un terminal avec Scratch, lors des moments de codage en classe, peut rendre cette activité plus difficile à mettre en place.
  • Certaines commandes Scratch autour des variables (ex. : "mettre [variable] à [réponse]") peuvent poser des difficultés de compréhension aux élèves.
  • La correction des programmes produits par les élèves est assez longue.
Les leviers
  • La facilité d’accès du "pseudo-code" permet de motiver rapidement les élèves à se mettre à la tâche du codage.
  • La possibilité que permet Scratch de tester son programme rapidement permet aux élèves d’avancer par essais-erreurs en autonomie. Les élèves cherchent ainsi plus facilement à résoudre les problèmes par eux-mêmes.
  • Le fait que les élèves aient, en général, déjà réalisé des programmes sous Scratch en Technologie et/ou en Mathématiques permet de gagner du temps sur la prise en main de l’outil.
  • Le projet a permis aux élèves de laisser libre court à leur créativité pour la création du programme final.
  • La possibilité de choisir un cahier des charges plus ou moins complexe a permis aux élèves ne se sentant pas à l’aise de proposer au moins un programme simple.
Les pistes pour aller plus loin ou généraliser la démarche

Intégrer des éléments de programmation tout au long de l’année sur différentes thématiques, pour familiariser les élèves avec la démarche (cahier des charges, pseudo-code, éventuellement diagramme logique, programmation).

La pensée algorithmique s’applique à d’autres domaines de la Physique-Chimie, en particulier les tests d’identification en chimie, qui ont fait l’objet d’un autre scénario similaire pour les TraAM..

On pourra choisir ici de suivre ce scénario avec l’objectif d’en faire une introduction à la programmation sous Scratch en Physique-Chimie (on s’arrêtera alors à la restitution du programme commencé lors de la séance 2).
Dans ce cas il conviendra de souligner que le programme exécute une série "linéaire" de tâches, sans rapport avec un algorithme.

Si on choisit d’aller plus loin et de proposer la réalisation d’un programme qui laisse un choix d’unités à l’utilisateur, alors celui-ci peut se décomposer comme un algorithme, avec des "bifurcations" en fonction des choix de l’utilisateur.


Le fichier ci-dessous comprend l’ensemble des documents utilisés, dans plusieurs formats, ainsi que deux exemples de programmes fonctionnels, réalisé par l’auteur de cet article.

Documents de l’activité
+ deux exemples de programmes (*** et **** dans le cahier des charges)

Partager

Imprimer cette page (impression du contenu de la page)