Le numérique à l'école
L'école est une fenêtre sur le monde. Le monde change, et un des défis de l'école est d'évoluer avec les changements sociétaux afin de coller au mieux aux préoccupations et besoins de nos sociétés contemporaines.
Un des grands bouleversements affectant l'école du 21e siècle est l'arrivée du numérique dans chaque compartiment de nos vies. Afin de pouvoir s'approprier cette technologie sans en être victime, les futurs citoyens doivent pouvoir entamer une réflexion critique sur la pensée numérique à l'école déjà.
Une des questions qui taraudent de nombreux collègues enseignants est la façon dont le numérique peut être enseigné dans le cadre de leur discipline sans rogner sur des savoirs plus classiques jugés indispensables. Une piste se trouve dans ce qu'on appelle la pensée computationnelle, une pensée qui vise à retranscrire la réalité d'une manière compréhensible pour un système informatique. L'intérêt de cette technique est d'améliorer la résolution de problèmes en ayant recours à la puissance de calcule offerte par les ordinateurs modernes (cf. méthode computationnelle). Une des application de la pensée et méthode computationnelle est donc la résolution de problèmes liés aux domaines d'enseignement visés.
L'information
Tout d'abord, il convient d'identifier les aspects de la pensée computationnelle, du monde numérique, des espaces virtuels, en résumé des technologies de l'information, qui nous paraissent les plus adéquates à traiter dans le cadre de l'école secondaire genevoise.
Une des bases de la pensée computationnelle est la notion d'information. Mais qu'est-ce que l'information? Le Larousse la définit comme un "élément de connaissance susceptible d'être représenté à l'aide de conventions pour être conservé, traité ou communiqué." Conceptualiser la réalité comme une insondable juxtaposition, transmission, réception, interprétation, expression de connaissances ouvre la voie à une méthode d'investigation de la réalité basée sur l'information. Il y a plusieurs dimensions à cette méthode: l'organisation de l'information, son traitement, ses échelles et son expression. Penser de manière computationnelle doit donc d'abord être de penser le monde comme un système complex, dynamique, et non-linéaire dans lequel l'information est exprimée, circule et est interprétée constamment.
Le(s) langage(s) de l'information
Le plus petit dénominateur commun dans les langages numériques actuels est le bit. Un bit est exprimé soit avec un 0 soit avec un 1. Une série de 8 bits composent 1 octet (byte en anglais). Un octet est donc une série de huit 0s et/ou 1s. Il y a 2^8 combinaisons de huit 0s et/ou 1s, soit 256 combinaisons.
Traditionnellement, chaque lettre de l'alphabet est représentée par un octet, A étant 01000001, B = 01000010, etc. L'important ici est de reconnaître qu'au niveau fondamental, il y a une sorte de traduction qui prend place afin de transformer les lettres de l'alphabet en un code binaire fait de zéros et de uns. C'est ce qu'on appelle le langage binaire. Il y a de nombreux autres langages de programmation qui font usage de ces changements d'échelle afin de maximiser le débit d'information. Pour "lire" l'information, il faut donc posséder la bonne grille de "traduction" afin de convertir les 0s et 1s en lettres, puis en mots, etc.
L'organisation de l'information: relationnalisation, hiérarchisation, catégorisation, imbricage, balisage
Pour pouvoir utiliser l'information, il est nécessaire de l'organiser. Organiser l'information revient à rendre explicite les relations entre chaque élément de connaissance. Pour ce faire, il y a plusieurs outils.
Prenons un exemple simple pour commencer. Une manière d'organiser l'information par le langage informatique est en utilisant la technique du balisage, ou en anglais tagging. Assigner des balises à un élément de connaissance permet de traiter ce même élément de manière différentes selon les besoins, les moments, et les phases de la procédure de traitement. Le balisage est particulièrement utilisé dans les sites webs afin d'identifier chaque aspect de la façade du site afin de pouvoir la formater à sa guise avec l'aide d'une feuille de style. Par exemple, grâce au balisage, on peut en une seule fois modifier l'apparence de tous les titres de section; au lieu de modifier chaque titre individuellement, ce qui peut prendre du temps lorsqu'on a beaucoup d'information, on modifiera la feuille de style ce qui engendrera une cascade de changements. Le balisage est omniprésent dans tous les traitements de texte actuel. Lorsqu'on "souligne" un mot dans un paragraphe, en réalité on assigne au mot une balise à laquelle on assigne la valeur "soulignement".
Une autre manière d'organiser l'information est de la regrouper en catégories. Une des catégories les plus importantes est la collection (en anglais, array).
Enfin, la base de données est un élément-clé de l'organisation des connaissances en pensée computationnelle, car elle permet d'organiser l'information de manière systématique et hautement structurée et facilite par conséquent sa lisibilité et sa manipulation. Une base de donnée prend souvent la forme d'un tableau dans lequel les cellules de la première ligne explicitent les catégories d'information, et où les lignes suivantes représentent chacune un élément de connaissance ainsi que les moyens de l'identifier. La complexité et sophistication du traitement de l'information dépend du nombre de méta-information qu'on décide d'inclure dans la base de donnée. Prenons un exemple concret. On crée une base de donnée avec tous les adjectifs d'une langue. Comme méta-information, on pourrait ajouter le nombre de syllabe dans le mot, sa terminaison, sa régularité ou irrégularité, sa racine étymologique, sa définition, sa traduction dans d'autres langues, sa prononciation, son registre, sa difficulté à être appris, ses synonymes, ses antonymes, ses hyponymes et hypernymes, etc. Chacune de ces méta-informations donne plus d'information sur l'adjectif car elles situent l'adjectif dans des catégories plus larges liées à la linguistique.
On le voit ici, les catégories qu'on décide d'expliciter dans une base de données ont plusieurs utilités qui vont dépendre de la nature et des objectifs du projet. Une de ces utilités est la capacité à rapidement créer des collections d'items. Par exemple, grâce à la base de données sur les adjectifs, on pourrait facilement créer une collection des adjectifs qui contiennent le même nombre de syllabes et ont la même terminaison. On pourrait aussi facilement identifier les adjectifs qui contiennent un certain nombre de lettres communes, etc. En regroupant des mots et en explicitant leurs relations, on intègre le vocabulaire dans un réseau sémantique, ce qui peut être un accélérateur d'apprentissage.
Le traitement de l'information: boucles, répétitions, conditions
En conjonction avec les bases de données, l'informatique permet de traiter un grand nombre d'informations en simultané. Plusieurs techniques permettent de réaliser cela: on parle ici de fonctions qui permettent soit de répéter la même opération de nombreuses fois, soit de conditionner l'opération à certains critères.
Par exemple, si on souhaite générer des phrases de manière aléatoire avec un nombre limité de mots (soit n noms, n adjectifs, n verbes), on peut le faire de manière manuelle et taper chaque phrase individuellement, ce qui pourrait prendre un temps considérable, ou alors on peut utiliser des fonctions de répétitions, de boucles et de conditions afin d'automatiser le processus. Le temps de préparation est certes plus long, mais il offre un avantage déterminant lors du temps de réalisation qui ne change pas, et c'est particulièrement le cas si on augmente le nombre de mots (n = n + 1000). Si on souhaite automatiser le processus de génération de phrase, il faut définir un certains nombre de restrictions afin que les phrases aient du sens. Dans ce contexte, la méthode computationnelle nous invite à réfléchir aux règles qui sous-tendent la production de discours et permettent donc d'approfondir notre connaissance de la grammaire d'un langage.
Les échelles de l'information: de l'octet au corpus, du qualitatif au quantitatif
L'information a de particulier qu'elle regroupe plusieurs échelles et que souvent ces échelles ne sont pas visibles dans le produit final perçu par le public. Une manière d'élémentariser la pensée computationnelle est mettre l'accent sur les échelles de magnitude qui composent chaque information numérique. [en construction]
L'expression de l'information: visualisation, communication, métalangage
Je vais maintenant tenter de dessiner les grandes lignes de la pensée computationnelle en lien avec l'enseignement de l'anglais, cette branche étant celle que j'enseigne depuis maintenant 2010. [en construction]
Exemples d'application de la pensée computationnelle à l'enseignement et apprentissage de l'anglais
Générateur de phrase et apprentissage de la grammaire
Dans ce projet, le but serait de faire réaliser aux étudiants un générateur de phrases grammaticales à l'aide de mots ou de groupes de mots. Ce projet mettrait en jeu les fonctions de boucles, de répétitions, les notions de balisage et de hiérarchisation. Au niveau langagier, ce travail demanderait de verbaliser, expliciter et structurer les règles de grammaire sous-jacentes à la syntaxe de la phrase. Pour compliquer l'exercice, on pourrait demander aux étudiants d'incorporer un style rhétorique à leurs phrases (humour, poésie, sarcasme, etc).
Identification de relations lexicales et analyse thématique
Ici, l'objectif serait de cartographier les relations entre les mots dans un texte littéraire afin de visualiser des thèmes et motifs récurrents. L'aspect computationnel se trouverait dans la recherche systématique de liens entre les mots, dans l'expression statistique de ces liens, ainsi que dans la visualisation de ces liens, alors que le niveau langagier serait abordé par l'entremise de l'analyse de texte, le but final de l'opération étant d'interpréter le texte littéraire original.
Création de poèmes animés
Dans ce projet créatif, l'idée serait de produire un recueil de quelques poèmes où le sens résonnerait avec la forme grâce à l'animation permise par les langages informatiques. On travaillerait ici particulièrement sur le balisage, la mise en page web, et éventuellement sur les fonctions de répétition et de timing. Au niveau langagier, on travaillerait sur la façon dont le langage et la forme peuvent s'auto-alimenter pour développer des aspects inédits de la thématique du poème.