© Desgagné, S. et Gervais, F. (2000).

Version imprimable:

Préambule : Un enseignant d'une quinzaine d'années d'expérience qui enseigne un cours optionnel d'informatique à des élèves de quatrième et cinquième secondaires relate ses difficultés à enseigner une notion particulière. Aussi, il constate comment la solution qu'il a trouvée a bouleversé toute son approche pédagogique.

TITRE: MONTRER L’OISEAU QUI VOLE

J'enseignais, à l'époque, les langages de programmation. Il y a une période de l'année où j'enseigne une boucle itérative. C'est une procédure qui permet à l'ordinateur de répéter certaines actions à partir d'un paramètre de départ et d'un paramètre de fin de procédure. C'est ce qu'on appelle en terme de langage de programmation Basic une boucle For next. La procédure est assez simple. Ça peut être un compteur de temps, par exemple. Lorsqu'on travaille à l'ordinateur, on a un temps d'attente pour lire un texte ou un paragraphe et il y a une petite boucle qui permet de compter. Si on estime que, pour lire, ça prendra 30 secondes, on mettra une boucle For next et on fera compter l'ordinateur jusqu'à 30. C'est un petit automatisme que tu installes dans le programme. Mais on peut insérer des procédures beaucoup plus compliquées en insérant des actions plus ou moins complexes. La procédure comme telle n'est pas si difficile à enseigner. Pour le début de la procédure, l'ensemble des élèves comprend et arrive à faire une boucle For next assez facilement. Mais lorsqu'on ajoute des variantes, ils ne sont plus capables de s'imaginer la logique de la procédure. Par exemple, enseigner une boucle For next en décompte, c'était très difficile. Quand on compte, comme humain, on n'a pas à penser : « Je compte de 1 à 10 par 1. » C'est automatique. Je n'ai pas à me poser de questions. Quand on compte de 10 à 0, on fait 10, 9, 8, 7, 6... Dans notre tête, on fait -1 à toutes les fois, 10 - 1, ça fait 9. L'ordinateur n'est pas un être humain, alors il faut le préciser. Pour compter, ça va bien, on n'a pas besoin de spécifier dans la procédure Step 1. Mais pour la procédure inverse, le décompte, il faut le faire. Il faut lui dire de compter par -1 : Step -1. Ce n'est pas évident d'imaginer la nécessité de dire à l'ordinateur qu'il doit faire un décompte par 1. Les élèves oubliaient tout le temps cette procédure-là.

C'était compliqué pour moi à enseigner. C'était encore bien plus difficile quand je leur posais un problème impossible à réaliser verbalement pour vérifier leur logique : « Tu vas compter de 0 à 10 et tu vas mettre Step -1 ». C'est impossible, mais pour eux, c'était dans le domaine du possible. Ils comptaient de 0 à 10 en introduisant une variante -1 et ils disaient : « 0, 1, 2... » J'avais beau expliquer au tableau, faire les décomptes, mettre la procédure dans un programme, leur montrer que ça ne fonctionne pas, il y avait toujours 75% des élèves de la classe qui ne comprenaient pas cette procédure-là. Quelques-uns voyaient le piège, probablement ceux qui faisaient déjà de l'informatique à la maison, de la programmation. Mais à l'époque, ce n'est pas tout le monde qui avait un ordinateur. Il faut qu'ils comprennent l'erreur et qu'un ordinateur ne travaille qu'avec la logique. Il ne peut pas corriger ce qui est faux, il ne peut pas corriger les erreurs de l'être humain. Si l'être humain fait une erreur en partant, l'ordinateur vit avec l'erreur mais il n'est pas capable de l'exécuter. C'est toute cette logique-là qu'il faut faire paraître à l'élève (1). Il ne s'agit pas que de lui montrer les procédures qui fonctionnent, il faut lui montrer les procédures qui ne fonctionnent pas aussi pour qu'il comprenne que ces procédures-là, l'ordinateur ne les corrigera pas. Dans cette partie-là, à tous les ans, c'était toujours la même chose. Cela faisait six ou sept ans que j'enseignais cette notion. J'essayais bien d'améliorer mes exemples, d'introduire de nouvelles notions, de nouvelles stratégies, de nouveaux exercices, quelque chose qui est plus évident mais il reste que c'est toujours de la logique.

