C3. Codage :

Mettre en application ses habiletés en codage pour résoudre des problèmes et créer des représentations de situations mathématiques de façon computationnelle à l’aide de concepts et d’habiletés en codage.

Situation d’apprentissage : les pointures des souliers


Durée totale : 180 minutes

Sommaire

Dans cette situation d’apprentissage, l’élève recueille les pointures des souliers des élèves de son groupe-classe afin de suggérer un inventaire de souliers pour préadolescentes et préadolescents au magasin de chaussures de la communauté. À partir des données, l'élève crée des codes à l’aide d’un logiciel de programmation par blocs en vue de trouver la moyenne et la médiane des pointures des souliers des élèves du groupe-classe. L'élève observe qu’en ajoutant ou en retirant des données les résultats peuvent avoir une incidence sur les mesures de tendances centrales.

Attente Contenus d'apprentissage
D1. Littératie statistique
Traiter, analyser et utiliser des données pour formuler des arguments persuasifs et prendre des décisions éclairées dans divers contextes de la vie quotidienne.
D1.5 Déterminer l’incidence de l’ajout ou de la suppression de données sur les mesures de tendance centrale et décrire comment ces changements modifient la représentation et la distribution des données.
C3. Codage
Mettre en application ses habiletés en codage pour résoudre des problèmes et créer des représentations de situations mathématiques de façon computationnelle à l’aide de concepts et d’habiletés en codage.

C3.1 Résoudre des problèmes et créer des représentations de situations mathématiques de façon computationnelle en écrivant et en exécutant des codes efficaces, y compris des codes comprenant des événements influencés par un dénombrement prédéfini ou un sous-programme et d’autres structures de contrôle.

C3.2 Lire et modifier des codes donnés, y compris des codes comprenant des événements influencés par un dénombrement prédéfini ou un sous-programme et d’autres structures de contrôle, et décrire l’incidence de ces changements sur les résultats et l’efficacité.

Pratiques pédagogiques à fort impact en mathématiques à privilégier Description
Enseignement explicite Dans la mise en situation, le personnel enseignant questionne les élèves au sujet du mode, de la médiane et de la moyenne afin d’activer leurs connaissances antérieures. À la lumière des réponses des élèves, le vocabulaire à l’étude est introduit tel que mesures de tendance centrale et sous-programme. Le personnel enseignant montre un sous-programme (pseudocode pour le mode) et interroge les élèves au sujet du pseudocode. Les élèves émettent leurs opinions/réflexions au cours d’un pense-parle-partage et travaillent ensuite en pratique guidée afin de créer des pseudocodes pour la médiane et la moyenne.
Enseignement en petits groupes Au cours du déroulement, l’enseignement en petits groupes se fait, à raison d’une dizaine de minutes à la fois, avec des groupes prédéterminés afin de converser et de faire progresser les élèves dans la création de leur code. C’est le moment idéal pour parler d’instructions conditionnelles et de l’incidence de ces blocs sur un code.
Regroupements flexibles La communication et la collaboration sont des atouts dans des tâches comme celle-ci. En travaillant en groupes, les élèves se déplacent et se trouvent un endroit pour travailler entre pairs. Le personnel enseignant circule parmi les élèves et les appuie au besoin. Le personnel enseignant questionne les élèves et pousse leur raisonnement pendant leur création pour collecter des données, calculer la moyenne et trouver la médiane.

Connaissances et habiletés préalables

Pour être en mesure de réaliser cette situation d’apprentissage, l’élève doit :

  • comprendre ce qu’est un pseudocode;
  • connaître ce que sont les mesures de tendance centrale;
  • être capable d’utiliser un logiciel de programmation par blocs.

Résultats d’apprentissage

À la fin de cette situation d’apprentissage, l’élève pourra :

  • déterminer les mesures de tendance centrale à l’aide d’un logiciel de programmation par blocs;
  • utiliser de façon répétée des blocs d’instructions conditionnelles ainsi que des blocs opérateurs;
  • écrire des pseudocodes efficaces;
  • reconnaître l’incidence de l’ajout ou du retrait de certaines données sur les mesures de tendance centrale.

Critères d’évaluation selon les grilles d’évaluation du rendement

Compétences Critères d’évaluation
Connaissance et compréhension
  • L’élève comprend la catégorie des blocs «mes blocs» afin de créer des blocs personnalisés* et de les utiliser.
  • L’élève utilise des variables dans son code.
