La pensée informatique ou computationnelle

N’est pas une discipline réservée aux informaticiens !

Car l’humanité digitale concerne tout le monde ! Et toutes générations.

Traduction française d’un article du SI Magazine (en anglais)

Alexander Repenning

Original: https://magazine.swissinformatics.org/en/computational-thinking-%E2%89%A0-programming/

Traduction française par Pascal Kotté, Board www.SISR.ch et président de CloudReady.ch

Pensée informatique ≠ Programmation

introduction

Pensée computationnelle est considérée comme la réalité de demain comme une compétence cruciale pour les travailleurs du 21ème siècle. Le processus suivi pour formuler et résoudre un problème, et la manière dont les capacités de la pensée humaine peuvent être combinées aux capacités techniques d’un ordinateur, sont au cœur de la pensée numérique. La pensée informatique est une compétence que tout le monde devrait posséder.

C’est une compétence de base universelle,
qui devrait être enseignée à l’école.

Mais comment enseigner efficacement une telle compétence?

La pensée informatique a des liens étroits avec la programmation; beaucoup supposant qu’en enseignant automatiquement ces derniers, on apprendra à penser par ordinateur. Cependant, les recherches montrent que ce n’est pas le cas.[1]

En effet, la pensée informatique est beaucoup plus que la programmation et enseigner une telle compétence nécessite l’utilisation d’outils spécifiques, les Outils de pensée informatiques, qui peuvent aider le processus de pensée computationnelle, sans la mise en place d’une programmation compliquée et difficile.

Pensée computationnelle

Le terme “pensée informatique” a été introduit dans la communauté informatique par le biais d’un article d’ACM Communications, écrit par Jeannette Wing en 2006.

Selon la définition à la fois célèbre et reconnue de Wing, “La pensée informatique est le processus de pensée impliqué dans la formulation d’un problème et sa solution de manière à ce qu’un ordinateur — humain ou machine — puisse fonctionner efficacement” [2]

Dans son article, Wing a soutenu que la pensée numérique était “une compétence fondamentale pour tout le monde, pas seulement pour les informaticiens[3]. La pensée informatique devrait être enseignée partout, en particulier à l’école, et les idées informatiques devraient être intégrées à d’autres disciplines. Cependant, alors que des définitions communément utilisées de la pensée informatique apparaissent progressivement, il est beaucoup moins clair de savoir comment les gens acquièrent la pensée informatique pour devenir des penseurs informatiques. De manière générale, la pensée informatique peut être définie comme un ensemble de compétences cognitives spécifiques et de processus de résolution de problèmes. Selon Wing, la pensée informatique, entre autres choses, reformule un problème apparemment difficile en un problème que nous savons résoudre, peut-être par réduction, intégration, transformation ou simulation. C’est “penser récursivement[3]. C’est un “traitement en parallèle[3]. Il s’agit de juger un programme non seulement pour son exactitude et son efficacité, mais aussi pour son esthétique et la conception d’un système pour sa simplicité et son élégance.

Pour mieux comprendre le sens large de la pensée informatique ainsi que son importance, il est utile de définir ici ce qu’est ce type de pensée et ce qu’il n’est PAS :

  • La pensée informatique est une conceptualisation, pas une programmation.
  • Il décrit une façon de penser à plusieurs niveaux d’abstraction, pas seulement la capacité de programmer.
En réalité, le processus de pensée informatique commence avant d’écrire la première ligne de code.
  • Il s’agit d’une compétence fonctionnelle fondamentale et non mécanique.
  • Le terme peut inclure le mot ordinateur, mais il fait principalement référence à la façon dont les humains pensent, pas aux ordinateurs:
  • Les ordinateurs ne pensent pas, nous pensons pour eux.
  • La pensée informatique ne consiste pas à penser comme un ordinateur, mais plutôt à penser avec l’ordinateur.
  • Il complète et combine la pensée mathématique et technique.
  • Les produits de la pensée informatique sont des idées, des concepts que nous utilisons pour aborder et résoudre des problèmes, ils ne sont pas des artefacts. [3]

Bien que le terme Pensée informatique soit relativement nouveau, le processus impliqué par Wing peut être reconnu comme une version améliorée de la méthode scientifique bien établie. Conformément à la définition de Wing, la pensée numérique peut être considérée comme une combinaison de pensée mathématique-analytique avec les sciences naturelles, le génie et d’autres disciplines. En bref, la pensée informatique est conceptualisée comme pensée avec l’ordinateur. Il est considéré et utilisé comme une façon de penser qui utilise l’ordinateur comme un instrument pour soutenir le processus de pensée humain, pour visualiser les conséquences de ce processus de pensée et pour formuler un problème afin qu’une solution assistée par ordinateur puisse être introduite.