Cette journée-là, je vois plusieurs groupes comme d'habitude. Ça va assez bien les deux premières journées où je passe tous mes groupes de quatrième et cinquième secondaires. Les élèves viennent à bout d'apprendre ce qu'est un compteur. Les paramètres sont simples, les notions passent assez facilement. C'est un cours à option en « langage de programmation Basic ». Puisque c'est une option, les élèves aiment la matière et ils sont intéressés. Je n'ai pas de problèmes de comportement avec eux. J'ai six groupes sur neuf en langage de programmation. L'autre professeur, Roland, a trois groupes. Je demande à Roland comment ça a été avec les groupes qu'il a rencontrés, parce que lui aussi a de la difficulté. Il me confirme que pour les boucles simples, ça va bien, mais quand il arrive avec des boucles imbriquées, les boucles complexes, des négations, c'est épouvantable.

Malgré tout ce que j'avais trouvé, les exercices, les simulations, le tableau, les démonstrations, il restait toujours une partie des élèves qui étaient dans le brouillard. Par exemple, je pouvais dire à un élève : « Dans ta procédure, il te manque une information. Tu lui demandes de décompter de 10 à 0 et tu ne lui as pas dit qu'il doit faire -1. » Et l'élève répondait : « Oui, mais ce n'est pas nécessaire, c'est évident ! Moi, je ne fais pas -1. » Je leur disais que ça prend -1. Il faut le dire à l'ordinateur mais ce n'était pas suffisant pour eux. Ils écrivaient une procédure qui ne leur disait rien, qui ne correspondait pas à leur logique. C'est bien beau de leur dire : « Tu refais ça. C'est la bonne façon ! », mais il faut que tu expliques pourquoi c'est la bonne façon.

J'ai rencontré deux groupes le matin, ça n'a pas été facile. Dans l'après-midi, je vois entrer les élèves de mon premier groupe et ils ne me disent même pas bonjour. Ils s'assoient. Ils sont béats. Ils ne sont pas là. Je me dis que ça va être l'enfer avec eux, aujourd'hui. Qu'est-ce que je vais faire avec ce groupe-là ? Je ne peux pas annuler le cours, je ne peux pas encore passer une période sur les positifs, les procédures simples, j'ai mes objectifs, j'ai mon programme à passer. Je vais me retrouver avec ce groupe-là en arrière des autres qui vont être en avance sur eux. Je décide de tenter le coup quand même. Je vais les tester et si je vois que ça ne marche pas, je vais changer mon cours et ça va aller au prochain. Je fais un petit retour rapide sur le cours précédent et je leur dis qu'aujourd'hui, on introduit une nouvelle notion, les boucles itératives négatives. Je leur explique leurs particularités par rapport aux boucles positives qu'on vient d'apprendre. Je leur fais une démonstration, j'écris la procédure, je la fais tourner à l'ordinateur pour qu'ils la voient. Ça n'a pas plus d'effet. Comment vais-je faire pour les raccrocher ? Si ça avait été un groupe comme j'avais eu le matin, peut-être que je ne me serais pas posé cette question-là. Les autres ne comprenaient peut-être pas beaucoup plus, mais ils tentaient au moins de comprendre. Les élèves de ce groupe-là, eux, ne voulaient pas. Même avec un autre contenu de cours, ça aurait été la même chose. Malheureusement, ça tombait sur une procédure qui était très difficile à enseigner, très obscure pour eux.