Habiletés de la pensée
  • L’élève écrit des pseudocodes avec précision pour recueillir des données, calculer la moyenne et trouver la médiane des données recueillies.
  • L’élève corrige avec exactitude les erreurs de syntaxe et de logique dans ses codes (débogage).
  • L’élève explique l’incidence de l’ajout ou du retrait de données dans le calcul de la moyenne et de la médiane.
Communication
  • L’élève explique de façon cohérente l’incidence de certains blocs, tels les blocs opérateurs et les blocs de contrôle.
  • L’élève explique avec clarté le code de ses pairs.
Mise en application
  • L’élève crée un code efficace pour recueillir les pointures des souliers des élèves du groupe-classe.
  • L’élève ajoute avec cohérence des blocs d’instructions conditionnelles dans ses codes.
Codes de capture d'écran du bloc ' mes blocs'. Différentes entrées d'ajout : avec texte, booléen et autocollant.

* Blocs personnalisés : Cette capture d’écran montre le menu de création d’un nouveau bloc dans le logiciel de codage Scratch. En créant un nouveau bloc, on peut rendre le code plus efficace en résumant une séquence de code qui sera répétée à divers endroits dans le code en un seul bloc. La création de blocs dans d’autres logiciels de codage par blocs pourrait avoir une interface qui diffère de celle-ci.

Matériel requis

Note : Les exemples dans cette situation d’apprentissage ont été conçus avec Scratch.

Vocabulaire mathématique

mesures de tendance centrale, mode, médiane, moyenne, sous-programme (codage), pseudocode

Mise en situation

Durée : 15 minutes

L’évaluation peut se faire par les…Infographie de l’évaluation : Conversation, observations, productions.

Demander aux élèves d’observer, en groupe-classe, l’image ci-dessous en essayant d’imaginer le problème mathématique qui pourrait y être associé.

Image d'un étudiant de bande dessinée pensant à une séquence de 16 paires de chaussures différentes.

Présenter aux élèves l’image ci-dessous. Les informer que les deux images sont liées. Leur demander de nouveau de poser des questions et de tenter de déterminer le problème associé à l’image. Guider le questionnement afin que les élèves se posent des questions au sujet des mesures de tendance centrale (moyenne, médiane et mode).

Image d'un élève de bande dessinée pensant aux nombres de, un à 10. Moyenne, égale, somme des données, divisée par le nombre de données. Nombre un, 2, 4, 6, 11, 16 et 20.

Exemple de questions :

  • Pourquoi croyez-vous que certains nombres sont en caractères gras?
  • Quelles mathématiques pourraient être liées à des souliers?
  • Est-ce que tous les souliers dans l’image sont semblables ou différents? Comment cela affecte-t-il ton interprétation du problème?

Observations possibles Pistes d’intervention
L’élève ne parle pas des mesures de tendance centrale.

Que représente la formule?

As-tu déjà utilisé une formule comme celle-ci? Dans quel contexte?

Pourquoi penses-tu que le chiffre 2 est écrit en gras?

L’élève n’a aucune idée de ce que peuvent représenter les souliers.

Combien de souliers vois-tu?

Selon toi, quelles sont les pointures des souliers?

Comment les souliers peuvent-ils différer les uns des autres?

L’élève ne connaît pas les mesures de tendance centrale. Revoir avec les élèves les concepts de mode, de médiane et de moyenne.

Déroulement

Durée : 150 minutes

L’évaluation peut se faire par les…Infographie de l’évaluation : Conversation, observations, productions.

Se préparer au codage

Expliquer aux élèves que des données concernant la pointure des souliers des élèves du groupe-classe seront collectées. À l’aide de ces données, les élèves créeront des codes qui aideront à trouver la moyenne et la médiane des pointures des souliers dans un logiciel de programmation par blocs.

