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, y compris des codes comprenant des événements séquentiels.

Habileté : résoudre des problèmes de façon computationnelle


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

Par exemple, l’élève pourrait utiliser le code afin de montrer la position d’un sprite par rapport aux éléments d’un arrière-plan.

Dans cet exemple, l’élève devra créer une séquence de code afin de représenter la position de la grenouille en relation avec les petits champignons. Cela aide aussi à mettre en pratique le vocabulaire relatif (devant, derrière, en dessous, par-dessus, à gauche, à droite, etc.).

Habileté : représenter des situations mathématiques de façon computationnelle


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 concrétiser des concepts très abstraits.

Par exemple, l’élève pourrait déterminer les déplacements requis afin de « faire 10 ». Voici une séquence de 10 mouvements :

Ligne de codage : Une grenouille, bloc de départ drapeau vert, bouge vers la droite, 3 fois, bouges vers le haut, 3 fois, bouge vers la droite, 3 fois, bouges vers le bas, fin

Cette séquence représente un déplacement de trois blocs vers la droite, de trois blocs vers le haut, de trois blocs vers la droite et d’un bloc vers le bas. Cela pourrait être représenté par l’opération 3+3+3+1=10. L’élève pourrait aussi utiliser la pensée algébrique afin de regrouper les déplacements semblables pour faire 6+3+1=10. Le déplacement par le bas pourrait aussi représenter une soustraction, d’où la représentation de 3+3+31=8. Il est donc possible d’utiliser une même séquence de code pour représenter plusieurs situations mathématiques.

Habileté : écrire le code


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

Par exemple, le pseudocode ci-dessous décrit un sprite qui se déplacera à un endroit précis.

sprite – grenouille

Condition de départ = vrai (drapeau vert)

Déplacer

1 case vers la droite

Déplacer

1 case vers la droite

Déplacer

1 case vers la droite

Déplacer

1 case vers le haut

Déplacer

1 case vers le haut

Fin

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

Ligne de codage :Une grenouille à la gauche de cinq objets de directions accolées. Les deux premiers objets sont marqués d’une flèche pointant vers la droite, une fois, les deux dernières sont marquées d’une flèche pointant vers le haut, une fois.