À un certain moment, je ne sais pas ce qui s'est passé, je regarde le plancher et je compte les tuiles. Je dis alors : « C'est comme si on comptait sur les tuiles. Quand je pars là-bas, je fais 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Ça circule. Ça va bien ! Après ça, si tu vas de reculons, c'est -1. » Ils commencent à se réveiller. C'est du concret. Je pense à mon affaire. C'est correct, je pense, je vais y aller. Je vais chercher un élève : « Je suis programmeur, tu es l'ordinateur et le plancher c'est l'écran. Et on voyage sur les tuiles. Chaque tuile, c'est 1. Tu exécutes mon programme : For next = 1 to 10. C'est quoi ta case de départ ? » L'élève est au centre de la classe et les autres se sont tous levés pour mieux voir, ils regardent comment l'autre circule. Il se met les pieds sur les tuiles : « 1, 2, 3... » et j'arrête à 10. « On fait une autre procédure : For next de 8 à 12. Tu me dis la cote de départ et la cote d'arrivée et par pas de deux, Step 2. » Il commence : « La cote de départ c'est 8 : ... 8, 10, 12. » Il fait trois tuiles. Il a compris. J'en ajoute et je prends d'autres élèves dans la classe. J'essaie un problème-piège : « Tu vas passer de 8 à 25 par pas de deux. » Il commence : « 8, 10, 12... » Je lui demande : « Où arrêtes-tu ? »

Alors il commence :

« 8, 10, 12, 14, 16, 18, 20, 22, 24.

- Pourquoi 24 ?
- Je dois arrêter à 25, mais si je fais un saut de plus je ne peux pas me rendre à 26 parce que mon temps d'arrêt c'était 25. »

Ils commencent tous à saisir : « C'est vrai ! C'est facile ! » Ils voient les tuiles et ils corrigent : « Tu as oublié une tuile. » Il y a une discussion qui s'installe dans le groupe. Ils participent. Alors je dis : « On va introduire les négatifs. » Et ça passe comme du beurre dans la poêle ! Après une demi-heure, j'ai fait faire toutes sortes de simulations corporelles. Je les sens à l'aise. Maintenant, je leur dis que je vais les piéger. « Maintenant, tu vas me faire For next = 10, 0 to 10 Step - 1. » Il commence :

« 10, 9...

- Je te dis d'avancer de 1 en reculant de 1. Essaie sur le plancher. Je te demande d'avancer jusqu'à 10 qui est là-bas en reculant par pas de 1. »

Il ne savait pas s'il devait se mettre devant, se retourner, reculer ou avancer et faire un pas en avant ou reculer de -1. Tout le monde reconnaît graduellement que ce n'est pas possible. Ils commençaient à comprendre la logique. Physiquement, on le voyait que ce n'était pas logique. Si ce n'était pas possible pour nous. ils avaient compris que pour l'ordinateur, ce n'était pas possible non plus. C'était alors clair pour eux qu'il fallait décrire la procédure au complet. Je leur disais que le reflet de notre intelligence, c'était l'ordinateur. Ce qu'on était capable de faire intelligemment et logiquement avec de l'analyse, l'ordinateur le faisait. Mais ce qui était illogique, il n'était pas capable. J'avais réussi à capter leur attention et à mettre une image sur l'action. Habituellement, ça prenait deux ou trois périodes à faire passer et simplement en « l'imageant » sur les tuiles du plancher, ils ont compris la logique. Je suis passé ensuite à autre chose, les négatifs, les boucles imbriquées...

Après mon cours, j'explique à mon confrère Roland ce qui s'est passé. Je lui explique de A à Z. Je lui suggère de l'essayer et de m'en reparler. Le lendemain, il me confirme que ça a été merveilleux. Il dit : « Le tableau, on devrait le sortir de la classe et s'attarder à trouver des choses qui sont concrètes. Il faudrait qu'à partir de maintenant, on tente toujours « d'imager » nos procédures, trouver, dans la vraie vie, comment ça se passe, pour être capable de leur faire comprendre la notion. » C'est vrai. La programmation, ce n'est pas du concret, c'est virtuel. Ce qu'on tente d'enseigner, c'est un niveau abstrait, une règle supérieure d'apprentissage. On n'est pas dans les discriminations ou dans les règles de base. À partir de ce moment, on a essayé de toujours trouver des choses concrètes pour illustrer les notions. Il y en avait d'autres notions qui n'étaient pas faciles. On essayait de les décortiquer, les « imager », les mimer, les interpréter corporellement. On essayait d'embarquer les élèves dans des simulations et les impliquer aussi dans l'apprentissage. Quand l'élève marchait sur les tuiles et qu'il disait, en même temps qu'il avançait : « J'avance de 1, de 2, de 3... », il le verbalisait et il y avait une gestuelle qui accompagnait. Il n'y avait pas que ceux qui voyageaient sur place qui étaient impliqués, les autres aussi participaient. Quand l'élève est venu pour faire la boucle-piège, les autres élèves ont dit : « Ce n'est pas possible ! » Ils n'étaient plus seulement des observateurs et des gens qui écoutent mais ils participaient aussi à l'action, à l'apprentissage.