Pistes de réflexion

  • Quelles données cherche-t-on?
    On cherche la pointure des souliers des élèves du groupe-classe.
  • Comment peut-on automatiser la collecte de données?
    À l’aide d’un code (par blocs ou dans un chiffrier), en consultant un site Web où l’on peut créer des sondages, en remplissant un formulaire, etc.
  • Serait-il possible de créer un code pour la collecte de données? Qu’est-ce que le code devra faire?
    Le code devra demander la pointure des souliers d’une personne, ajouter cette pointure à une liste, puis poser la question à quelqu'un d'autre jusqu’à ce que toutes les données soient recueillies (un pseudocode pourrait aider à cette étape).
  • Est-ce plus facile de coder pour la moyenne, la médiane ou le mode?
    Des élèves diront que la médiane ou le mode sont plus faciles à coder, car il s’agit simplement de trouver un nombre dans une liste, tandis que la moyenne nécessite une opération mathématique. En réalité, le code pour trier la liste des données en ordre croissant est beaucoup plus exigeant que le code pour faire des opérations mathématiques. Il serait intéressant et pertinent de reposer cette question au moment de l’objectivation.
  • Qu’est-ce que le code devra faire pour calculer ou reconnaître chacune des mesures de tendance centrale?
    • Pour la moyenne, le code devra calculer la somme de toutes les données, puis diviser cette somme par le nombre de données dans la liste.
    • Pour la médiane, le code devra classer les données en ordre croissant et reconnaître la valeur centrale, soit en trouvant la valeur au centre de la liste (nombre impair de données) ou en calculant la moyenne des deux valeurs au centre de la liste (nombre pair de données).
    • Pour le mode, le code devra classer les données en ordre croissant, puis comparer les valeurs afin de déterminer celle que l’on trouve le plus souvent dans la liste.

En groupe-classe, présenter le pseudocode ci-dessous afin d’aider les élèves à bien comprendre ce qu’est un pseudocode.

Variables : nb1
nb2
somme
Départ
Mettre nb1 = 0.
Mettre nb2 = 0.
Mettre somme = 0.
Définir la valeur de nb1.
Poser la question « Quelle est la valeur de nb1? ».
La réponse devient la valeur de nb1.
Définir la valeur de nb2.
Poser la question « Quelle est la valeur de nb2? ».
La réponse devient la valeur de nb2.
Somme = nb1 + nb2
Fin
  • Quelles sont les variables? Que représentent-elles?
    Les variables sont :
    • nb1 : la valeur de la première donnée recueillie;
    • nb2: la valeur de la deuxième donnée recueillie;
    • somme: la somme de toutes les données.
  • Quel est le rôle des trois blocs « mettre à 0 » au début du code?
    Sans les blocs « mettre à 0 », toutes les variables qui ont été définies lors de la dernière exécution du code demeureront actives. Cela pourrait avoir des effets indésirables sur le comportement du code. C’est un peu comme appuyer sur la touche « CE » d’une calculatrice.
  • Quel serait le code, dans un logiciel de programmation par blocs, pour ce pseudocode?
    Inviter les élèves à créer le code pour la situation que représente le pseudocode. Les codes peuvent varier. Il existe plusieurs façons de représenter ce pseudocode au moyen du codage par blocs.

Exemple de code :

image Blocs de codage attachés les uns aux autres. Bloc d’évènement : départ drapeau vert. 3 blocs de variables : Mettre « n » « b » un à zéro. Mettre « n » « b » 2 à zéro. Mettre « s » « u » « m » à zéro. Bloc de capteur : « quel est ton premier nombre? » et attendre, Bloc de variable : mettre « n » « b » un et attendre, Bloc capteur : « quel est ton deuxième nombre? » attendre. Bloc de variable : mettre « n » « b » 2 à réponse. Bloc de variable : mettre « s » « u » « m » à « n » « b » un plus « n » « b » 2.

Note : Dans cette partie de la situation d’apprentissage, les élèves s’approprient les blocs au moyen desquels les questions sont posées et la valeur des variables est modifiée. Si les élèves ont déjà utilisé le logiciel de codage en question, il serait possible de passer directement à la prochaine partie de l’activité, soit la collecte des données. Cette activité peut aussi servir d’évaluation diagnostique pour déterminer si les élèves ont tout ce qu’il leur faut pour passer à la collecte des données.

Prendre le temps de circuler parmi les élèves et d’écouter leurs conversations. À partir de leurs observations et de votre écoute active, les questionner, au besoin, pour les guider ou mieux comprendre leur raisonnement.

Coder pour recueillir des données

Demander aux élèves de créer un pseudocode pour faire la collecte des données de toutes et de tous les élèves du groupe-classe. Elles et ils peuvent partir du code préparé à l’étape précédente ou commencer un nouveau code.

Exemple de pseudocode :

Variables :

_ nombres de données à entrer

_ pointure des souliers

_ liste de données des pointures de souliers

Départ
Répéter pour chaque donnée.
Demander la pointure des souliers.
Ajouter la réponse à la liste des pointures des souliers.

Demander s’il reste des données à entrer.

Si oui – répéter

Si non – fin

