C3.1 Résoudre des problèmes et créer des représentations de situations mathématiques de façons computationnelles en écrivant et en exécutant des codes, y compris des codes comprenant des événements séquentiels, simultanés, répétitifs et imbriqués.

Habileté : Résoudre des problèmes de façons computationnelles


Le codage peut être utilisé pour automatiser des tâches et visualiser les mathématiques afin de faciliter la résolution de problèmes. Par sa nature même, le codage se prête bien à l’apprentissage par essais et erreurs, ce qui donne à l’élève l’occasion de résoudre des problèmes en apprenant de ses erreurs. L’élève peut donc utiliser le questionnement « Qu’arrivera-t-il si…? »

L’élève, par exemple, pourrait se poser la question « Qu’arrivera-t-il si je dois représenter une suite à motif répété et croissant? » Afin de résoudre ce problème, l’élève devra utiliser une boucle pour représenter le motif répété de la suite et une deuxième boucle pour représenter l’élément de croissance.

Exemple

Code (Scratch)

Résultat de l’exécution

Image Bloc de départ, drapeau vert. Bloc apparence : montrer. Bloc stylo : effacer tout. Bloc de mouvement : aller à « x » moins 200, « y » : moins 160. Bloc de contrôle répéter 5 fois. Bloc de contrôle : attendre une seconde. Bloc stylo : estampiller. Bloc mouvement : ajouter 20 à « y ». Répéter. Bloc de mouvement : aller à « x » moins 200, « y » moins 160. Bloc de mouvement : ajouter 40 à « x ». Bloc de contrôle : répéter 2 fois. Bloc de contrôle : répéter 5 fois. Bloc de contrôle : répéter une fois. Bloc stylo : estampiller. Bloc de mouvement : ajouter 20 à « y ». Répéter. Répéter. Bloc de mouvement : aller à « x » moins 160, « y » moins 160. Bloc de mouvement : ajouter 20 à « x ». Répéter. Bloc apparence : cacher. Sprite en forme de diamant. Ils sont placés sur 3 colonnes de 5 diamants.

Dans cet exemple-ci, il y a une boucle imbriquée dans une autre boucle. La boucle extérieure montre l’élément croissant (soit deux répétitions au deuxième rang de la suite), tandis que la boucle intérieure représente le motif qui se répète, soit les cinq diamants un par-dessus l’autre.

Voici le code agrandi pour mieux voir les boucles :

Image Blocs de codage attachés les uns avec les autres. Bloc de contrôle : répéter 2 fois.Bloc de contrôle : répéter 5 fois. Bloc de contrôle : attendre une seconde. Bloc stylo : estampiller. Bloc mouvement : ajouter 20 à « y ». Répéter. Bloc de mouvement : aller à « x » moins 160, « y » moins 160. Répéter. Bloc apparence : cacher.

Habileté : Représenter des situations mathématiques de façons computationnelles


Le codage peut servir d’outil de représentation de la même façon que le matériel de manipulation. En utilisant des blocs ou des commandes écrites, des situations mathématiques très complexes peuvent être modélisées et manipulées de manière visuelle, ce qui peut aider à rendre concret des concepts très abstraits.

L’élève, par exemple, pourrait coder les propriétés de figures géométriques afin de les représenter à l’écran. L’utilisation de boucles permet de faciliter la représentation de dimensions qui seront répétées, et une deuxième boucle extérieure peut créer des motifs géométriques qui tiennent compte des mathématiques et de l’art. Voici l’exemple d’un tel code pour un motif qui représente les propriétés d’un rectangle :