Pourtant, on avait essayé toutes sortes de choses, avant, qui n'avaient pas donné ces résultats : on avait développé des graphiques, des déroulements au tableau, on expliquait la procédure au complet, ce qui se passait dans le For, ce qui se passait dans le next. On mettait l'ordinateur au ralenti et on faisait regarder l'écran. Une année, on faisait dérouler la procédure sur un écran et sur un autre on faisait dérouler le « listing ». Mais ce n'était pas perceptible, parce que la trace qu'on laissait sur le programme, c'étaient encore des chiffres. Il leur manquait quelque chose. On devait l'enseigner à un niveau auquel ils n'étaient pas encore rendus. Ils étaient rendus à ce qu'on leur mette des choses plus palpables, plus concrètes, plus observables. C'est comme si je disais : « l'oiseau vole d'une branche à l'autre » et que je ne leur montre pas l'oiseau qui vole. Je le montre sur une branche et à un moment donné, je leur montre rendu sur une autre branche. On ne leur montrait pas ce qui se passait entre le point de départ et le point d'arrivée, mais c'était impossible avec l'ordinateur. C'est le bout virtuel qu'il fallait qu'ils acceptent. « Oui Monsieur, c'est vrai à 100%. On vous croit à 100%. » On le savait qu'il manquait ce bout-là, mais il nous fallait chercher un moyen pour leur faire transparaître, leur faire percevoir, leur faire accepter, leur faire comprendre. Après ça, on a développé d'autres formes. Par exemple, pour leur expliquer une boucle conditionnelle d'action If then, une autre procédure qui n'est pas facile à comprendre (si tu fais telle action, alors tu vas faire telle autre), on décide de se trouver une émission dans la banque de T.V. Ontario. On essaie toujours de trouver des éléments comme ça pour « imager » des procédures complexes soit « gestuellement », soit par de l'animation. On fouille dans T.V. Ontario, dans les émissions Octopus. Il faut dire qu'à l'époque, nous étions les premiers à enseigner l'informatique. Il n'y avait aucun matériel, en tout cas rien en français. Les logiciels sont en anglais, tout est en anglais. Le petit peu qui est sur le marché est fait par T.V. Ontario. Alors, il faut tout développer. Quand on a commencé l'informatique, il fallait construire les programmes, introduire les notions, les langages, expliquer comment fonctionne l'appareil, la mécanique de l'ordinateur, son architecture, toute la connaissance de l'informatique aussi, parce que c'était vraiment nouveau. Il fallait enseigner tout le côté « Hardware » et tout le côté « Software », les mémoires, morte et vive. Tu n'explores pas les stratégies d'enseignement, parce que le contenu est déjà assez ardu à écrire et à passer. C'est après, quand tu entres dans les stratégies d'enseignement, quand ton programme est construit, que tu commences à enseigner des procédures et que tu trouves un moyen pour les enseigner.