Une fois le pseudocode terminé, inviter les élèves à créer leur code pour recueillir les données liées à la pointure des souliers des élèves, puis à les compiler dans une liste.

Exemple de code :

image Blocs de codage attachés les uns aux autres. Bloc de contrôle : répéter jusqu’à ce que « réponse égal non ». Bloc de capteur : demander « quelle est la taille du soulier de l’élève? » et attendre. Bloc de variable : mettre « taille du soulier » à réponse. Bloc de variable de ma liste : ajouter « taille du soulier » à « liste de taille de soulier ». Bloc de capteur : demander « as-tu une autre donnée à entrer ? « Réponse oui ou non ». et attendre. Répéter.

Note : Plusieurs logiciels de codage par blocs rendent possible la personnalisation des blocs. Si c’est le cas, les élèves peuvent créer un bloc (bloc personnalisé) et le définir avec leur code. De cette façon, le code principal devient moins encombré.

Exemple de bloc personnalisé :

image Blocs de codage attachés les uns aux autres : Mes blocs : Définir « recueil de données ». Bloc de contrôle : répéter jusqu’à ce que « réponse égal non ». Bloc de capteur : demander « quelle est la taille du soulier de l’élève? » et attendre. Bloc de variable : mettre « taille du soulier » à réponse. Bloc de variable de ma liste : ajouter « taille du soulier » à « liste de taille de soulier ». Bloc de capteur : demander « as-tu une autre donnée à entrer ? « Réponse oui ou non ». et attendre. Répéter.

Une fois ce bloc créé, le code principal ressemblerait à ceci :

image 3 blocs de codage attachés les uns aux autres. Bloc d’évènement : cliquer quand drapeau vert. Bloc de variable de ma liste : « supprimer tous les éléments de la liste » « liste de la taille de soulier ». Mes blocs : « recueil de données. »

Coder pour analyser des données

Demander aux élèves ce que devra faire l’ordinateur pour trouver la moyenne des pointures des souliers parmi les données recueillies. Au besoin, l’image de départ avec la formule de la moyenne pourrait être réaffichée afin d’activer les connaissances antérieures des élèves. La formule de la moyenne peut aussi être transformée en pseudocode. Les inviter à rédiger les directives pour l’ordinateur afin de calculer la moyenne des données recueillies.

Voici un exemple de pseudocode :

Variables :

_ numéro de la liste (ou élément de la liste)

_ somme

_ liste des pointures de souliers

Départ
Mettre numéro de liste à 1 (on commence par le premier élément de la liste).
Mettre somme à 0.
Répéter pour la longueur de la liste (nombre d’éléments).
Ajouter (élément 1) de la liste à somme.
Ajouter 1 à numéro de la liste.
Dire moyenne = somme/longueur de liste.
Fin

Exemple de code :

image Blocs de codage attachés les uns aux autres. Bloc d’évènement : « quand ce Sprite est cliqué. » Bloc de variable : Mettre « numéro de la liste » à un. Bloc de variable : mettre « somme » à zéro. Bloc de contrôle : répéter « longueur de liste de la taille des souliers » fois . » Bloc de variable : ajouter « élément, numéro de la liste, de, liste de la taille de souliers » à « somme ». Bloc de variable : ajouter un à « numéro de la liste. Répéter. Bloc d’apparence : dire « regrouper la moyenne de la taille de souliers de la classe est » et « somme » divisé par « longueur de « liste de la taille de souliers » ».

Poser aux élèves les questions suivantes :

  • Qu’arrivera-t-il si j’ajoute des pointures de souliers dans ma liste?
  • La moyenne sera-t-elle la même? Pourquoi?
  • Pourrait-on rendre ce code encore plus efficace?

Note : Ce code est structuré ainsi afin de séparer les étapes et d’encourager le questionnement et l’exploration de l’élève. Une version plus simple de ce code verrait ajouter les éléments de la liste à la valeur de la variable « somme » au moment de la collecte des données, éliminant toute cette étape. Ce code ressemblerait à ceci :

image Blocs de codage attachés les uns aux autres : Bloc de contrôle : répéter jusqu’à ce que « réponse égale non ». Bloc capteur : demander « quelle est la taille du soulier de l’élève? » et attendre. Bloc de variable : mettre taille du soulier à répondre. Bloc de variable de ma liste : ajouter « taille du soulier » à « liste de la taille de souliers ». Bloc de variable « taille de soulier » à « somme ». Bloc capteur : demander « as-tu une autre donnée à entrer ? « Répondre oui ou non » » et attendre. Répéter. Un papillon adhésif est attaché au dernier bloc de variable : l’ajout de ce bloc à notre code de collecte de données permet de compiler la somme au fur à mesure que les données sont recueillies.

