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 :

Blocs de codage attachés les uns aux autres. 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 de souliers ». Mes blocs : recueil de données.

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

image Execute bouton.

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.

Mes blocs : nommé rectangle avec deux espaces pour des paramètres qui sont vides.

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.

Ouvrir description de la video 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

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

É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

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

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

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

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

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.