Algorithmique et programmation

Publié le 20 juin 2016 Modifié le : 25 oct. 2017

Écrire à l'auteur

Le  lundi 20 juin 2016

Jeu de calcul mental

Programmer un jeu de calcul mental à l'aide de Scratch

  • Jeu de calcul mental

     

     

     

     

     

     

    Présentation de l’activité


     

     

    Le but du problème est de reproduire ce jeu de calcul mental puis de lui apporter des améliorations. On y consacrera deux heures.

     

     

     

     

     

     

     

    Public


     

     

    Cette situation s'adresse à des élèves de cycle 4 ayant déjà pris le logiciel Scratch en main, par exemple pour des constructions de figures.

     

     

     

     

     

    Objectifs


     

     

    • Ecrire, tester, corriger un programme en réponse à un problème donné.

     

    • Découvrir les notions de déclenchement d'une action par un événement extérieur et d'instructions conditionnelles.

     

    • Réinvestir la notion de variable.

     

     

     

     

     

    Prérequis


     

     

    Mathématiques

     

    • Tables de multiplication

     

     

    T.I.C.E.

     

    • Scratch : notions de programmation par blocs avec Scratch et de variable.

     

     

     

     

     

    Déroulement de l’activité


     

     

    Présentation

     

     

    On annonce aux élèves que leur travail va consister à programmer un jeu de calcul mental.

     

    Au vidéoprojecteur, on pourra le présenter à l'aide du fichier Calcul mental.sb2 (mettre la scène en mode "plein écran" pour ne pas montrer l'aire des scripts) ou de cette version en ligne.

     

     

    S'il est nécessaire de faire découvrir aux élèves les nouveaux blocs qui vont être mis en jeu dans sa programmation,

     

     

    calcul10

     

     

    on pourra :

     

    - S’appuyer sur le programme de démonstration : Prog01

     

    - Faire réfléchir les élèves à une ébauche d’algorithme (en langage naturel) et au cours d’une mise en commun s’interroger sur les blocs dont il faudrait disposer pour le programmer. Le professeur montrera alors l’existence de ces blocs.

     

     

     

    Temps de recherche

     

     

    La programmation d'un algorithme permettant d'obtenir instantanément une évaluation de la pertinence et de la solidité de cet algorithme, on mettra des ordinateurs à disposition des élèves.

     

     

    Afin que chacun puisse analyser le jeu à programmer, on pourra diffuser ce lien auprès des élèves : https://scratch.mit.edu/projects/embed/114191127/?autostart=false

     

     

    Pour que les élèves s'approprient et réinvestissent plus facilement les nouveaux blocs, on pourra diffuser ou laisser visible le programme de démonstration "Prog01".

     

     

    Si nécessaire, on questionnera, au cas par cas, pour permettre à chacun d'avancer dans l'élaboration de son programme :

     

    - Quelles sont les actions à prendre en compte et à programmer ?

     

    - Pour chacune de ces actions, quels blocs utiliser ?

     

     

    Pour permettre au plus grand nombre d'achever leur programme, on prolongera le travail des élèves les plus rapides en leur demandant d'imaginer des améliorations pour ce jeu :

     

    - En cas de mauvaise réponse, le lutin donne la solution.

     

    - A la fin du jeu, le lutin dresse un bilan en s'appuyant sur le score du joueur.

     

    - Au début du jeu, le lutin propose au joueur de choisir entre différents niveaux de difficulté.

     

    - Au début du jeu, le lutin propose au joueur de choisir de jouer avec des additions ou des multiplications.

     

     

     

    Bilan intermédiaire

     

     

    En fin de première heure et en s'appuyant sur les travaux menés par la classe, on reviendra sur l'élaboration du programme :

     

     

    calcul16

     

     

    En début de deuxième heure, on relancera le travail : on souhaiterait que le lutin propose dorénavant 10 multiplications choisies aléatoirement.

     

     

    S'il est nécessaire de faire découvrir aux élèves les nouveaux blocs qui vont être mis en jeu dans sa programmation,

     

     

     calcul12

     

     

    on pourra :

     

    - S’appuyer sur le programme de démonstration : Prog02

     

    - Faire réfléchir les élèves à une ébauche d’algorithme (en langage naturel) et au cours d’une mise en commun s’interroger sur les blocs dont il faudrait disposer pour le programmer. Le professeur montrera alors l’existence de ces blocs.

     

     

     

    Temps de recherche

     

     

    Au cas par cas et selon les besoins, on questionnera pour guider dans la construction des programmes.

     

     

    - Quels blocs pour choisir deux nombres au hasard et les stocker ?

     

    calcul13

     

     

    - Quels blocs utiliser pour concaténer les différents éléments de la question posée par le lutin ?

     

    calcul14

     

     

    - Quels blocs pour définir la condition de "bonne réponse" ?

     

    calcul07

     

     

    - Quels blocs utiliser pour incrémenter le score de 1 en cas de bonne réponse ?

     

    calcul08

     

     

    Pour permettre au plus grand nombre d'achever leur travail, on prolongera le travail des élèves les plus rapides en leur demandant d'envisager à nouveau des améliorations :

     

    - Comment réduire la longueur du programme ? (boucle)

     

    - Comment faire en sorte, qu'en cas d'erreur, le lutin donne la bonne réponse ?

     

     

     

    Bilan final

     

    Afin que les élèves gardent une trace de leur travail, les programmes pourront être imprimés.

     

    On reviendra sur la construction du programme (en le reconstruisant au vidéoprojecteur avec l'aide de la classe ou en projetant et en commentant ceux réalisés par les élèves). On mettra alors en avant les différentes stratégies pour répondre à un même sous-problème, les instructions nouvelles et quelques "schémas type".

     

     

    calcul15

     

     

    Voici trois productions d'élèves obtenues après deux heures de travail : Célia ; Alexis ; Canelle et Canelle

     

     

     

     

     

    Prolongements possibles


     

     

    - On souhaite intégrer un niveau de difficulté qui influera sur la borne maximale des nombres mis en jeu.

     

     

    - On souhaite que l'opération posée soit choisie aléatoirement entre une addition, une soustraction et une multiplication.

     

     

    - On souhaite intégrer un chronomètre qui mesure le temps mis pour répondre aux 10 questions.

     

    En imaginant un nouveau programme de démonstration, on pourra alors présenter les blocs :

     

    calcul09

     

    La variable "chronomètre" stocke le temps écoulé (en seconde) depuis l'utilisation du bloc "réinitialiser le chronomètre".

     

     

     

     

     

    Documents utiles


     

     

    • Fichier Calcul mental

     

     

    • Fichiers Démo 1 ; Démo 2

     

     

    • Fichier Calcul mental (10 multiplications aléatoires)

     

     

    • Fichier Calcul mental (avec niveaux de difficulté)

     

     

    • Fichier Calcul mental (avec type d'opérations aléatoire)

     

     

    • Fichier Calcul mental (avec chronomètre)

    Version 1 : inclue les temps de paroles du lutin

    Version 2 : exclue les temps de paroles du lutin