# Pensée computationnelle

La pensée computationnelle s'intéresse à la résolution de problèmes, à la conception de systèmes ou même à la compréhension des comportements humains en s'appuyant sur les concepts fondamentaux de l'informatique théorique.
Postulée par Seymour Papert en 1996, la pensée computationnelle est le processus réflexif impliqué dans la formulation de problèmes et de leurs solutions de manière que leur résolution puisse être effectuée par un agent de traitement de l'information.
Le concept de pensée computationnelle a été critiqué comme étant trop vague, étant donné qu'il est rarement clair en quoi il est différent des autres formes de pensée$^,$ Cette inclination a été appelée « chauvinisme informatique ».

## Description

À une micro-échelle, la pensée computationnelle pourrait être assimilée à l'acte de programmer mais cette conception serait trop étroite, réduisant celle-ci à l'idée de maîtriser un langage de programmation ou un autre. À plus haute échelle, la pensée computationnelle pourrait également être conçue comme un ensemble de façons de penser permettant de la relier au domaine des sciences cognitives, mais cette définition serait trop vaste pour être opérationnelle.
Ainsi, la pensée computationnelle s'exprime plutôt dans la synergie entre l'intelligence créative de l'être humain et les capacités de traitement de l'information offertes par les technologies de l'information et de la communication. Par exemple, un artiste qui aurait recours à un générateur de fractales pour créer des œuvres visuelles met la puissance de calcul d'un ordinateur au service de son potentiel artistique : ce type d'outil repousse drastiquement les limites de ce qui est techniquement possible pour un humain.

### Attributs

La pensée computationnelle se distingue des autres processus réflexifs par certains attributs inter-reliés qui lui sont propres :
* classification et organisation logique : la reconnaissance des motifs dans une vision systémique permet de généraliser la description des problèmes ou des phénomènes ;
* abstraction à différents niveaux : le processus de généralisation s'effectue aussi selon une hiérarchie des représentations au sein du système, ce qui permet un certain recul et une meilleure vue d'ensemble ;
* systématisation algorithmique : la traduction des relations fonctionnelles et logiques en lois computationnelles permet d'exprimer les processus de manière formelle ;
* décortication et modularité : un système complexe découpé en entités fonctionnelles est plus facilement abordable par voie algorithmique ;
* identification, analyse, mise à l'essai et implémentation : aborder un système par le développement d'un artéfact computationnel ;
* design et conception : la création d'un artefact computationnel repose sur une intention orientée par la manière de percevoir un système ;
* diagnostic et remédiation : l'identification et la résolution des bogues au sein d'un artefact computationnel ;
* optimisation : l'amélioration des performances ou de l'efficacité d'un artefact computationnel ;
* généralisation et transfert à d'autres domaines : le réinvestissement d'un artefact computationnel pour aborder des systèmes similaires d'un domaine à l'autre.

### Attitudes et habiletés

La mise en œuvre de la pensée computationnelle implique un ensemble d'attitudes et d'habiletés en lien avec les systèmes abordés (problèmes, artefacts computationnels) :
* contextualiser : situer le système dans son ensemble et en relation avec d'autres éléments ;
* développer : appliquer sa créativité dans l'élaboration de l'approche pour aborder le système ;
* modéliser : représenter le système à différents niveaux d'abstraction et de manière fonctionnelle ;
* analyser : comprendre les relations au sein du système en le décortiquant ;
* formuler : communiquer de manière formelle avec l'agent de traitement de l'information ;
* collaborer : aborder le système à plusieurs individus.

## Contexte éducatif

Depuis près d'une dizaine d'années, la pensée computationnelle occupe une place grandissante au sein de la recherche en éducation. D'une part, les chercheurs tentent d'en préciser la définition et, d'autre part, d'explorer des axes de recherche qui permettraient d'identifier les conditions nécessaires à une intégration éclairée de la pensée computationnelle aux différents programmes de formation. Par exemple, le moment du parcours scolaire où il est possible de l'introduire, la place qu'il faut lui réserver dans le programme de formation, ou encore les différentes façons de l'évaluer.

### Historique

L'avènement de la pensée computationnelle en contexte éducatif peut être associé à l'introduction de l'ordinateur comme outil d'enseignement-apprentissage des sciences. Vers le début des années 1960, deux grandes dynamiques alimentent l'intégration des technologies de l'information (TI) en éducation : le besoin de former une main-d’œuvre en TI et l'intérêt de certains enseignants à en développer le potentiel pédagogique et didactique, notamment pour l'enseignement et l'apprentissage des disciplines STEM$^,$. Alors que la recherche dans ce domaine était souvent combinée avec la conception d'outils informatiques, le potentiel de l'ordinateur comme outil pédagogique était encore limité par une puissance de calcul restreinte et par un certain manque de ressources matérielles, les quelques postes disponibles étant souvent réservés à l'apprentissage de l'informatique et non des sciences.
De 1960 à la fin des années 1980, la recherche fait état de quatre grandes catégories de logiciels éducatifs : les tutoriels, les simulations, les logiciels intégrés de modélisation ou de calculs scientifiques et l'ordinateur comme outil de cueillette de données. Dans la plupart des cas, ces logiciels étaient conçus dans le but de pallier les difficultés d'apprentissage perçues par les enseignants en lien avec les conceptions initiales propres aux contenus enseignés.
De l'approche béhavioriste des tutoriels à celle plus constructiviste des logiciels de modélisation, déjà la pensée computationnelle s'immisce au cœur du potentiel pédagogique des technologies de l'information, offrant la possibilité pour l'apprenant de mobiliser, voire de créer, des artefacts computationnels au service d'une pensée de plus haut niveau. Dans la mesure où l'apprenant est capable de les interpréter, ces nouvelles représentations et codifications des connaissances ont fondamentalement bouleversé le rapport aux savoirs.
Au début des années 1990, avec la venue massive de logiciels commerciaux dans les écoles et l'accès par Internet à de vastes ressources scientifiques, le rôle de l'enseignant dans le cadre scolaire formel est appelé à se transformer radicalement. En effet, des études récentes menées dans 37 pays montrent un abandon par les enseignants des simulations et modélisations scientifiques au profit de recherches sur Internet, de rédaction de texte et de cours en accès libre et ce, malgré une diminution régulière du rapport élève/ordinateur. Ainsi, le rôle de l'enseignant et les exigences contradictoires des programmes de formation nationaux constituent les obstacles principaux à la mobilisation des technologies de l'information en sciences et par le fait-même, ralentissent l'intégration de la pensée computationnelle dans les établissements scolaires.

### Développement chez l'enfant

Même chez l'enfant de niveau préscolaire, la pensée computationnelle peut se manifester par le développement d'algorithmes simples sans avoir recours à la lecture et l'écriture de même que par une capacité limitée d'abstraction, pour autant que la tâche soit relativement simple.