Le monde dans lequel nous vivons est devenu numérique, rempli par la technologie et piloté par l'informatique. Les logiciels et la technologie ont transformé tous les sujets et les domaines d'activité, de la science et la médecine, jusqu'à l'histoire de l'art et la psychologie. La technologie numérique est omniprésente. Pour être des citoyens informés et autonomes, la prochaine génération d'élèves a besoin de comprendre ce monde numérique dans lequel ils vivent.
C'est pourquoi la Pensée informatique a été appelée l'"ensemble de compétences du 21e siècle", et il est important que tout le monde l'apprenne. Il est essentiel de comprendre comment le monde numérique fonctionne, pour exploiter la puissance des ordinateurs pour résoudre des problèmes difficiles, et de faire de grandes choses ! Cette pensée nous permet aussi de réfléchir de manière critique pas seulement sur les avantages de certaines technologies, mais aussi sur leurs méfaits potentiels, leurs enjeux éthiques, ou leurs conséquences inattendues.
Mais qu'est-ce que la Pensée Informatique exactement ? Jetons un coup d'œil à une définition technique...
"La Pensée Informatique est le processus de la pensée impliqué dans la formulation des problèmes et de leurs solutions de manière à ce que ces solutions soient représentées sous une forme qui puisse être réalisée efficacement par un agent de traitement de l'information."
Pfiou ! c'est un sacré morceau n'est-ce pas ? Mais, comme nous aimons le dire à CS Unplugged, ce sont juste de grands mots pour des idées simples ! "Agent de traitement de l'information" signifie quelque chose qui suit un ensemble d'instructions pour effectuer une tâche (nous appelons cela "calculer"). La plupart du temps, cet "agent" est un ordinateur ou un autre type de dispositif numérique — mais il pourrait aussi être un homme ! Nous l'appellerons ordinateur pour rester simple. Pour représenter les solutions d'une manière qu'un ordinateur puisse les mettre en oeuvre, nous devons les représenter comme un processus étape par étape — un algorithme. Pour créer ces solutions algorithmiques on applique certaines méthodes bien déterminées de résolution de problèmes. Ces compétences sont la Pensée Informatique ! Et ce sont des compétences qui sont transférables à toute autre discipline.
La Pensée Informatique pourrait être décrite comme « penser comme un chercheur en informatique », mais c’est maintenant une compétence importante à apprendre pour tous, que vous vouliez devenir informaticien ou non ! Il est intéressant, et important, de noter que la Pensée Informatique, et la science informatique, ne se limitent pas aux ordinateurs, elles concernent les gens. Vous pourriez penser que nous écrivons des programmes pour les ordinateurs, mais en fait nous écrivons des programmes pour les gens - pour les aider à communiquer, trouver des informations et résoudre des problèmes.
Par exemple, vous pourriez utiliser une application sur un smartphone pour obtenir l'itinéraire qui mène à la maison d'un ami ; l'application est un exemple de programme d'ordinateur, et le smartphone est l'"agent de traitement de l'information" qui exécute le programme pour nous. Celui qui a conçu l'algorithme pour trouver le meilleur chemin, et tous les détails comme l'interface ou la façon de stocker la carte en mémoire, applique la Pensée Informatique pour concevoir le système. Mais ils ne l'ont pas conçu pour le bien du smartphone ; ils l'ont conçu pour aider la personne qui utilise le smartphone.
La Pensée Informatique dans CS Unplugged
Tout au long des leçons et des modules de CS Unplugged, vous trouverez beaucoup de liens avec la Pensée Informatique. L'enseignement de la Pensée Informatique par le biais des activités CS Unplugged enseigne aux élèves comment :
décrire un problème,
identifier les informations importantes nécessaires pour résoudre ce problème,
diviser le problème en petites étapes logiques,
utiliser ces étapes pour créer un processus (algorithme) qui résout le problème,
et ensuite évaluer ce processus.
Ces compétences sont transférables à toute autre discipline, mais sont particulièrement pertinentes pour le développement des systèmes numériques et les résolutions de problèmes en utilisant les capacités des ordinateurs.
Ces concepts de la Pensée Informatique sont tous reliés les uns aux autres et se soutiennent les uns les autres, mais il est important de noter que tous les aspects de la Pensée Informatique ne se trouveront pas nécessairement dans chaque module ou leçon. Dans chaque module et chaque leçon, nous avons mis en évidence les liens importants qui vous permettent d'observer vos élèves en action.
Il y a un certain nombre de définitions de la Pensée Informatique, mais la plupart ont un ensemble de 5 ou 6 compétences de résolution de problèmes qu'incarne la Pensée Informatique. Pour le projet Unplugged, nous avons identifié six des compétences de Pensée Informatique qui sont souvent mentionnées dans la littérature ; elles sont décrites ci-dessous, et, à la fin de chaque leçon Unplugged, nous avons identifié la façon dont ces compétences apparaissent dans ces leçons, pour vous aider à voir les connexions de la Pensée Informatique avec elles.
Les compétences de la Pensée Informatique
Pensée algorithmique
Les algorithmes sont au cœur de la Pensée Informatique et de l'informatique, parce que dans l'informatique, les solutions aux problèmes ne sont pas simplement une réponse (par exemple ‘42’, ou un fait), ce sont des algorithmes. Un algorithme est un processus étape-par-étape qui permet de résoudre un problème ou d'accomplir une tâche. Si vous suivez correctement les étapes de l'algorithme, vous arriverez à une solution correcte, même pour différentes entrées. Par exemple, on peut utiliser un algorithme pour trouver l'itinéraire le plus court entre deux points sur une carte ; le même algorithme peut être utilisé pour n'importe quelle paire de départ et d'arrivée, de sorte que la solution dépend de l'entrée de l'algorithme. Si nous connaissons l'algorithme pour résoudre un problème, alors on peut résoudre ce problème facilement, quand on veut, sans avoir à réfléchir ! Il nous suffit de suivre les étapes. Les ordinateurs ne peuvent pas penser par eux-mêmes, donc nous devons leur donner des algorithmes pour faire les choses.
La pensée algorithmique est le processus de création d'algorithmes. Lorsque nous créons un algorithme pour résoudre un problème, nous appelons cela une solution algorithmique.
Les algorithmes informatique (le genre qui peut fonctionner sur les appareils numériques) ont relativement peu d'ingrédients, parce que les appareils numériques n'ont que quelques types d'instructions qu'ils peuvent suivre ; les principales choses qu'ils peuvent faire sont de recevoir des données, fournir une sortie, stocker des valeurs, suivre des séquences d'instructions, choisir parmi plusieurs options, et répétez des instructions dans une boucle. Bien que cet ensemble d'instructions soit très limité, nous avons décrit tout ce que les appareils numériques peuvent calculer, et c'est pourquoi les algorithmes sont décrits comme limités à ces éléments.
Abstraction
L'abstraction est la capacité de simplifier les choses pour nous aider à appréhender la complexité. Elle exige de déterminer quels sont les principaux aspects d'un problème et de masquer les détails sur lesquels nous n'avons pas besoin de nous concentrer. Les aspects importants peuvent être utilisés pour créer un modèle, ou une représentation simplifiée de la chose à laquelle nous avons été confrontés. Ensuite, nous pouvons travailler avec ce modèle pour résoudre le problème, plutôt que d'avoir à traiter tous les petits détails en même temps. Les chercheurs en informatique travaillent souvent avec plusieurs niveaux d'abstraction.
Nous utilisons souvent l'abstraction dans notre vie de tous les jours, par exemple lorsque nous utilisons des cartes. Les cartes nous montrent une version simplifiée du monde en laissant de côté les détails inutiles, comme chaque arbre dans un parc, et ne gardant que les informations les plus pertinentes pour le lecteur, comme les routes et les noms de rue.
Les appareils numériques utilisent abstraction tout le temps ; ils essaient de cacher autant d'information inutiles que possible à l'utilisateur. Par exemple, imaginez que vous avez pris une belle photo panoramique pendant votre dernière excursion en camping, et maintenant vous voulez la modifier sur votre ordinateur portable et ajuster ses couleurs. En général, nous le faisons par l'ouverture d'un programme d'édition d'image, en ajustant des curseurs sur la couleur ou peut-être en choisissant un filtre. Lorsque vous faites cela il se produit beaucoup d'opérations compliquées que l'ordinateur vous cache.
La photo que vous avez prise est stocké sur l'ordinateur sous forme une grande liste de pixels, qui sont chacun d'une couleur différente, et chaque couleur est représentée par un ensemble de nombres, et chacun de ces nombres est stocké sous forme de chiffres binaires ! Cela fait beaucoup d'informations. Imaginez si, lorsque vous avez réglé les couleurs, il fallait inspecter et regarder toutes les valeurs des couleurs de chaque pixel et changer chacune d'entre elles ! C'est ce que l'ordinateur fait pour vous, mais puisque vous n'avez pas besoin de le savoir pour accomplir votre objectif, l'ordinateur cache cette information.
Décomposition
La décomposition consiste à décomposer les problèmes en parties plus petites et plus faciles à gérer, puis à se concentrer sur la résolution de chacun de ces petits problèmes. Nous pouvons continuer de diviser un problème complexe encore et encore jusqu'à ce que les plus petits morceaux soient si simples qu'ils deviennent faciles à résoudre. Les solutions à chacun de ces plus petits et plus simples problèmes permettent de construire une solution du grand problème que nous avions au départ. La décomposition permet de rendre de gros problèmes beaucoup moins intimidants !
La décomposition est une compétence importante pour créer des algorithmes et des processus qui peuvent être mis en œuvre sur un dispositif informatique, parce que les ordinateurs ont besoin de directives très précises. Il faut leur dire chacune des petites étapes qu'ils doivent suivre pour faire quelque chose.
Par exemple l'ensemble de la tâche "faire un gâteau" peut être décomposé en plusieurs tâches plus petites, dont chacune peut être effectuée facilement.
Faire un gâteau
Cuire le gâteau
Mettre les ingrédients dans un bol (beurre, sucre, œuf, farine)
Mélanger
Verser dans le plat
Le mettre dans le four pendant 30 minutes
Sortir le plat
Faire le glaçage
Le mettre sur le gâteau
Généralisation et motifs
La généralisation est aussi appelée "reconnaissance des motifs et généralisation'. La généralisation est l'utilisation d'une solution (ou une partie d'une solution) à un problème et sa généralisation pour qu'elle puisse être appliquée à d'autres problèmes et tâches similaires. Étant donné que les solutions en informatique sont des algorithmes, cela signifie que nous prenons un algorithme et que nous le rendons assez général pour qu'il puisse être utilisé pour toute une famille de problèmes. Ce processus implique de l'abstraction car, pour faire quelque chose de plus général, nous devons supprimer des détails inutiles qui sont liées à un problème ou une situation spécifiques, mais ne sont pas importants dans la façon dont l'algorithme fonctionne.
Repérer des motifs est une partie importante de ce processus, lorsque l'on étudie des problèmes nous pourrions reconnaître des similitudes entre eux et voir qu'ils peuvent être résolus de façon similaire. Cela s'appelle la correspondance de motifs, et c'est quelque chose que nous faisons naturellement tout le temps dans notre vie quotidienne.
Les algorithmes généralisés peuvent être réutilisés pour tout un ensemble de problèmes similaires, ce qui signifie que nous pouvons trouver des solutions rapidement et de manière efficace.
Évaluation
L'évaluation consiste à identifier les solutions possibles à un problème et juger quelle est la meilleure, si ces solutions vont fonctionner dans certaines situations mais pas dans d'autres, et comment elles peuvent être améliorées. Pour juger de la valeur de nos solutions, nous devons réfléchir à une série de facteurs. Par exemple combien de temps vont prendre ces processus (algorithmes) pour résoudre le problème et est-ce qu'ils sont fiables, ou est-ce qu'il y a certaines situations où ces processus vont s'exécuter de manière totalement différente. L'évaluation est quelque chose que nous faisons beaucoup dans notre vie de tous les jours.
Il y a différentes façons d'évaluer nos solutions algorithmiques. Nous pouvons tester leur vitesse en les implémentant sur un ordinateur ; ou nous pouvons les analyser en comptant ou en calculant combien d'opérations ils sont susceptibles de faire. Nous pouvons tester que nos solutions algorithmiques fonctionnent correctement en leur donnant beaucoup d'entrées différentes, et en vérifiant qu'elles fonctionnent comme prévu. Lorsque nous faisons cela, nous devons penser aux différentes entrées que nous testons, parce que nous ne voulons pas vérifier toutes les entrées possibles (souvent il y a un nombre infini d'entrées possibles !), mais nous devons quand même savoir si nos solutions algorithmiques fonctionneront pour toutes les entrées. Tester est quelque chose que les informaticiens et les programmeurs font tout le temps. Mais comme nous ne pouvons généralement pas tester toutes les entrées possibles, nous essayons aussi d'évaluer un système en utilisant un raisonnement logique.
Logique
Quand nous essayons de résoudre des problèmes nous devons penser de manière logique. Le raisonnement logique, c'est essayer de donner du sens aux choses par l'observation, la collecte de données, la réflexion sur les faits que nous connaissons, et ensuite essayer de comprendre les choses en fonction de ce que nous savons déjà. Cela nous permet d'utiliser nos connaissances existantes pour établir des règles et de vérifier les faits.
Par exemple, supposons que vous écrivez un logiciel qui calcule le plus court chemin vers un emplacement depuis votre maison. Sur la carte, vous êtes à 2 minutes de la bibliothèque si vous vous dirigez au nord depuis votre maison, mais si vous vous dirigez vers le sud, il y a 3 minutes jusqu'à la prochaine intersection. Vous pourriez vous demander si il y a une meilleure route vers la bibliothèque si vous commencez par le sud, mais logiquement ce n'est pas possible car vous aurez déjà marché pendant 3 minutes pour arriver à l'intersection.
À un niveau plus profond, les ordinateurs sont entièrement construits sur la logique. Ils utilisent les valeurs 'Vrai' et 'Faux', et utilisent quelque chose appelé des "expressions Booléennes", comme par exemple “est-ce que âge > 5”, pour prendre des décisions dans les programmes informatiques.
Traquer un bug dans un programme nécessite également de la pensée logique, pour trouver où, et pourquoi, quelque chose dans le programme ne fonctionne pas.
Désolé ! Cette définition n'est pas disponible en français.