Inviter les élèves à créer un pseudocode et un code afin de trouver la médiane des pointures des souliers des élèves du groupe-classe.

Questions possibles :

  • Quelles sont les étapes à suivre pour déterminer la médiane?
  • Existe-t-il un bloc pouvant faire en sorte que les données soient ordonnées en ordre croissant? Peut-on en créer un?
    (Les élèves vont mentionner qu’il faut trier par ordre croissant les éléments de la liste des pointures de souliers afin de trouver la médiane.)

Exemple de pseudocode :

Variables :

_ valeur centrale 1

_ valeur centrale 2

\* liste des pointures de souliers

Départ
Mettre « liste des pointures de souliers » en ordre croissant.
Si la liste a un nombre pair d’éléments
Identifier l’élément correspondant à (longueur de la liste /2).
Mettre la valeur de l’élément à (« valeur centrale 1 »).
Identifier l’élément correspondant à ((longueur de la liste /2) + 1).
Mettre la valeur de l’élément à («valeur centrale 2»).
Mettre médiane à ((«valeur centrale 1» + «valeur centrale 2») /2).
SINON
Mettre médiane à l’élément correspondant à ((longueur de la liste + 1) /2).
Fin

Note : Si la liste contient un nombre pair de données, faire remarquer aux élèves que le calcul de la médiane prend la même forme que le calcul de la moyenne. On trouve essentiellement la moyenne des deux valeurs centrales.

Voici un exemple de code pour ordonner les données de la liste en ordre croissant. Encore une fois, le code a été transformé en bloc personnalisé. Cette étape est utile, mais pas nécessaire.

image Blocs de codage attachés les uns aux autres. Mes blocs : définir « trier la liste en ordre croissant ». Bloc de contrôle : répéter « longueur de « liste de la taille de souliers » fois. Bloc de contrôle : répéter « longueur de « liste de la taille de souliers » » moins un « fois ». Bloc de contrôle : si « élément numéro de la liste de liste de la taille de souliers » plus petit que, élément « numéro de la liste moins un » de liste de la taille de souliers, alors. Bloc de variable de ma liste : insérer « élément « numéro de la liste » de « liste de la taille de souliers » en position « numéro de la liste moins un » de « liste de la taille de souliers » », Bloc de variable de ma liste : « supprimer l’élément « numéro de la liste plus un » de « liste de la taille de souliers » ». Bloc de variable : ajouter un à numéro de la liste. Répéter. Bloc de variable : mettre numéro de la liste à 2 Répéter.

Courte explication de la logique du code :

Ce code fonctionne en comparant une valeur de la liste avec la valeur avoisinante. Si la valeur est plus petite, les positions des éléments de la liste sont inversées. Le code est répété le même nombre de fois qu’il y a d’éléments dans la liste afin de s’assurer que chaque valeur est plus petite que la valeur suivante.

Note : Ordonner des nombres en ordre croissant est un problème complexe pour l’ordinateur, qui doit comparer les valeurs des données, puis les ordonner. Ce genre de problème se prête très bien à une recherche dans Internet. Il existe plusieurs communautés et une panoplie de projets existants qui peuvent répondre aux questions des élèves et des membres du personnel. En modélisant ce genre de débrouillardise, les élèves seront plus à l’aise à faire de même, et en apprendront davantage sur ce qui est possible avec les logiciels de codage par blocs.

Exemple de code pour trouver la médiane :

image Blocs de codages attachés les uns aux autres. Bloc de contrôle : si « longueur de « liste de la taille de souliers » modulo 2 » égal zéro alors. Bloc de variable : mettre valeur centrale à « longueur de « liste de la taille de souliers » divisé par 2 ». Bloc de variable : Mettre Médiane à « élément valeur centrale de liste de la taille de souliers » plus « élément valeur centrale plus un de liste de la taille de souliers » divisé par 2. Bloc de contrôle : sinon. Bloc de variable : mettre Médiane à « élément longueur de liste de la taille des souliers plus un divisé par 2 de liste de la taille de souliers ». Un papillon adhésif est attaché au premier bloc de contrôle : Le bloc modulo identifie le reste suite à une division. Dans ce cas, on vérifie si le nombre d’items dans liste est pair « si on divise par 2, le reste est zéro. »