Sur la base de la définition de Wing, le processus de pensée informatique peut être segmenté en trois étapes (Figure 1):

  1. Problème Formulation (Abstraction): La formulation d’une question: Comment quelque chose fonctionne; visualiser le problème à l’aide d’un diagramme sur une feuille de papier. Comme il est clair ici, l’utilisation d’un ordinateur n’est pas nécessaire pour lancer le processus de pensée informatique.
  2. Expression de solution (automatisation): expression non ambiguë de la solution afin que l’ordinateur puisse l’exécuter, grâce à la programmation informatique.
  3. Exécution et évaluation (Analyse): exécution de la solution par l’ordinateur montrant les conséquences directes de sa propre pensée
Figure 1

Les trois étapes décrivent différents ratios de responsabilités humaines et informatiques. L’exécution de la solution est en grande partie la responsabilité de l’ordinateur et la solution exprimée en grande partie la responsabilité de l’homme. Alors que la formulation du problème est généralement considérée comme relevant uniquement de la responsabilité des humains, on peut également affirmer qu’il s’agit peut-être davantage d’un mélange.

Les ordinateurs peuvent également contribuer au processus de conceptualisation, par exemple en facilitant la pensée visuelle.

En bref, la pensée informatique est un processus itératif décrivant la pensée avec des ordinateurs en synthétisant les capacités humaines avec les moyens d’un ordinateur.

Puisque la pensée informatique est une compétence si importante, l’éducation en général et l’ informatique, en particulier, devraient viser à créer des penseurs informatiques et pas seulement des programmeurs. De toute évidence, enseigner des programmes dans l’espoir d’enseigner indirectement la pensée informatique vous permettra d’atteindre votre objectif, mais probablement uniquement à travers une série d’expériences d’apprentissage ennuyeuses et éprouvantes et le risque de perdre la majorité des étudiants le long du parcours. Par la suite, l’enseignement de l’informatique devrait s’orienter de manière à soutenir le développement de la pensée numérique. À cette fin, les outils de pensée informatique sont utiles.

Outils de pensée informatisés

Les outils de pensée informatisés sont des environnements de programmation éducatifs qui rendent l’enseignement de la pensée informatisée pratique à tous les niveaux d’école. En prenant en charge les trois étapes du processus de pensée informatique et en minimisant les défis syntaxiques, sémantiques et pragmatiques, ils rendent la pensée informatique et la programmation accessibles et excitantes. Bien sûr, on peut stimuler la pensée numérique en programmant un voyage comme on peut faire le chemin de Genève à Winterthur, en marchant. En fin de compte, il faut mieux comprendre les objectifs précis et les difficultés de certaines approches spécifiques. Par exemple, si l’objectif de la programmation est de devenir un programmeur professionnel plutôt qu’un penseur informatique, différents outils et différentes approches d’échafaudage peuvent s’avérer nécessaires.Les outils de programmation pure sont aussi des environnements d’apprentissage général qui peuvent être utilisés pour une grande variété de projets, mais les programmes les plus intéressants deviennent rapidement sophistiqués et génèrent une complexité involontaire.

Avec leur objectif déclaré de prise en charge du processus de pensée informatique, les outils de pensée informatique, ont un éventail de projets plus restreint, mais ils gèrent la surcharge de codage de manière à ce que la pensée informatique puisse être exprimée avec peu de code. Bien sûr, des outils de programmation pourraient être utilisés pour la pensée informatique ou des outils de pensée informatiques pourraient être utilisés pour créer des projets généraux, mais dans les deux cas, la non-concordance entre l’outil et l’application risque de générer une complexité accidentelle excessive. Ils deviennent alors trop complexes pour justifier des utilisations éducatives.

Les outils de la pensée informatique doivent répondre aux défis inhérents aux trois étapes du processus de pensée informatique: formulation du problème, expression de la solution et exécution / évaluation de la solution. La formulation du problème peut être étayée par des outils facilitant le transfert par le biais d’abstractions explicites, mais aussi de pensées verbales et visuelles. Par exemple, les outils de pensée informatisés peuvent soutenir la pensée visuelle en offrant diverses métaphores spatiales évocatrices. Les outils Mindmap capturent les concepts sous forme de nœuds et de liens. Les feuilles de calcul sont des grilles bidimensionnelles contenant des nombres et des chaînes. La nature polyvalente des grilles a permis aux feuilles de calcul de devenir les outils de programmation les plus utilisés au monde. Des outils tels que Boxer et ToonTalk utilisent la notion de micro-monde (microworld) basée sur des conteneurs pour représenter les relations.

