Ressource
Professeurs du secondaire . Ressources et supports scolaires . Article ou présentation . enseignement . colle . informatique . science du numériqueSciences du numérique au collège: l’age de l’autonomie.
Ce texte est un résumé (et une synthèse d’un document complémentaire), au niveau du collège, du document de référence de l’académie des sciences : L’enseignement de l’informatique en France, Il est urgent de ne plus attendre qui a guidé le choix des ressources proposées ici.
Où voulons-nous aller avec l’enseignement de l’informatique et des sciences du numérique au collège ?
En bref : (i) l’acquisition de l’autonomie face au numérique, dont on devient acteur, et (ii) la découverte opérationnelle de la pensée informatique.
De l’autonomie: la «constitution de soi-même comme sujet, c’est-à-dire comme acteur, et non simplement spectateur, du monde, demande d’être capable d’agir sur lui et de le transformer». Au niveau des objets numériques la capacité d’agir repose en grande partie sur la capacité à construire soi-même de tels objets. Pour prendre conscience, de manière performative, du rôle créatif et innovant qu’ils peuvent jouer dans ce monde.
De l’apprentissage de la programmation. Il n’est pas difficile de distinguer la pensée des personnes qui ont suivi un apprentissage de la programmation ou non dans leur rapport aux objets informatiques : pour ces dernières ce sont des objets opaques, souvent inquiétants, parfois personnifiés ou fétichisés, pour les premières, ce sont des objets transparents et utiles, que ces personnes auraient pu elles-mêmes concevoir.
Partir de l’apprentissage de la programmation.
L’initiation : on commence à apprendre à programmer en apprenant les rudiments d’un langage de programmation, limités par exemple aux notions de : affectation, séquence, test, boucle et tableau. On pourra ensuite au fil des exemples, faire découvrir les notions plus avancées, telles les fonctions, structures de données dynamiques ou les objets. Cet apprentissage doit être illustré par des exercices d’application courts, visant typiquement à l’écriture de programmes d’une dizaine de lignes.
On programme des objets numériques, il faut donc aussi savoir comment sont codés ces objets numériques (image, textes, sons, …), ce que l’on peut découvrir facilement au fil des exercices.
Le but est essentiellement de savoir mobiliser ses connaissances sur les langages de programmation pour résoudre des problèmes simples : qu’ils sachent écrire un test, une boucle, etc. ainsi que l’identification des fonctionnalités de ces langages utiles pour résoudre un problème donné : par exemple utiliser deux boucles imbriquées pour réaliser un calendrier.
La mise en application. Dans une seconde phase on apprend à utiliser ces notions dans la construction de programmes plus conséquents, sur des temps plus longs et en petits groupes, typiquement de deux élèves. Ces exercices sont souvent appelés des « projets ». Une partie importante de la tâche demandée aux élèves est de définir en partie eux-mêmes le sujet de leur projet, souvent à partir du développement d’un exercice court.
Cela demande d’apprendre de nouveaux savoir-faire : s’organiser à plusieurs, sur le temps long, en redéfinissant périodiquement ses objectifs. Le but est qu’ils apprennent à organiser des programmes de plus grande taille, à les tester, à prendre en compte les besoins de leurs utilisateurs, à définir des objectifs, à réviser ces objectifs au cours du déroulement du projet, à travailler en groupe et à présenter leur travail par écrit et par oral.
Les compétences fondamentales.
L’enseignement de l’informatique, et notamment de la programmation, permet de développer des compétences que l’entrée dans le monde informatisé à rendu centrales.
– Modéliser : un élève qui écrit, par exemple, un programme qui permet de mettre un nom commun au pluriel, exprime sous la forme d’un algorithme formulé dans un langage formel un ensemble de règles de grammaire, qui indiquent quels mots prennent un « s » au pluriel, quels mots prennent un « x », quels mots sont invariables, etc. Il apprend ainsi à utiliser un langage formel pour décrire un phénomène : il apprend à modéliser.
– Collecter des données en vue d’un traitement : un élève qui écrit, par exemple, un programme qui permet d’effectuer des transformations d’images, doit collecter des exemples d’images sur lesquelles exécuter son programme. Il doit pour cela trouver une source d’images : le site web d’un musée, des photos qu’il a prises, etc. Il doit s’interroger sur le format dans lequel ces images sont exprimées, sur la taille des données à traiter, sur la licence sous laquelle ces images sont distribuées, sur les éventuels problèmes de protection de la vie privée que pose la collecte de ces images.
– Abstraire : un élève qui écrit, par exemple, un programme qui permet de trouver la sortie d’un labyrinthe doit s’interroger sur la manière de représenter son labyrinthe. Rapidement il s’apercevra que beaucoup de détails sont sans importance : que son labyrinthe soit un labyrinthe végétal dans les jardins d’un château ou un labyrinthe dessiné dans la rubrique jeux d’un journal, les algorithmes permettant de trouver la sortie sont les mêmes et la mise en œuvre de ces algorithmes demande de gommer ces détails pour se focaliser sur les éléments pertinents : la liste des carrefours et la liste des couloirs reliant ces carrefours. Il apprend ainsi à abstraire une situation en gommant les détails non pertinents, à retrouver des schèmes et des invariants dans des situations a priori différentes.
– Projeter : un élève qui écrit un programme doit imaginer ce que ce programme fera avant que cet objet n’existe et évaluer la difficulté de sa réalisation afin de se fixer des objectifs ambitieux, mais réalistes. Au cours de cette réalisation, il devra réviser ses objectifs, souvent à la baisse, car il rencontrera des obstacles imprévus, parfois à la hausse, car la réalisation elle-même suscitera de nouvelles idées.
– Réaliser : pour atteindre ces objectifs, il devra décomposer son projet en parties – par exemple un programme en fonctions – ayant chacune ses objectifs propres, réaliser chaque composant, le valider, par exemple par une batterie de tests, identifier ses erreurs et les corriger, avant de valider ce composant à nouveau. Valider l’ensemble du projet enfin. Parce que les objets construits sont immatériels, l’informatique est la technique où la boucle de test et de correction d’erreurs est la plus courte et la plus facile à mette en œuvre. L’erreur en informatique n’est, en outre, pas une faute qui dévalorise l’élève, mais une composante essentielle du processus de création.
– Travailler en groupe : si les premiers exercices d’un élève sont souvent des activités individuelles, dès les premiers mois de l’apprentissage de l’informatique, les élèves réalisent des projets en groupe, souvent à deux. Cela leur demande de négocier les objectifs et la répartition des tâches, d’expliquer leur travail et de comprendre le travail de leurs camarades.
– Interagir avec un objet matériel : un élève n’écrit jamais un programme pour lui seul ou pour son professeur, mais avant tout pour que ce programme soit exécuté par une machine, c’est-à-dire un objet matériel. La faculté d’interagir avec un objet matériel est une clé essentielle d’entrée dans le monde informatisé dans lequel nous vivons. L’apprentissage de l’informatique permet de comprendre les différences entre l’interaction avec une personne et l’interaction avec une machine, que l’on peut résumer par le fait que l’interaction avec une machine comporte une part moindre d’implicite. Cela implique, par exemple, que l’on doive utiliser un langage et non une langue pour interagir avec une machine.
Les notions leviers : information, langage, algorithme et machine.
On peut les résumer en terme codage de l’information et décodage du code, avec des ressources sur liées à la représentation de l’information et à l’initiation à l’algorithmique.
L’enseignement uniquement par projet n’est pas suffisant, car les connaissances ainsi transmises peuvent être trop atomisées. Le lien entre les différentes connaissances transmises peut parfois manquer. Il est essentiel de trouver un équilibre entre l’enseignement par projet et le cours qui construit une pensée structurée.
L’apprentissage de la programmation permet de découvrir les rudiments de la pensée informatique. Dès que l’on apprend à programmer, on comprend en effet que certains problèmes, comme vérifier la présence d’un visage dans une image, qui semblent simples à résoudre, sont très difficiles à programmer, contrairement à d’autres, comme vérifier la présence de la lettre « a » dans un mot. Cette prise de conscience est une première étape qui mène à se demander comment notre cerveau est capable de reconnaître un visage dans une image. Une nouvelle signification de l’adverbe interrogatif « Comment » émerge la réponse à la question « Comment notre cerveau fait-il pour reconnaître un visage ? » est un algorithme, sans doute programmé par l’évolution, et que nous ne connaissons encore que très partiellement.
Cette réflexion peut se poursuivre, même à un niveau élémentaire, sur la différence entre une définition algorithmique et une définition non algorithmique : définir la différence n – p de deux nombres comme le nombre de cailloux restants si on en met n dans un sac et que l’on en retire p, nous donne un algorithme pour calculer cette différence de deux nombres. En revanche, définir la différence de deux nombres n et p comme le nombre qu’il faut ajouter à p pour obtenir n ne nous donne aucun moyen direct de le faire.
Il est aussi souhaitable d’attirer l’attention des élèves sur quelques éléments clés de l’histoire des machines. L’humanité a d’abord fabriqué des outils, c’est-à-dire des objets qui demandent un certain apprentissage pour être utilisés. Ensuite elle a fabriqué des machines munies d’un moteur capables d’exécuter certaines opérations de manière autonome, ce qui a parfois demandé de paramétrer ces machines pour qu’elles effectuent une tâche ou une autre. Par exemple, les métiers à tisser peuvent être paramétrés pour tisser un motif ou un autre. Puis, ont été fabriquées des machines à traiter de l’information, capables de manipuler des symboles. Par exemple, une machine spéciale a été construite aux États-Unis pour dépouiller les résultats du recensement de 1890. Mais ce qui distingue radicalement les ordinateurs de ces machines est leur universalité, c’est-à-dire la possibilité pour un ordinateur d’exécuter un algorithme arbitraire : un ordinateur a la même intelligence mécanique que tous les ordinateurs.
C’est aussi l’occasion de découvrir ou d’approfondir d’autres aspects de l’informatique. Tout d’abord, si certains systèmes informatiques sont autonomes, par exemple un ordinateur de bureau, d’autres sont utilisés au sein de systèmes plus complexes, avions, trains, voitures, etc., qui articulent des composants mécaniques avec des composants informatiques. L’interface entre les ordinateurs et les systèmes mécaniques qu’ils contrôlent se fait par des capteurs et des actionneurs, qui sont eux-mêmes des machines. C’est un sujet riche, puisqu’il mêle des aspects matériels et des aspects algorithmiques, car des algorithmes sont nécessaires pour traduire une valeur analogique en une valeur numérique dans un capteur ou une valeur numérique en une valeur analogique dans un actionneur. D’autres algorithmes sont indispensables pour contrôler le système en agissant sur les actionneurs en fonction des valeurs captées.
C’est encore le lieu où peuvent être abordés les réseaux, et en particulier les notions d’adressage et de routage, de manière « débranchée », c’est-à-dire sans utiliser un ordinateur. Alors qu’à l’école primaire, il était simplement possible de s’interroger sur la manière dont un paquet trouve son chemin sur un réseau et de donner des réponses schématiques, il devient possible au collège d’introduire les notions de routeur, de table de routage et des algorithmes de routage et de mise à jour des tables de routage. Cette initiation à la notion de réseau est bien entendu un moment privilégié pour introduire des notions de sécurité, de vie privée ou de propriété que leur développement induit.
Il faut enfin, nourri des notions précédentes, aborder les modifications profondes que l’informatique apportait à notre société. C’est au collège que les élèves peuvent commencer à réfléchir à ces modifications. Par exemple, les adolescents savent très tôt télécharger des pièces de musique. Au-delà de la question de la légalité de ces pratiques, il est possible de les mener à s’interroger sur la raison pour laquelle cette question de la légalité se pose pour un fichier mp3, mais non pour un disque vinyle ou même un disque compact. La réponse à cette question peut les mener à comprendre que la non-rivalité est un aspect essentiel des biens immatériels : la copie étant immédiate et parfaite, le fait de posséder une information n’interdit pas aux autres de posséder la même. L’évolution des pratiques, mais aussi des normes et même du concept de propriété privée est déterminé par l’évolution des propriétés techniques des objets échangés. Aborder ces questions sans les acquis précédents ne permet pas d’avoir un avis profond et éclairés sur ces sujets (juste d’apprendre et de tenter de réciter).
Qu’y a t’il de relativement innovant dans une telle démarche ?
Beaucoup de ces compétences sont transverses mais l’informatique les décline de manière spécifique, en particulier parce qu’elle réconcilie le langage et l’action, catégories naguère – et parfois encore – perçues comme antithétiques.
Apprendre en faisant : parce que c’est un travail immatériel, écrire des programmes, demande peu de moyens – c’est d’ailleurs une des clés qui expliquent la rapidité de la troisième révolution industrielle – donc c’est à la portée de tous les collèges (et il y a de plus en plus de plateformes adaptées).
Créer des objets tangibles (robots, objet connecté), demandent des moyens matériels et conceptuels plus importants (et il est impossible, au Collège, de faire concevoir et construire par exemple un smartphone), mais il existe des solutions liées aux activités des fablabs et autres clubs de robotique, qui mettent aussi ces réalisations à portée de main.
Apprendre à apprendre. On est ensuite dans une démarche de co-construction du savoir, l’enseignant va probablement répondre «tu ne sais pas encore ? moi non plus : mais nous allons le découvrir ensemble !». Cette posture (qui doit évidemment être sincère) a plusieurs vertus, même chez les plus jeunes: nous voilà dans une démarche d’apprentissage de l’autonomie. On constate aussi la mise en place d’une nouvelle relation entre enseignant (qui sont techniquement en train de se former à cette nouvelle discipline) et élèves. Le maître n’est plus détenteur d’un savoir mais accompagnateur, guide vers ces savoirs, savoir-faire et savoir-être. Beaucoup de ces compétences sont transverses mais l’informatique les décline de manière spécifique, en particulier parce qu’elle réconcilie le langage et l’action, catégories naguère – et parfois encore – perçues comme antithétiques.
Dernière modification : décembre 2017.