Image Blocs de codage attachés les uns avec les autres. Bloc d’évènement : départ drapeau vert. Bloc stylo : effacer tout. Bloc stylo : stylo en position d’écriture. Bloc de mouvement : aller à « x » zéro, « y » zéro. Bloc de contrôle : répéter dix fois. Bloc de contrôle : répéter 2 fois. Bloc de mouvement : avancer de 100 pas. Bloc de mouvement : tourner vers la gauche, de 90 degrés. Bloc de mouvement : avancer de 150 pas. Bloc de mouvement : tourner vers la gauche, de 90 degrés. Répéter. Bloc de mouvement : tourner vers la droite, de 36 degrés. Répéter. Bloc stylo : relever le stylo.
Image Il s'agit d'une série de dix rectangles. Le point de départ de chaque rectangle est le même. Le coin inférieur gauche de chaque rectangle est joint au point central. Cette formation donne l'apparence d'une fleur.

Habileté : Écrire du code


L’écriture ou la rédaction d’un code consiste à mettre des instructions dans un ordre précis, en respectant la syntaxe d’un langage de programmation. La rédaction de code peut ressembler à la rédaction d’un texte. Le pseudocode consiste à rédiger les directives pour un code dans la langue familière. Le codage par blocs peut faciliter le respect de la syntaxe en utilisant des blocs de formes et de couleurs différentes.

Le pseudocode ci-dessous, par exemple, décrit un sprite qui donnera la réponse à un problème mathématique, soit le calcul de l’aire et du périmètre d’un rectangle.

Sprite

Variables

[base] = base du rectangle

[hauteur] = hauteur du rectangle

[aire] = aire du rectangle

[périmètre] = périmètre du rectangle

Condition de départ = vrai

Demander – « Quelle est la base du rectangle? »

Valeur de [base] = réponse

Demander – « Quelle est la hauteur du rectangle? »

Valeur de [hauteur] = réponse

Valeur de [aire] = [base] * [hauteur]

Valeur de [périmètre] = [base]+[hauteur]+[base]+[hauteur]

Dire – « L’aire du rectangle est de [aire]. »

Dire – « Le périmètre du rectangle est de [périmètre]. »

Fin

Ce pseudocode peut agir comme l’étape de planification de l’écriture ou de préécriture. Le code résultant pourrait ressembler à ceci :

Image Blocs de codage attachés les uns avec les autres. Bloc de capteur : demander « quelle est la base du rectangle ? et attendre. Bloc de variable : mettre « base » à réponse. Bloc de capteur : demander « quelle est la hauteur du rectangle » et attendre. Bloc de variable : mettre « hauteur », à réponse. Bloc de variable : mettre « aire », à « base » multiplier par « hauteur ». Bloc de variable : mettre « périmètre » à « base » plus « hauteur » plus « base » plus » hauteur ». Bloc d’apparence : dire « regrouper l’aire du rectangle est de » et « aire ». Bloc d’apparence : dire « regrouper le périmètre du rectangle est de » et « périmètre ».

Habileté : Exécuter du code


L’exécution d’un code est l’étape au cours de laquelle la séquence de code est lue et compilée par l’ordinateur. C’est à cette étape qu’un code fonctionnel donnera le résultat, ou la sortie, désiré (et un code non fonctionnel donnera une différente sortie ou aucune sortie). Dans le codage par blocs, l’exécution d’un code est souvent faite par l’entremise d’un bouton dans l’interface, tandis que les langages de programmations textuelles nécessitent des logiciels de compilation spécifiques qui font essentiellement la traduction du code de la langue de programmation à la langue de la machine (par exemple, le code binaire) afin que celle-ci puisse faire fonctionner le code. Cette dernière s’applique aussi aux périphériques de robotique.

Quelques exemples de boutons d’exécution pour un logiciel de codage par blocs :

Boutons d’exécution d’un logiciel de codage.

Boutons d'exécution dans la plateforme Makecode.

Boutons d’exécution d’un logiciel de codage.

Boutons d'exécution dans la plateforme Scratch.

Execute.

Bouton de compilation du logiciel de compilation Python Programiz

Connaissance : Événements imbriqués


Des événements imbriqués sont des structures de contrôle placées à l’intérieur d’autres structures de contrôle (par exemple, des boucles placées à l’intérieur de boucles).