Là, on les embarquait dans leur apprentissage. Toute l'approche de nos projets a changé. Au lieu de prendre des projets qui faisaient calculer des sinus, des cosinus, des aires et des surfaces en mathématiques, on leur a fait faire des petits programmes qui permettent de faire des choses concrètes. On leur faisait observer des choses qui sont plus proches d'eux. On a introduit aussi des notions de jeu. Comment jouer à la 6/49, faire des dés, le hasard. On les fait jouer d'abord, et ensuite, on leur fait découvrir par quelle manière ils ont pu construire toute leur logique pour découvrir la solution pour finalement essayer de le traduire à l'ordinateur. Avant, avec les résolutions de problèmes en mathématiques, en chimie ou en physique, c'étaient des choses qu'ils connaissaient déjà d'avance, il n'y avait pas de recherche à faire. Il n'y avait pas de découverte. Ils ne participaient pas. Mais là, on les faisait découvrir. On a commencé à les embarquer dans le processus d'apprentissage en les laissant libres pour la couleur, pour les images, pour agrémenter leur présentation, leur travail. Après, on s'est toujours soucié de trouver des choses auxquelles ils pouvaient participer, qu'ils pouvaient observer à tous les jours. On prenait leur montre, le thermomètre, des choses qu'ils palpaient à tous les jours. Ils amenaient aussi leurs propres idées. Un jour, un élève avait lu un conte en mathématiques qui s'appelle « Hamurad » et qui racontait l'histoire d'un gars qui devait faire survivre sa ville. Pour ce faire, tout le monde devait travailler, apporter de l'argent, des produits et ils ne devaient pas être malades. À partir de ce conte-là, on l'a programmé pour faire vivre notre ville. On a appelé ça « Hammourabi ». Bref, les projets n'étaient pas complexes mais ce sont des choses qui les intéressaient, des points d'intérêt pour eux. Il fallait que les élèves participent à leur apprentissage, que l'enseignement soit un centre d'intérêt pour eux, qu'ils y trouvent une motivation.

Je veux toujours essayer d'innover et de créer l'intérêt des élèves. Je n'aime pas être décontenancé, baisser les bras et ne plus rien faire. J'aime avoir du défi et que ça fonctionne. J'ai le goût de les voir et que ça leur tente eux aussi de venir à mon cours. Quand les élèves fonctionnent bien, je fonctionne bien. Je ne me sens pas dans une routine. J'ai le goût de venir ici le matin, j'essaie d'aller plus loin avec eux. Aujourd'hui, j'enseigne le traitement de texte et d'autres logiciels et un autre confrère enseigne le langage de la programmation. Pendant un certains temps j'ai enseigné les logiciels-outils. J'enseignais le traitement de texte, mais il n'était appliqué à rien. « Prenez le texte à telle page. Appliquez les conventions typographiques et tapez le texte. » Le message était que l'informatique, ce sera bon dans le futur. Mais il est possible de faire des choses en informatique qui ont rapport avec l'immédiat, avec leur apprentissage (2).


1- L'enseignant nous livre sa conception de la programmation et des difficultés sous-jacentes à son enseignement

La programmation, c'est être capable d'analyser des problèmes, être capable d'en tirer la logique, c'est analyser comment agit l'être humain, comment pense le cerveau et essayer de concevoir comment on peut réorganiser ça en fonction de la machine. Le langage de la programmation, c'est la logique de l’analyse. Pour la majorité des élèves, la logique ce n'est pas évident. Il faut qu'ils commencent par décortiquer eux-mêmes leur propre logique, et par la suite analyser la procédure. Ce n'est pas une chose à laquelle on peut les raccrocher. C'est toujours quelque chose qui est virtuel, qui n'est pas palpable. Ce n'est jamais un élément concret, qu'on peut « imaginer » facilement. Dans l'analyse et la logique, c'est ça qui est difficile à faire transparaître. On ne peut pas prendre les éléments et les « imaginer », même si on fait un programme et qu'on le fait défiler. On voit les actions passer, mais on ne voit pas en même temps les procédures qui se déroulent en arrière. Il y a toujours quelque chose qui est sous-entendu qui n'est pas facile à saisir. L'autre difficulté est de faire correspondre des éléments réels à des éléments qui sont programmables, de faire une relation entre les deux.

2- L'enseignant explique son fonctionnement dans son cours de cette année qui reprend l'idée d'impliquer les élèves dans leur apprentissage