Habileté : exécuter le 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ée (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 au moyen d’un bouton dans l’interface, tandis que certains périphériques de robotique nécessitent des logiciels de compilation spécifiques qui font essentiellement la traduction du code de la langue de programmation à la langue du robot.

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

Exemple de boutons d’exécution.

Source : Microbit.

Exemple de boutons d’exécution.

Source : Scratch.

Connaissance : événements séquentiels


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

Par exemple, dans la carte d’une ville fictive comme celle présentée ci-dessous, on pourrait créer un pseudocode d’événements séquentiels afin de se rendre d’un édifice à l’autre

Carte d’une ville fictive.

Position initiale = à gauche de la maison jaune

Condition de départ = vrai

Déplacer 5 pas

Direction = bas

Déplacer 2 pas

Direction = droite →

Position finale = devant le poste de police

Le code correspondant à ce pseudocode, tel qu’il est programmé dans un logiciel de codage par blocs, pourrait ressembler à ceci :


Ligne de codage : Le premier bloc est jaune et contient un drapeau vert. Les 8 blocs suivants sont des blocs de mouvement. De gauche à droite, les mouvements demandés sont : droite, haut, droite, haut, droite, haut, droite, haut. Chaque mouvement se fit une fois.

La vidéo suivante montre la progression des apprentissages de la 1re à la 3e année par rapport aux divers types d’événements en codage.

Source : Adapté de En avant, les maths!, 3e année, ML, Algèbre, p. 15 à 20.

0 seconds of 6 minutes, 55 secondsVolume 90%
Press shift question mark to access a list of keyboard shortcuts
00:00
06:55
06:55
 
Ouvrir description de la video Description de la vidéo

[Vidéodescription]

L'oratrice montre son écran d'ordinateur qui affiche le logiciel Scratch. Au fil de ses descriptions, elle effectue les opérations à l'ordinateur, et le tout s'affiche à l'écran.

[Oratrice]

Je débute en appuyant sur le signe d'addition afin de créer une nouvelle programmation. Dans ce code, je vais représenter l'histoire d'un hippocampe et d'un poisson qui se rencontrent dans les fonds marins.

Je débute en choisissant un arrière-plan approprié. Pour ce faire, je choisis l'icône du paysage en haut de l'écran. En ce qui concerne les personnages, je n'ai pas besoin du chat, je peux donc le supprimer. Je garde mon doigt sur le personnage à la gauche de l'écran jusqu'à ce qu'apparaisse le petit X rouge. Pour ajouter un personnage, j'appuie sur le petit signe d'addition, je choisis l'hippocampe, je le place à la position de départ désirée.

Je peux maintenant commencer le code relatif à l'hippocampe. Je dois commencer par un bloc qui m'aidera à exécuter mon code. Je choisis le bloc d'événement du drapeau vert. Ce bloc signifie que lorsque j'appuie sur le drapeau vert, ma programmation débutera. Avant de commencer mon code, j'écris un pseudo-code afin de faciliter la planification de ma programmation. Je veux que mon hippocampe se promène et qu'un poisson jaune arrive près de lui et lui demande où il va. Maintenant que j'ai mon pseudo-code et que j'ai une idée du code que je veux créer, je peux commencer par mes blocs de mouvement. Je veux que mon hippocampe avance et monte, avance et descende. La suite de mouvements sera donc avance-avance-monte, avance-avance-descend. Je ne sais pas de combien mon hippocampe va avancer vers la droite avec un seul mouvement. Il est donc important d'évaluer avant de poursuivre avec le code.

J'ajoute donc un bloc « avance de un » et j'appuie sur le drapeau vert. J'ajoute un autre bloc de mouvement pour que l'hippocampe avance de deux. Je veux ensuite qu'il monte d'un. J'ajoute le bloc de mouvement vers le haut. Je répète ensuite les deux blocs vers la droite et j'ajoute un bloc de mouvement vers le bas. J'ai créé des événements séquentiels, ce qui veut dire que les blocs seront lus les uns après les autres.

[Vidéodescription]

Un encadré textuel apparaît. Il est écrit : « Événements séquenciels. 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. »

[Oratrice]

J'appuie sur le drapeau vert afin d'exécuter mon code pour voir s'il y a des modifications. J'aime le déplacement que fait mon hippocampe et je ne veux apporter aucune modification.

Je répète ensuite ce mouvement vers la droite, vers la droite, vers le haut, vers la droite, vers la droite, vers le bas. Je les répète une troisième fois vers la droite, vers la droite, vers le haut ; vers la droite, vers la droite, vers le bas.

J'appuie sur le drapeau vert afin d'exécuter mon code. Je trouve que mon code est long et répétitif. Je me rappelle que je peux utiliser une boucle afin d'ajouter un événement répétitif.

[Vidéodescription]

Un encadré textuel apparaît. Il est écrit : « É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 les instructions. »

[Oratrice]

Cela rendra mon code plus efficace.

Je déplace la partie de mon code dont je n'aurai plus besoin et j'insère ma boucle avec mon événement séquentiel à l'intérieur. Je modifie le nombre de répétions de ma boucle à trois fois. J'appuie sur le drapeau vert afin d'exécuter mon code. Je peux vérifier si ma boucle fonctionne. Je vois que je peux rendre mon code encore plus efficace en modifiant le nombre de pas directement sur le bloc au lieu de le répéter. J'enlève donc un mouvement de bloc vers la droite et je modifie le mouvement de pas à deux sur l'autre bloc de mouvement vers la droite.

Le mouvement de mon hippocampe me satisfait, donc je peux maintenant ajouter mon autre personnage. Je clique sur le petit signe d'addition et je choisis le poisson jaune. Je veux que mon poisson jaune se déplace dans l'autre direction, donc vers la gauche pour que les deux personnages se croisent.

Afin de m'assurer que j'écris le code pour le bon personnage, je regarde au bas et à la gauche de l'écran. Je vois bien le dessin du poisson, donc je peux commencer mon code. Tout comme pour l'hippocampe, je commence par mon bloc d'événement du drapeau vert. Cela fait que mes deux personnages commencent la programmation en même temps. Ce qui crée un événement simultané.

[Vidéodescription]

Un encadré textuel apparaît. Il est écrit : « Événements simultanés : plusieurs événements qui se produisent en même temps. »

[Oratrice]

J'ajoute mes mouvements vers la gauche, vers le haut, vers le bas. Je veux que ce mouvement soit répété deux fois avant que le poisson pose une question à l'hippocampe. J'ajoute une boucle et je la répète deux fois. Je vais maintenant dans la catégorie mauve où je trouve le bloc pour faire parler mon personnage. J'ajoute le bloc à ma séquence et je modifie le texte : « Salut. Où vas-tu, vite comme ça? »

[Vidéodescription]

L'oratrice entre la citation dans un champ de texte.

[Oratrice]

Je peux maintenant envoyer un message indiquant que quelque chose a été dit. Dans l'onglet jaune, je choisis l'enveloppe fermée. Cela envoie un message à la programmation en entier.

Je vais maintenant dans le code de l'hippocampe en sélectionnant mon image à la gauche de l'écran. Je confirme que c'est bien la page de programmation de l'hippocampe en regardant la silhouette en bas et à la gauche de l'écran.

Je vais maintenant insérer le bloc d'enveloppe ouverte. Je m'assure que les enveloppes sont de la même couleur pour que cette séquence de code soit une réponse au message envoyé.

Cela commence une nouvelle chaîne séquentielle. Cette séquence d'événements ne débutera pas tant que le message ne sera pas envoyé par le poisson jaune. J'ajoute le bloc de parole dans l'onglet mauve et je modifie le texte : « Je suis en retard à l'école. »

Je veux par la suite que l'hippocampe poursuive son déplacement. J'ajoute donc la même suite du mouvement qu'au début, vers la droite de deux, vers le haut d'un, vers la droite de deux, vers le bas d'un. J'appuie sur le drapeau vert afin d'exécuter mon code.

[Vidéodescription]

À droite de l'écran, le poisson jaune se déplace légèrement vers la gauche. À gauche de l'écran, l'hippocampe se déplace vers la droite et s'arrête sous le poisson. Une bulle de texte apparaît au-dessus de ce dernier. Le poisson dit : « Salut. Où vas-tu, vite comme ça? » Une bulle de texte apparaît au-dessus de l'hippocampe. L'hippocampe lui répond : « « Je suis en retard à l'école. »

[Oratrice]

Je suis satisfaite de mon code. J'ai intégré des événements séquentiels simultanés et répétitifs.

[Fin de la vidéodescription]