C3.2 Lire et modifier des codes donnés, y compris des codes comprenant des instructions conditionnelles et d’autres structures de contrôle, 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.
Par exemple, lorsque l’élève fait face à une instruction conditionnelle en lisant du code, elle ou il doit interpréter cela comme une éventualité dans le code qui sous-tend une action. Il existe alors plus d’une possibilité liée à l’exécution du code. Dans des cas de codes plus complexes, il peut être profitable d’associer la lecture du code à la rédaction d’un logigramme afin de s’assurer de bien comprendre ce qui est lu.
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.
Par exemple, l’élève pourrait débuter avec un code qui fait déplacer un sprite un peu partout sur l’écran. Le travail de l’élève serait de créer des éléments interactifs lorsque le sprite entre en contact avec d’autres objets. Voici un exemple d’interaction possible :
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.
Par exemple, il est possible de représenter une situation dans laquelle serait déterminée la probabilité théorique d’obtenir « pile » ou « face » en lançant une pièce de monnaie.
Dans ce contexte, il existe deux possibilités, soit « pile », soit « face ». Ces deux possibilités peuvent être associées à deux nombres, soit 1 et 2, et générer des résultats aléatoires qui sont ensuite compilés dans un tableau. Le pseudocode pourrait ressembler à ceci :
Variables
Pile (mettre à 0)
Face (mettre à 0)
Lancers
Résultat
Demander « combien de lancers voulez-vous générer? »
Lancers = Réponse
Répéter (« Lancers ») fois
Mettre « Lancers » à (nombre aléatoire entre 1 et 2)
Si « Réponse » = 2
Alors, ajouter 1 à Pile
Sinon
Ajouter 1 à Face
À la suite de la lecture de ce pseudocode, il serait possible de demander à l’élève des questions telles que :
- Qu’arriverait-il si, au lieu de 1 et 2, les options de résultats étaient 2 et 4?
- Comment pourrais-je utiliser deux commandes « si, alors » au lieu d’une commande « si, alors, sinon »?
- Quelle incidence aurait la suppression des commandes « mettre à 0 » au début du code?