Afin de soutenir l’étape de l’expression de la solution, la communauté de la programmation visuelle a exploré des approches permettant de rendre la programmation plus accessible. À cette fin, et afin de limiter la complexité accidentelle, les outils de réflexion informatiques doivent également répondre aux préoccupations sémantiques et pragmatiques de la programmation. Des approches telles que la programmation par glisser-déposer ont globalement permis de relever des défis syntaxiques. Les grands défis de la programmation utilisateur final sont en train de passer des préoccupations syntaxiques aux préoccupations sémantiques et pragmatiques. En termes de défis sémantiques, la programmation en direct et des approches similaires aident les utilisateurs à comprendre le sens des programmes en illustrant les conséquences des modifications apportées aux programmes. En termes de défis pragmatiques, des langages de programmation orientés domaine ou spécifiques à une tâche aident les utilisateurs à utiliser des langages de programmation pour atteindre leurs objectifs. Finalement, Dans le but de soutenir la phase d’exécution et d’évaluation, les outils de réflexion informatiques devraient faciliter le processus de débogage. Une stratégie consiste simplement à réduire, par exemple, le fossé entre l’expression de la solution et son exécution et son évaluation. Ce faisant, les outils de pensée informatique peuvent prendre en charge la pensée informatique dans une variété de disciplines sans entraîner de complexité inutile.

Enseignement informatique

En particulier, le projet ‘Scalable Game Design’ présente un excellent exemple de la manière dont l’enseignement des sciences informatiques peut soutenir la pensée informatique grâce à la combinaison d’un programme basé sur la conception de jeux avec des outils de pensée numériques. Le but de Scalable Game Design est d’apprendre la pensée informatique aux 10–12 ans (? Middle school), à travers ?TK? ( through a low threshold, high ceiling curriculum). Ce programme d’apprentissage en pente douce permet aux étudiants et aux enseignants de commencer rapidement avec des activités de conception de jeux produisant des jeux classiques simples, puis de passer à des jeux sophistiqués présentant une intelligence artificielle. Pendant de nombreuses années, le projet Scalable Game Design a systématiquement formé les enseignants à la pensée informatique, mais aussi à enseigner la pensée informatique. L’efficacité de ces approches se font à l’aide des outils de la pensée informatique AgentSheets et AgentCubes.

Un exemple simple de la manière dont AgentCubes Online prend en charge la deuxième étape du processus de pensée informatique est la manière dont il résout la complexité accidentelle qui se produit lors de la tentative de programmation du puzzle de 15 carrés, présenté ici (Figure 2).

Figure 2

Ce jeu classique pour enfants consiste à glisser 15 carrés numérotés dans un arrangement trié, 1–15, sur une grille de 4 x 4. Du point de vue de la pensée informatique, l’idée de base est simple: cliquez sur la case que vous voulez glisser dans l’espace vide. Cependant, de nombreuses implémentations de programmes informatiques du jeu, y compris celles dans des langages de programmation visuels tels que Python et Java, ont plus de 100 à 300 lignes de code. Si l’on essayait d’apprendre le codage Python et Java, l’implémentation de ces solutions pourrait avoir des avantages considérables. Cependant, exposer les étudiants à la pensée informatique nécessite des outils mieux adaptés à l’expression de solutions sans ajouter à une complexité inutile. L’outil de pensée computationnelle AgentCubes offre au niveau syntaxique la programmation par glisser-déposer, tandis qu’au niveau de la sémantique,

Figure 3 — La solution en ligne AgentCubes pour le puzzle 15 carrés glissants.

Les outils de pensée informatique et les outils de programmation peuvent être intégrés techniquement ou pédagogiquement. Bien que la plupart des cours débutants avec des budgets en temps très limités soient au départ préférables avec les outils de pensée computationnelle, il est souvent logique de passer ultérieurement dans des cours plus avancés, aux purs outils de programmation. Il existe de nombreuses façons d’intégrer techniquement les deux types d’outils. Une première version de AgentSheets incluait un bloc Lisp extrêmement puissant, mais aussi quelque peu dangereux, permettant aux utilisateurs avancés d’entrer un Common Lisp arbitraire pour être intégré dans leur bloc de programme. Par ailleurs, l’intégration pédagogique emploierait des méthodes d’échafaudage pour passer d’un outil de pensée informatique à un outil de programmation sans intégrer réellement les outils sur le plan technique. Un exemple d’une telle approche d’échafaudage est que AgentSheets / AgentCubes peut convertir des programmes de blocs en sources Java et JavaScript respectivement. Cela peut aider les élèves à comprendre pour effectuer la transition.