Poser aux élèves les questions suivantes : Qu’arrivera-t-il si j’ajoute des pointures de souliers dans ma liste? La médiane restera-t-elle la même? Pourquoi?

Observations possibles Pistes d’intervention
L’élève ne réussit pas à entrer toutes les pointures des souliers des élèves dans une liste.

Dans quel bloc peux-tu poser une question?

Quelle question peux-tu poser ici?

De quelles variables as-tu besoin?

image Un bloc de variable : « taille du soulier. » Un papillon adhésif est attaché à ce bloc : Il faut une variable pour la taille de soulier de l’élève, qui pourra changer chaque fois que la question est posée. Bloc variable de ma liste : « liste de la taille de soulier ». Un papillon adhésif est attaché à ce bloc : Il faut une liste dans laquelle toutes les données de tailles de souliers seront compilées. Bloc de variable : « nombre de données de taille de souliers à entrer, » Un papillon adhésif est attaché à ce bloc : Il faut savoir le nombre de données à entrer afin de définir le nombre de répétitions dans la boucle qui pose la question aux élèves.
L’élève oublie de remettre les variables à zéro.

Que se produit-il lorsque tes variables ne sont pas remises à zéro en début de code?

Quel est l’effet sur l’entrée des données dans la liste?

image “ blocs de codage attachés l’un à l’autre : Bloc d’évènement : quand, drapeau vert, est cliqué. Bloc de variable de ma liste : « supprimer tous les éléments de la liste « liste de la taille des souliers, » Un papillon adhésif est attaché à ce bloc : Ce bloc est l’équivalent de « mettre à zéro », mais pour une liste.

Demander à l’élève de retourner voir le pseudocode qui a été analysé au début du déroulement. Ce pseudocode contient aussi des blocs « mettre à 0 ». L’encourager à trouver le lien entre ces blocs dans les deux codes.

L’élève n’utilise pas les variables correctement.

Demander à l’élève ce que veulent dire les variables. La compréhension de la signification des variables utilisées est nécessaire à la compréhension du code.

Il est possible que l’élève ne comprenne pas le nom des variables. L’encourager à renommer ses variables avec des termes familiers dans le contexte du problème.

image Un bloc de variable de ma liste : « liste de souliers ». Un papillon adhésif est attaché à ce bloc : il faut une liste dans laquelle toutes les données de tailles de souliers d’élèves seront compilées. Bloc de variable : « nombre de données de taille de souliers à entrer ». Un papillon adhésif est attaché à ce bloc : il faut avoir le nombre de données à entrer afin de définir le nombre de répétitions dans la boucle qui pose la question aux élèves. Bloc de variable : « taille du soulier, » Un papillon adhésif est attaché à ce bloc : il faut une variable pour la taille de soulier de l’élève, qui pourra changer chaque fois que la question est posée. Bloc de variable : « numéro de la liste, » Un papillon adhésif est attaché à ce bloc : cette donnée pourrait aussi être appelée « rang ». C’est la position de la donnée dans la liste. Bloc de variable : « somme. » Un papillon adhésif est attaché à ce bloc : cette variable tient compte de la somme des données tout au long du processus de collecte de données. Bloc de variable : « valeur centrale ». Un papillon adhésif est attaché à ce bloc : cette variable est nécessaire dans le code qui identifie la médiane. Cette variable est définie par le « numéro de la liste » ou le « rang » de la donnée qui se trouve au centre de la liste après le classement par ordre croissant.
L’élève ne réussit pas à créer de nouveaux blocs (blocs personnalisés).

Quelle catégorie de blocs peut t’aider à créer de nouveaux blocs?
Quelle est sa couleur?

Demander à l’élève les raisons pour lesquelles on crée de nouveaux blocs (pour rendre les codes plus efficaces en étant plus courts ou pour rendre le code plus facile à analyser ou à déboguer en isolant certaines séquences du code principal).

image Blocs de codage attachés les uns aux autres : Mes blocs : définir « recueil des données ». Bloc de variable : mettre « nombre de données de tailles de souliers à entrer » à zéro. Bloc de capteur : demander « combien de données as-tu besoin d’entrer? » et attendre. Bloc de contrôle : mettre « nombre de données de taille de souliers à entrer » à répondre. Bloc de contrôle : répéter « nombre de données de taille de souliers à entrer » fois. Bloc de capteur : demander « quelle est la taille du soulier de l’élève ? » et attendre. Bloc de variable : mettre « taille du soulier » à réponse. Bloc de variable de ma liste : ajouter « taille du soulier » à « liste de la taille de soulier ». Répéter. Un papillon adhésif est attaché sur le bloc « mes blocs » : le nouveau « recueil de données » représente le code pour entrer toutes les tailles des souliers des élèves. Au départ, deux variables ont été créées, soient les variables : - taille de souliers « qui sont les grandeurs des souliers des élèves ». - nombre de tailles de souliers à entrer « qui représente le nombre total d’entrées à ajouter au tableau.
image Blocs de codage attachés les uns aux autres : Mes blocs : définir « trier la liste en ordre croissant. » 3 blocs de contrôle : répéter « longueur de « liste de la taille de souliers » fois. » Répéter « longueur de liste de la taille des souliers » moins un, fois. Si : « élément « numéro de la liste » de « liste de la taille des souliers » plus petit que « élément » « numéro de la liste moins un » de « liste de la taille de souliers » alors. Bloc de variable de ma liste : Insérer « élément numéro de la liste de liste de la taille de souliers » en position « numéro de la liste moins un » de liste de la taille des souliers. Bloc de variable de ma liste : supprimer l’élément « numéro de la liste plus un » de « liste de la taille de souliers ». Bloc de variable : ajouter un à « numéro de la liste ». Répéter. Bloc de variable : mettre « numéro de la liste » à 2. Répéter.
L’élève ne réussit pas à créer un code pour calculer la moyenne.

Demander à l’élève de revoir son pseudocode pour la moyenne. L'encourager à repérer le calcul de la moyenne dans son pseudocode, puis identifier les blocs correspondants dans son code. S’il manque des blocs, ce serait la première étape.

Revoir avec l’élève la signification des blocs et des variables. Est-ce que les bonnes variables sont aux bons endroits dans la formule?

S’il y a lieu, faire en sorte que les valeurs des variables soient affichées à l’écran. De cette façon, l’élève aura un repère visuel des valeurs et pourra détecter s’il y a une erreur.

L’élève ne réussit pas à créer un code afin d’ordonner les données en ordre croissant.

Ordonner des données en ordre croissant à l’aide de blocs peut demander de la logique. Demander à l’élève ce qu’il faut faire pour ordonner une liste en ordre croissant (par exemple, déterminer si chaque valeur est plus petite que la prochaine). Comment pourrait-on le faire comprendre à l’ordinateur?

Montrer à l’élève les opérateurs « plus grand que » et «plus petit que» à titre d’indice.

Inviter l’élève à effectuer une recherche dans Internet pour voir si ce problème a déjà une solution au lieu de créer tout un nouveau code.

L’élève ne réussit pas à créer un code pour trouver la médiane.

Demander à l’élève la signification de certains blocs opérateurs.

Que signifie le bloc d’instructions conditionnelles SI, ALORS, SINON?

Comment trouves-tu la médiane des nombres habituellement?

Dans ce code, quelles sont les variables nécessaires pour trouver la médiane?

image Bloc opérateur : « longueur de, liste de la taille de souliers » modulo 2. Un papillon adhésif est attaché à ce bloc : Le bloc opérateur » modulo » donne le reste dans une division euclidienne. Ce bloc indique que la longueur de la liste des données de la taille des souliers divisée par 2 doit donner un quotient de zéro. Bloc de contrôle : si « longueur de liste de la taille de souliers » modulo 2 égal zéro alors, sinon. Un papillon adhésif est attaché à ce bloc : ce bloc d’instruction conditionnelle indique que « si la division de la longueur de la liste de la taille des souliers par 2 donne un reste de zéro., alors le nombre total des données dans la liste est un nombre pair, sinon, le nombre total de données dans la liste est un nombre impair. Le calcul de la médiane ne se fait pas de la même manière si le nombre total de données est pair ou impair.

Objectivation

Durée : 15 minutes

L’évaluation peut se faire par les…Infographie de l’évaluation : Conversation, observations, productions.

Demander aux élèves de circuler dans la salle de classe et de regarder les pseudocodes et les codes des autres élèves.

  • Que remarques-tu?
  • Les pseudocodes de tes pairs sont-ils les mêmes que les tiens?
  • Les codes de tes pairs sont-ils les mêmes que les tiens?
  • Que changerais-tu dans tes codes? Quelles suggestions donnerais-tu à tes pairs?
  • Quels sont les apprentissages faits aujourd’hui?

Afin de poursuivre les apprentissages en codage, continuer à s’exercer à passer d’un pseudocode à un code, ou d’un code à un pseudocode.

Demander aux élèves s’il y a d’autres façons de coder pour analyser des données (par exemple, tableur, tels Sheets et MS Excel).

Demander aux élèves d’expliquer l’avantage de créer un code lié aux mesures de tendance centrale dans un logiciel de codage par blocs, au lieu d’utiliser des commandes =MOYENNE et =MÉDIANE dans un tableur. (Le codage par blocs nous donne l’occasion de voir ce qui se passe en arrière-scène lorsqu’on utilise des raccourcis dans un tableur. La création de ce code permet d’explorer la puissance de blocs conditionnels (SI, ALORS, SINON) et de boucles (répéter, répéter jusqu’à).

Consolidation

Proposer aux élèves une activité dans laquelle on peut générer une table de valeurs en utilisant un dénombrement prédéfini, c’est-à-dire une boucle dans laquelle on génère une liste de valeurs selon le rang et le terme.

Quelques exemples d’activités qui utilisent le bloc « répéter jusqu’à ce que… » :

  • Créer un code qui fera le recueil d’un nombre exact de données (par exemple, répéter jusqu’à ce que le nombre de réponses = 10) afin de faciliter le calcul de certaines mesures de tendance centrale. Ici, le nombre pourrait aussi correspondre au nombre d’élèves du groupe-classe afin que chaque élève ait le droit à une seule réponse.
  • Créer un code qui recueille des données jusqu’à ce qu’une somme maximale soit atteinte (par exemple, répéter jusqu’à ce que la somme des valeurs = 250). Ce genre de code pourrait être utile pour une entrée cumulative de points afin d’atteindre une cible. Il serait possible, par la suite, d’utiliser les mesures de tendance centrale pour déterminer la valeur moyenne ou la médiane de points pour chaque entrée.

Liens avec les autres domaines mathématiques

Nombres

B2.1 Utiliser les propriétés et la priorité des opérations, et les relations entre les opérations pour résoudre des problèmes comportant des nombres naturels, des nombres décimaux, des fractions, des rapports, des taux et des pourcentages, y compris des problèmes à plusieurs étapes ou à plusieurs opérations.

En utilisant les instructions conditionnelles (SI, ALORS, SINON), il serait possible de créer un code qui peut analyser un problème mathématique et de déterminer les processus à suivre pour le résoudre en faisant appel à des sous-programmes (par exemple, des sous-programmes pour les priorités d’opérations, pour l’addition de fractions).

Algèbre

C4. Mettre en application le processus de modélisation mathématique pour représenter et analyser des situations de la vie quotidienne, ainsi que pour faire des prédictions et fournir des renseignements à leur sujet.

L’utilisation de sous-programmes et de blocs personnalisés permet de généraliser une situation en créant des modèles et en faisant appel aux modèles à divers moments dans le code.

Données

D1.5 Déterminer l’incidence de l’ajout ou de la suppression de données sur les mesures de tendance centrale et décrire comment ces changements modifient la représentation et la distribution des données.

En créant un sous-programme pour chaque mesure de tendance centrale, il serait possible de rédiger un code qui fait appel à chaque sous-programme à différents moments, créant un code plus efficace et facile à lire/à modifier.

Différenciation pédagogique et conception universelle de l’apprentissage

  • Suggérer à l’élève qui cherche à relever un défi de créer un code pour trouver le mode de la liste de pointures de souliers des élèves du groupe-classe. Ce code utilisera la liste des données triées en ordre croissant, mais les conditions à déterminer seront très différentes.
  • En utilisant un logiciel de codage où le partage de projets est possible, une partie du code pourrait déjà être en place pour que les élèves ne partent pas toujours d’un canevas blanc.
  • Travailler au rythme des élèves. Transférer les connaissances et les concepts mathématiques à du codage peut prendre du temps. Allouer le temps nécessaire à chaque partie de la situation d’apprentissage.
  • Fournir des pseudocodes aux élèves afin de pouvoir les transformer en codes. Le pseudocode peut aussi avoir un code de couleurs qui guidera l’élève vers la bonne catégorie de blocs dans le logiciel choisi.
  • Fournir un aide-mémoire relatif à la fonction de certains blocs plus complexes, tels les opérateurs et les conditions.

Source : Guide d’enseignement efficace des mathématiques, Codage, p. 130-146.