Pendant plusieurs années, j'ai demandé à plusieurs professeurs de jumeler leurs contenus à celui de mon cours. L'année dernière, L. s'est montrée intéressée à un tel projet de collaboration. On décide de mettre un contenu en place et on va voir la direction. Notre projet fait boule de neige parce que la direction trouve notre projet extraordinaire. L'université collabore, le CEMIS (Centre d'enrichissement en micro-informatique scolaire) débloque des budgets. C'est devenu un projet-pilote à travers la province, le premier. C'est un succès.

J'ai quatre groupes en troisième secondaire qui sont jumelés avec les groupes de L.. Elle a aussi deux autres groupes qui ne sont pas jumelés. C'est le jour et la nuit. On s'est aperçu qu'on faisait une grande famille. Il y a toujours une espèce de connivence comme lorsque je retrouve chez moi avec mes enfants et ma femme. On travaille tout le temps ensemble, on se rencontre le matin, le midi, etc., et les étudiants viennent nous voir : « Nos deux professeurs préférés ! » Ils ont un lien très fort avec nous. C'est comme si ce n'était plus qu'une matière maintenant. On est quatre groupes, deux professeurs mais ça ne fait qu'une entité. Avant, le groupe 1 ne s'occupait pas de ce qui se passait dans les groupes 2, 3 et 4. Maintenant, ils sont tous concernés. « Le groupe 1 est plus avancé que nous, est-ce qu'on va les rattraper ? » C'est incroyable la dynamique qui s'est installée.

En traitement de texte, ils produisent des textes en géographie. Je faisais corriger le français aussi. Ils sont en train de faire la révision de leur examen de géographie, sans s'en rendre compte. Avant, tu leur demandais quelle sorte de production concerne le concombre et ils n'étaient pas capables de dire que c'était une polyculture spécialisée en maraîchère. Maintenant, en leur faisant faire une base de données, ils sont capables de dire dans quelle zone elle est produite. Je leur ai donné 25 produits maraîchers, d'élevage, etc. et ils ont fait la recherche pour le trouver. On fait les climatogrammes en géographie. Ils font les graphiques et les tableaux en mathématiques. Toutes les notions d'abscisse, d'ordonnée et de construction de tableaux et de graphiques ce serait vu en mathématiques. J'ai été un cran plus loin encore. En plus d'avoir travaillé en géographie, j'ai intégré des icônes à placer dans les projets. On allait dans « Paintbrush » pour modifier l'icône et en faire une image. J'ai introduit une image dans une banque de données, alors j'ai travaillé sur deux logiciels et je les ai jumelés ensemble. L'intégration, c'est aussi l'intégration des logiciels.

J'aurais vu d'autres matières avec lesquelles ça aurait pu fonctionner, mais le problème c'est qu'il n'y a pas d'autres enseignants qui voulaient participer à ce projet. Il a fallu tout reconstruire notre programme L. et moi, cette année. On travaille au jour le jour et on reconstruit, on refait des projets et on les adapte en fonction de nos besoins à chacun. On réécrit au complet nos objectifs. C'est beaucoup de boulot. Mais avec ce succès-là, les professeurs de français veulent venir. On pourrait faire faire une recherche en géographie mais elle serait corrigée par les professeurs de français en fonction de la syntaxe, de la grammaire, des règles typographiques. L'élève produirait sa recherche en géographie. Elle serait corrigée en français et produite en informatique. Alors, ils font un seul travail, il y a trois notes impliquées. Autrement dit, ils ne font pas trois travaux différents. Ils n'en font qu'un seul. Il est complet, il est recherché.

La routine, je trouve ça trop facile. Facile à un point tel que, dans le cours de traitement de texte, les élèves devaient apprendre Tape-touche qui est habituellement donné par ordinateur. C'est au programme. J'ai dit aux élèves que je ne l'enseignerai pas parce que ces trois mois-là, je ne ferais rien. Je vais trouver ça nul. Ce que j'ai fait, c'est que je l'ai mis sur l'heure du dîner. Les élèves qui sont intéressés viennent le faire. Et moi, j'ai été au-delà de ça avec mes élèves. J'étais en traitement de texte et je pouvais faire des choses incroyables. Au lieu de faire une chose banale, je les fais se surpasser eux-mêmes et je leur montre qu'ils sont bons. Parce qu'ils pensent qu'ils ne sont pas bons, dans rien. Quand on réussit à leur montrer qu'ils sont très bons, on les fait se surpasser. Ils ont une estime d'eux parce qu'ils y sont arrivés.