En outre, AgentSheets / AgentCubes utilisent les caractéristiques de motivation de la conception du jeu et leur capacité à prendre en charge le développement d’un ensemble riche de compétences compatibles avec les cadres de compétences STEM et informatiques (Science, Techno, Ingénierie, Mathématique + Informatique), mais en se concentrant principalement sur le soutien à la pensée informatique. En conséquence, AgentSheets et AgentCubes ne concernent pas seulement la conception de jeux, mais aussi l’apprentissage de la pensée informatique de manière à ce qu’ils puissent être exploités par les étudiants pour créer des simulations STEM.

Le projet Predator/Prey (Proie/Prédateur), par exemple, peut également être construit avec seulement 10 règles pour étudier la stabilité des écosystèmes (Figure 4). AgentCubes inclut des outils de traçage pour visualiser les données et les exporter vers d’autres outils tels que Microsoft Excel ou Google Sheets pour une analyse plus approfondie.

Figure 4

Les outils de la pensée computationnelle semblent avoir un objectif plus ambitieux que celui d’enseigner la pensée computationnelle. En plus de leur objectif déclaré de soutenir le processus de pensée informatique, ces outils ont le potentiel de transformer une programmation compliquée en une expérience d’apprentissage très accessible, voire amusante. Ils ont le potentiel de renverser l’hypothèse persistante selon laquelle l’informatique est «difficile et ennuyeuse». L’espace Défis cognitifs/affectifs (Figure 5) est un cadre conceptuel explorant la manière dont la perception mentionnée précédemment, selon laquelle l’informatique est «dure et ennuyeuse», peut être transformée en «accessible et excitant». «Calculez les nombres premiers» à l’aide d’activités C ++ et Emacs qui, pour la grande majorité des enfants, sont considérées comme difficiles et ennuyeuses.

Figure 5 — L’espace Défis cognitifs / affectifs

Travaillant dans l’espace Défis cognitifs / affectifs, les outils sont essentiels pour atténuer certains des problèmes. Sur le plan affectif, les outils orientés vers le domaine tels que la conception de jeux, les environnements de programmation de robots ou l’informatique physique jouent un rôle important. En ce qui concerne la dimension cognitive, compte tenu du fait que la notion même d’outils de programmation est peut-être trop étroite, en particulier dans le contexte de l’enseignement en informatique (Figure 5), les outils de réflexion computationnelle semblent parfaitement servir à rendre l’enseignement en informatique facile.

Conclusion

Se focaliser sur l’équipement des générations futures avec la capacité de penser de manière informatique ne signifie pas se focaliser uniquement sur la programmation d’enseignement, mais surtout sur des objectifs pédagogiques généraux, mais aussi sur le développement d’outils de pensée computationnels appropriés qui rendent pratique l’enseignement de la pensée computationnelle à chaque niveau scolaire. Des outils tels que AgentSheets et AgentCubes en ligne n’enseignent pas seulement la pensée informatique, mais ont également le potentiel de transformer l’enseignement informatique en informatique de «difficile et ennuyeux» à «facile et excitant».

En tant qu’outils de pensée informatique, ils soutiennent les trois étapes de la pensée informatique processus et aider à créer des penseurs informatiques. En même temps, tirant parti des caractéristiques spécifiques des outils informatiques de la pensée, ils transforment l’informatique en une expérience accessible. Par exemple, en minimisant la complexité accidentelle inutile et en gérant la surcharge de codage de manière à ce que la pensée informatique simple puisse être exprimée avec le moins de code possible.

Enfin, en tant qu’applications de conception de jeux, ils ont le potentiel de faire de la science informatique une expérience excitante. Dans l’ensemble, les outils de pensée informatique jouent un rôle important non seulement dans l’appui à un enseignement efficace de la pensée informatique, mais aussi dans l’atteinte du Saint Graal de la formation en informatique (Figure 5).

Dr. Anna Lamprou est assistante principale de recherche en éducation informatique à la Pädagogische Hochschule FHNW en Suisse.

Le professeur Alexander Repenning est “Hasler Professor” et président de la chaire d’enseignement informatique à la Pädagogische Hochschule FHNW en Suisse et professeur d’informatique à l’université du Colorado.

__________

[1] C. Duncan and T. Bell, “A Pilot Computer Science and Programming Course for Primary School Students” presented at the Proceedings of the Workshop in Primary and Secondary Computing Education, London, United Kingdom, 2015, 39- 48.

Voir aussi: https://miun.diva-portal.org/smash/get/diva2:1153550/FULLTEXT01.pdf et http://jultika.oulu.fi/files/nbnfioulu-201605221873.pdf mémoires sur des mises en pratique de 2017 et 2017, en Suède et en Finlande…

[2] Wing, J. M. “Computational Thinking Benefits Society,” 2014 http://socialissues.cs.toronto.edu/index.html%3Fp=279.html

[3] Jeannette WingComputational Thinking” published at Communications of the ACM March 2006/ Vol. 49, №3, pp: 33–35. The article can be accessed here: https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf