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 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.
Habileté : résoudre des problèmes de façons informatiques
Le codage peut être utilisé afin d’automatiser des tâches et de visualiser les mathématiques pour faciliter 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. L’élève peut donc utiliser la question « qu’arrivera-t-il si…? ».
Par exemple, l’élève pourrait se demander comment se comparent les mesures de tendances centrales d’une série de données. L’élève pourrait d’abord créer des sous-programmes dans son code, qui permettraient d’exploiter certaines commandes ou certains blocs afin de déterminer la moyenne, la médiane, le mode et l’étendue de la série de données. Les sous-programmes pourraient par la suite être intégrés dans le programme principal.
Habileté : représenter des situations mathématiques de façons informatiques
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, pour calculer la moyenne d’une série de données, l’élève devra bien connaître la façon d’effectuer ce calcul afin de choisir les bonnes commandes ou les bons blocs pour atteindre ce but. Voici un exemple de code qui permettrait de calculer une moyenne :
image Blocs de codage attachés les uns avec les 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 de 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 »Dans cet exemple, le calcul de la moyenne est représenté, dans la dernière ligne du code, comme la somme des données divisée par la longueur de la liste.
Habileté : écrire du code efficace
L’écriture ou la rédaction d’un code efficace consiste à placer des instructions dans un ordre précis, en respectant la syntaxe d’un langage de programmation et en utilisant un minimum de blocs ou de commandes pour obtenir le résultat désiré. La rédaction de code peut ressembler à la rédaction d’un texte. La rédaction de pseudocode, quant à elle, consiste à rédiger les directives du 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érentes.
Par exemple, certains codes feront appel à des séquences très complexes qui, dans le corps du code principal, peuvent représenter du code encombré et difficile à lire. L’utilisation d’un sous-programme permet de maintenir une certaine structure dégagée du code principal en faisant appel aux séquences complexes lorsque le besoin se présente.
Voici un exemple d’un sous-programme qui a été transformé en bloc personnalisé.
image Blocs de codage attachés les uns avec les autres. Mes blocs : définir « recueil des données ». Bloc de contrôle : répéter jusqu’à ce que « réponse égale « 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 la taille de souliers ». Bloc de capteur : demander « as-tu une autre donnée à entrer ? « Répondre oui ou non ». Et attendre, Répéter.Une fois ce bloc créé, le code principal ressemblerait à ceci :
Il existe plusieurs façons de faire appel à un sous-programme, et le logiciel ou la langue avec laquelle le code est rédigé aura une incidence sur ce processus.
Habileté : exécuter du code
L’exécution d’un code est l’étape pendant 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 sortie différente 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 langages de programmation textuels nécessitent des logiciels de compilation précis qui font essentiellement la traduction du code, du langage de programmation vers le langage machine (par exemple, le code binaire) afin que celui-ci puisse exécuter le code. Cela 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 dans la plateforme MakeCode
Boutons d'exécution dans la plateforme Scratch
Bouton d’exécution du logiciel de compilation Python « Programiz »
Connaissance : les sous-programmes
Un sous-programme est un petit ensemble d’instructions qui permet d’effectuer une tâche simple à l’extérieur du code principal. Les sous-programmes peuvent être combinés dans un programme principal pour accomplir une tâche importante en utilisant des étapes simples.
Par exemple, il est possible de créer un bloc personnalisé qui, lorsqu’il est exécuté, fait appel à une série de directives précises (un sous-programme). Il s’agit d’abord de créer un bloc ayant deux paramètres réglables, par exemple la base et la hauteur. Dans ce cas, le bloc « rectangle » envoie le message de commencer à exécuter le code qui se trouve sous le bloc « définir : rectangle ». Cela fait en sorte qu’un rectangle de n’importe quelle taille peut être généré n’importe où sur l’écran, car le rectangle a été défini. Lorsque le rectangle aura été tracé, le code principal continue.
image Blocs de codage attachés les uns aux autres. Mes blocs : définir « rectangle, base, hauteur ». Bloc stylo : effacer tout. Bloc stylo : stylo en position d’écriture. Bloc de contrôle : répéter 2 fois. 4 Blocs de mouvement : avancer de, base, pas. Tourner vers la gauche de 90 degrés. Avancer de, hauteur, pas. Tourner vers la gauche de 90 degrés. Répéter. Bloc stylo : relever le stylo.Pour insérer le rectangle, il faut simplement ajouter le nouveau bloc « rectangle » au code, et indiquer les valeurs de la base et de la hauteur.
Note : La manière d’accéder aux sous-programmes de ce genre dépend du logiciel ou du langage choisi.
Dans cette vidéo, l’élève crée un code contenant un dénombrement prédéfini et un sous-programme permettant de faire rouler un dé un certain nombre de fois à l’aide d’un logiciel de programmation de son choix.
Source : En avant, les maths!, 7e année, ML, Algèbre, p. 4-6.
Description de la vidéo
Description à venir
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
Événements simultanés
Plusieurs événements qui se produisent en même temps.
Exemple
É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
Événements imbriqués
Structures de contrôle placées à l’intérieur d’autres structures de contrôle. Par exemple, des boucles apparaissant à l’intérieur de boucles, ou une instruction conditionnelle en cours d’évaluation dans une boucle.
Exemple
Instructions conditionnelles
Type d’instructions 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 soit vraie, soit fausse, souvent au moyen de la commande SI, ALORS et SINON.
Exemple
Efficacité du code
La rédaction d’un code fonctionnel en utilisant un minimum de blocs ou de commandes.
Exemple
image Blocs de codage attachés les uns aux autres : Bloc d’évènement : quand drapeau vert est cliqué. Bloc stylo : effacer tout. Bloc stylo : stylo en position d’écriture. 8 blocs de mouvement : avancer de 200 pas. Tourner vers la gauche de 90 degrés. Avancer de 100 pas. Tourner vers la gauche de 90 degrés. Avancer de 200 pas. Tourner vers la gauche de 90 degrés. Avancer de 100 pas. Tourner vers la gauche de 90 degrés. Bloc de stylo : relever le stylo. Une flèche nous pointe ce bloc : Blocs de codage attachés les uns aux autres : Bloc d’évènement : quand drapeau vert est cliqué. Bloc stylo : effacer tout. Bloc stylo : stylo en position d’écriture. Bloc de contrôle : répéter 2 fois. Blocs de mouvement : avancer de 200 pas. Tourner vers la gauche de 90 degrés. Avancer de 100 pas. Tourner vers la gauche de 90 degrés. Répéter. Bloc stylo : relever le stylo.