C3.2 Lire et modifier des codes donnés, y compris des codes comprenant des événements séquentiels, simultanés et répétitifs, et décrire l’incidence de ces changements sur les résultats.
Habileté : lire un code
La lecture du code consiste à interpréter les blocs ou les commandes afin d’en déduire le sens. Cela permet à l’élève de faire des prédictions liées 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 déterminer la ou les raisons pour lesquelles celui-ci ne fonctionne pas. À noter qu’il n’est pas question ici de la lecture du code par l’ordinateur, mais plutôt de la lecture du code par l’élève qui le vérifie.
Plus le code est complexe, plus l’habileté à lire du code pour en relever les erreurs devient très importante. Plusieurs questions peuvent être formulées à partir du code suivant :
image Un bloc de codage commençant par un bloc de contrôle qui montre « quand » un drapeau vert « est cliqué ». Ce bloc est empilé sur un bloc de mouvement qui montre « aller à « x » » et une bulle montrant « moins 200 », « i grec » et une bulle montrant « moins 150 ». Empilé sur le bloc variable suivant qui montre le mot « mettre » puis « Rangé » avec une flèche vers le bas, à côté de cela « à » « Zéro » dans une bulle. Ce bloc est empilé sur un bloc d'apparence avec le mot « montrer ». Ce bloc est empilé sur un nouveau bloc de contrôle qui commence par un bloc indiquant « répéter », « 2 » dans un cercle suivi du mot « fois ». Ce bloc est empilé sur un nouveau bloc de contrôle qui commence par un bloc qui montre « répéter », « 4 » dans un cercle suivi du mot « fois ». En dessous est empilé un autre bloc de contrôle qui montre « créer un clone de » dans une autre bulle « moi-même » avec une flèche vers le bas. Le bloc suivant dans la pile est un bloc de mouvement qui affiche « avancer de » dans une bulle affichant « 70 », « pas ». Ce bloc est empilé sur un bloc de mouvement qui montre « aller à x » : et une bulle montrant « moins 200 », « i grec » : et une bulle montrant « moins 150 ». En dessous se trouve un bloc de variables indiquant « ajouter » et une bulle indiquant « un » « à » puis « Rangé » avec une flèche vers le bas, à côté de « à » « i grec ». La séquence se termine par un bloc d'apparence avec le mot « cacher ».- Qu’arrivera-t-il lorsque le code sera exécuté?
- Est-ce que le code est fonctionnel? Comment le sais-tu?
- Quelle est l’intention du code? Est-ce que le code satisfait à l’intention?
Dans le cas de ce code, si le résultat voulu est de produire une disposition rectangulaire de deux rangées de quatre sprites, le code est fonctionnel. Cependant, si le but était d’organiser 24 sprites en disposition rectangulaire, le code ne donnerait pas le résultat voulu.
Habileté : modifier un code
La culture de la programmation informatique est une culture de partage, et plusieurs logiciels sont créés en se basant sur du code existant. La modification d’un code permet d’abord à 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 but de le simplifier, ou de démontrer qu’il y a plus d’une façon de représenter une même situation avec du code. Le cas échéant, l’élève peut aussi modifier du code erroné afin de le rendre fonctionnel, un processus nommé débogage.
En prenant l’exemple de code précédent, on peut demander aux élèves d’apporter des modifications au code afin de représenter 24 sprites. La beauté du code est que les élèves peuvent apporter de très petits changements (par exemple, changer le 2 pour un 6 dans la première boucle) ou des changements drastiques (par exemple, éliminer une des boucles complètement afin de faire une seule rangée ou une seule colonne de 24 sprites).
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 changements à un code en faisant des prédictions relativement à l’effet des changements sur le comportement du code.
Dans l’exemple de la disposition rectangulaire, il est possible, par exemple, de demander aux élèves si la boucle dans le code ci-dessous représente le nombre de colonnes ou le nombre de rangées dans la disposition.
image Blocs de codage attachés les uns avec les autres.Bloc de départ : drapeau vert.Bloc de mouvement : aller à « x » moins 200, « y » moins 150.Bloc de variable : mettre rangée à zéro.Bloc apparence : montrer.Bloc de contrôle : répéter 2 fois.Bloc de contrôle: répéter 4 fois.Bloc de contrôle : créer un clone de moi-même.Bloc de mouvement : avancer de 70 pas.Bloc de mouvement : aller à « x » moins 200, « y » moins 150.Bloc de variable : ajouter un à rangée.Bloc de mouvement : ajouter 30 rangées à « y ».Bloc apparence : cacher.Les élèves peuvent tester ensuite leur prédiction en modifiant le nombre dans la boucle, puis observer le comportement du sprite.