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 instructions conditionnelles et d’autres structures de contrôle.

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 afin de faciliter la résolution de problèmes. Par sa nature même, le codage se prête bien à l’essai et erreur, donnant à l’élève l’occasion de résoudre des problèmes en apprenant de ses erreurs. Elle ou il peut donc se poser la question « Qu’arrivera-t-il si…? ».

De plus, la question « Qu’arrivera-t-il si…? » amorce une discussion sur les conditions et les instructions conditionnelles; par exemple, dans un problème de probabilité, on pourrait se demander « Qu’arrivera-t-il si je roule un dé 1 000 fois? » ou « À quelle fréquence est-ce que j’obtiendrai le résultat 2 en roulant un dé 1 000 fois? ». Étant donné le temps requis pour effectuer cette expérience manuellement, le code devient une façon efficiente de résoudre un tel problème.

L’élève devra aussi réfléchir sur la façon d’utiliser des commandes ou des blocs de manière efficace, c’est-à-dire en en utilisant le moins possible pour atteindre leur but. Une question comme celle-ci, nécessitant un grand nombre de répétitions, pourrait devenir un code interminable si les bonnes commandes ou les bons blocs ne sont pas utilisés.

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 rendre plus concrets des concepts très abstraits.

Par exemple, il est possible de représenter une situation mathématique de plusieurs façons en utilisant du code, mais certaines représentations sont plus efficaces que d’autres. Un logiciel de codage par blocs pourrait, par exemple, aider l’élève à générer une liste de données afin d’identifier l’étendue, mais un tableur peut accomplir la même tâche avec moins de code. L’élève pourrait d’abord progresser d’une représentation moins efficace, mais plus facile à comprendre visuellement, à une représentation plus efficace, mais ayant des composantes et des structures plus abstraites.

Code Résultat
Codage par blocs

Image Blocs de codages attachés les uns avec les autres. Bloc d’évènement : départ drapeau vert. Bloc de variable de ma liste : supprimer tous les éléments de la lite « donnes ». Bloc de contrôle : répéter dix fois. Bloc de variable de ma liste : ajouter « nombre aléatoire entre un et 35 »à données. Répéter. 3 blocs de variable : mettre « max à un ». Mettre min à 35. Mettre position à un. Bloc de contrôle : répéter « longueur de données » fois Bloc de contrôle : si « élément position de données » plus grand que max alors. Bloc de variable : mettre max à « élément position de données. Bloc de contrôle : si « élément position de données » plus petit que min alors. Bloc de variable : mettre min à « élément position de données ». Bloc de variable : ajouter un à position. Répéter. Bloc de variable : mettre « étendue » à max moins min.

Liste de dix données représentant des nombres aléatoires entre un et 35. À la droite, 3 fenêtres affichant les valeurs de variables suivantes : max 27, min 3, étendue 24.

Tableur

Liste de données représentée dans un tableur avec des valeurs aléatoires. La commande « randbetween » entre un et 35 est entrée 11 fois.

Liste de données représentée dans un tableur avec des valeurs aléatoires entre un et 35.

Habileté : écrire un code efficace


L’écriture ou la rédaction d’un code efficace consiste à écrire des instructions dans un ordre précis, en respectant la syntaxe d’une langue de programmation et en utilisant un minimum de blocs ou de commandes tout en obtenant le résultat désiré. La rédaction de codes peut ressembler à la rédaction d’un texte, de même que 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 formes et des couleurs de blocs différents.

Voici un exemple de pseudocode pour associer des costumes au résultat obtenu à la suite de l’action de rouler un dé. Ici, on utilise la commande « si, alors, sinon » afin d’obtenir plusieurs possibilités.

Sprite – DÉ

Costumes : Sprite : 6 dés dont les faces vont de, un à 6.

Variables : RÉSULTAT

METTRE « RÉSULTAT » À (NOMBRE ALÉATOIRE 1-6)

SI « RÉSULTAT » = 1

ALORS METTRE COSTUME : Sprite en forme de dé, face à un points.

SINON

SI « RÉSULTAT » = 2

ALORS METTRE COSTUME : Sprite en forme de dé, face à 2 points.

SINON

SI « RÉSULTAT » = 3

ALORS METTRE COSTUME : Sprite en forme de dé, face à 3 points.

SINON

SI « RÉSULTAT » = 4

ALORS METTRE COSTUME : Sprite en forme de dé, face à 4 points.

SINON

SI « RÉSULTAT » = 5

ALORS METTRE COSTUME : Sprite en forme de dé, face à 5 points.

SINON

METTRE COSTUME : Sprite en forme de dé, face à 6 points.

Le code résultant pourrait ressembler au pseudocode, mais une bonne compréhension de l’utilisation de variables réduit ce code à quelques lignes seulement.

Bloc variable : mettre « résultat » à « nombre aléatoire entre un et 6 ». Bloc d’apparence : basculer sur le costume « résultat ».

Dans cet exemple, toutes les conditions « si, alors, sinon » sont toujours là, mais existent dans la programmation du bloc « basculer sur le costume (RÉSULTAT) ». L’élève qui comprend bien ce concept pourra réduire de manière considérable le nombre de lignes de code requises pour atteindre un but. Il est important de distinguer la complexité de la longueur du code, car un code peut être très complexe sans être très long.

Habileté : exécuter un 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 au moyen d’un bouton dans l’interface, tandis que les langues de programmation 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, comme 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 Make : Code

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 et structures (connaissances antérieures)


É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.

Exemple 

Bloc de départ Drapeau vert, bouge vers le bas, répéter 5 fois, bouge vers la droite, répéter 2 fois.

Événements simultanés

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

Exemple 

Image Bloc de départ, bouge vers la droite, 6 fois. Bouge vers le haut 2 fois. Envoyer un message. Commencez un message, bouge vers la droite, 4 fois. Commencez un message, bouge 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 les instructions.

Exemple 

Image 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.

Événements imbriqués

Structures de contrôle mises à l’intérieur d’autres structures de contrôle; par exemple, des boucles survenant à l’intérieur de boucles ou une instruction conditionnelle en cours d’évaluation dans une boucle.

Exemple

Bloc de contrôle : répéter 3 fois. Bloc de contrôle répéter 4 fois.

Instructions conditionnelles

Type d’instruction de codage qui indique à l’ordinateur de comparer des valeurs et des expressions, et de prendre des décisions. Une instruction conditionnelle indique à un programme d’exécuter une action selon que la condition est vraie ou fausse, souvent en utilisant le vocabulaire SI, ALORS et SINON.

Exemple

Image Blocs de codage attachés ensemble : Bloc de variable : si base égal hauteur alors. Bloc apparence : dire « oui c’est un carré ». Bloc variable : sinon. Bloc d’apparence : « non, ce n’est pas un carré.