C3.2 Lire et modifier des codes donnés, y compris des codes comprenant des événements séquentiels, et décrire l’incidence des changements sur les résultats.

Habileté : lire le code


La lecture du code consiste à interpréter les blocs ou les commandes afin d’en déduire le sens du code. Cela aide l’élève à faire des prédictions quant au comportement du code. La lecture du code est aussi une partie importante du débogage, soit l’identification et la correction d’erreurs dans le code, car, en lisant le code, il est possible pour l’élève de trouver la ou les raisons pour lesquelles celui-ci ne fonctionne pas. À noter ici que cette habileté ne correspond pas à la lecture du code par l’ordinateur, mais plutôt à la lecture du code par l’élève pour en faire la vérification.

Par exemple, présenter à l’élève la situation suivante :

L’interface d’un jeu est un champ. Dans le coin inférieur gauche de l’écran se trouve une grenouille à côté de deux champignons. A l’extrême droite de l’écran se trouve un autre champignon.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.


L’élève pourrait prédire le comportement de la grenouille avant d’exécuter le code. Dans cette situation, l’exécution du code ne fonctionnera pas, car il manque une condition de départ (le drapeau vert). L’élève pourrait donc aussi trouver des erreurs dans le code à la suite de sa lecture et les corriger.

Habileté : modifier le code


La culture de la programmation informatique en est une d’échange, et plusieurs logiciels sont créés en se basant sur du code existant. La modification d’un code donne l’occasion à l’élève de partir d’une séquence de code existante et fonctionnelle afin de bâtir quelque chose de nouveau. La modification d’un code peut aussi avoir comme objectif de le simplifier, ou de montrer qu’il y a plus d’une façon de représenter une même situation à l’aide du code. Le cas échéant, elle ou il peut aussi modifier du code erroné afin de le rendre fonctionnel, un processus nommé débogage.

Par exemple, un code qui place des pièces de monnaie canadienne de façon à former une suite pourrait placer des pièces de 5 cents comme suit :

Le nombre 5 est placé sur le modèle d’une demi-pyramide.

Y a-t-il d’autres codes possibles pour représenter cette même valeur?

L’élève pourrait modifier le code pour prolonger la suite ou pour remplacer les pièces de 5 cents par des sprites de différentes pièces qui représenteraient les mêmes valeurs.

Exemple 

Suite de nombres en bonds de cinq.

Habileté : décrire l’incidence des changements sur le code


Autant l’essai et l’erreur occupent une place importante dans la création de séquences de code, autant il est important que l’élève puisse justifier ses choix de modifications à un code existant en faisant des prédictions sur l’effet de ces modifications sur le comportement du code.

Par exemple, des déplacements séquentiels à gauche suivis du même nombre de déplacements séquentiels à droite résultera dans un déplacement nul – la position initiale et finale du sprite n’aura pas changé. L’élève qui comprend bien ce concept pourra utiliser des déplacements dans tous les sens afin de créer des séries de 10 déplacements avec un point final précis.

Exemple

Un sprite doit se déplacer de deux unités vers la droite afin d’être par-dessus un autre sprite, mais la consigne est de créer des combinaisons de 10 déplacements. L’élève pourrait faire un déplacement de six unités vers la droite et de quatre unités vers la gauche pour un déplacement total de 10 unités, mais la position finale du sprite n’est qu’à deux unités de sa position initiale.

Ce genre d’exercice peut être utile afin d’arrimer l’apprentissage de la position relative avec les faits d’addition.

Connaissance : événements séquentiels


La base de tout code est la séquence. Des événements séquentiels sont un 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 partir d’un code spécifique et demander à l’élève de prédire l’emplacement final du sprite ou même de modifier le code afin que le sprite puisse se rendre à un autre endroit.

Une route encadre la ville verdoyante parcourue de quelques rues. La ville est pourvue d’une maison, d’un magasin, d’une station de police, d’un hôpital, d’une école, d’une caserne de pompiers, de deux pompes à essence, de deux feux de circulation, de quelques arbres et de quelques panneaux routiers.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.

Le pseudocode associé à ce code pourrait ressembler à ceci :

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 = (inconnu)

L’élève pourrait prédire, par exemple, que la position finale du sprite sera soit au magasin, soit au poste de police, soit à la station d’essence, étant donné que le sprite part de la maison jaune et se déplace vers le bas et vers la droite. Elle ou il pourrait ensuite vérifier sa prédiction en exécutant ce code.