Une « structure de contrôle » est toute ligne ou bloc de code qui influence la manière dont le code est exécuté. Les structures de contrôle ont une répercussion sur le flux du programme. Elles comprennent la répétition de lignes de code ou la sélection pour exécuter ou non des lignes de code précises. La séquence et la répétition (boucles) sont des structures de contrôle.

Afin de bien comprendre l’incidence du changement du nombre de répétitions dans chaque boucle d’un code ayant des boucles imbriquées, l’élève pourrait faire une expérience en se servant d’une variété de combinaisons de nombres et prendre en note les résultats. Puis, l’élève pourrait créer un code qu’elle ou il communiquerait au groupe-classe qui, lui, prédirait le résultat du code. L’élève, par exemple, pourrait se servir du code ci-dessous et voir l’effet d’une variété de nombres sur la disposition des pommes.

La représentation de sprites en disposition rectangulaire devient encore plus évidente au moment de l’utilisation de boucles imbriquées pour définir les rangées et les colonnes de la disposition.

Voici un exemple de code, pour une disposition rectangulaire, qui comporte des événements imbriqués :

Exemple de code (Scratch)

Image Blocs de codage attachés les uns avec les autres. Bloc d’évènement : départ drapeau vert. Bloc de mouvement : aller à « x » moins 190, « y » moins 130. Bloc de variable : mettre « rangée » à un. Bloc de contrôle : répéter 3 fois. Bloc d’apparence : montrer Bloc de contrôle : répéter 6 fois. Bloc de contrôle : créer un clone de moi-même. Bloc de mouvement : avancer de 60 pas. Répéter. Bloc de mouvement : aller « x » moins 190 « y » 130. Bloc de mouvement ajouter 60 multiplie par rangée à « y ». Bloc de variable : ajouter un à rangée. Bloc d’apparence cacher. Répéter.

Résultat de l’exécution

Sprite de pommes. Les pommes sont places en 3 rangées de 6 pommes.

Le code permet maintenant de représenter une multiplication à l’aide de la disposition rectangulaire en utilisant une boucle imbriquée dans une autre boucle. La boucle externe représente le nombre de rangées, tandis que la boucle interne représente le nombre de pommes par rangée. La multiplication peut donc s’écrire comme suit :

(répétitions boucle externe) × (répétitions boucle interne) ou, dans le cas de cet exemple-ci, 3 × 6.

Quelques exemples de questions à poser à l’élève :

  • Quel est le nombre maximal de pommes qui peuvent être affichées à l’écran?
  • Est-ce possible de représenter un nombre premier en disposition rectangulaire?
  • Combien de différentes façons est-il possible de représenter le nombre 36?
  • Qu’arriverait-il si une troisième boucle était imbriquée dans le code? Où la placerais-tu?

Connaissance : Événements et structures (connaissances antérieures)


Événements séquentiels

Ensemble d’instructions exécutées les unes après les autres, généralement de haut en bas ou de gauche à droite sur un écran.

Exemple

Représentation de « P » plus petit ou égal à 9 personnages.

Événements simultanés

Plusieurs événements qui se produisent en même temps.

Exemple

Bloc de départ, bouges vers la droite, 6 fois. Bouges vers le haut 2 fois. Envoyer un message. Commencez un message, bouges vers la droite, 4 fois. Commencez un message, bouges vers e haut, 4 fois.

Événements répétitifs

Événements qui se répètent. Dans le cadre d’activités de codage, les boucles sont utilisées dans le code pour répéter des instructions.

Exemple

Blocs de codages attachés les uns aux autres. Bloc évènement : départ au drapeau vert. Bloc
  de contrôle : répéter 4 fois. Bloc de mouvement : avancer de 60 pas. Bloc de contrôle : créer un clone de moi-même.
  Répéter.

Dans cette vidéo, l’élève écrit, modifie et exécute des codes comprenant des événements séquentiels, simultanés, répétitifs et imbriqués afin de créer une fleur multicolore.

Source : Inspiré de En avant, les maths!, 4e année, ML, Algèbre, p. 29.

Ouvrir description de la video Description de la vidéo

Description à venir