Computational thinking · Pensée computationnelle
| English | Français |
|---|---|
| computational thinking/ˌkɒmpjuːˈteɪʃənl ˈθɪŋkɪŋ/ | pensée computationnelle |
| abstraction/əbˈstrækʃn/ | abstraction |
| decomposition/ˌdiːkɒmpəˈzɪʃn/ | décomposition |
| pattern recognition/ˈpætn ˌrekəɡˈnɪʃn/ | reconnaissance de motifs |
| algorithm/ˈælɡərɪθəm/ | algorithme |
| function/ˈfʌŋkʃn/ | fonction |
| module/ˈmɒdjuːl/ | module |
| sub-problem/sʌb ˈprɒbləm/ | sous-problème |
| procedure/prəˈsiːdʒə/ | procédure |
| structure chart/ˈstrʌktʃə tʃɑːt/ | organigramme |
A map that lies on purpose
- In 1931 Harry Beck, an out-of-work draughtsman, redrew the map of the London Underground.
- He threw away the real geography: every line became straight and every station evenly spaced.
- The map was "wrong", and it was instantly easier to use. Every metro map in the world now copies it.
- Beck kept only what a passenger needs: the stations and how they connect. That is computational thinking 计算思维 before computers existed.
Une carte qui s'écarte du réel
- En 1931, Harry Beck, un dessinateur au chômage, a redessiné la carte du métro londonien.
- Il a abandonné la géographie réelle : chaque ligne est devenue droite et chaque station espacée uniformément.
- La carte était « fausse », mais elle fut immédiatement plus facile à utiliser. Toutes les cartes de métro du monde l'ont depuis copiée.
- Beck n'a gardé que ce dont le voyageur a besoin : les stations et leurs connexions. C'est là computational thinking 计算思维 avant même l'existence des ordinateurs.
What computational thinking is
- The set of mental tools for analysing a problem and designing a solution a computer can run.
- The syllabus names two of them: abstraction 抽象 and decomposition 分解.
- Two more support them: pattern recognition 模式识别 and designing algorithms 算法.
Qu'est-ce que la pensée computationnelle ?
- L'ensemble d'outils mentaux permettant d'analyser un problème et de concevoir une solution qu'un ordinateur peut exécuter.
- Le programme mentionne deux d'entre eux : abstraction 抽象 et décomposition 分解.
- Deux autres les soutiennent : la reconnaissance de motifs 模式识别 et la conception d'algorithmes 算法.
Abstraction
- Abstraction means keeping the essential features of a problem and ignoring irrelevant detail, giving a simpler model.
- The tube map keeps the stations and lines and drops the geography.
- A variable name hides a memory address; a function hides a block of code behind a name; a class keeps only the attributes the system needs.
Abstraction keeps only the essential features of a problem and drops the irrelevant detail
Abstraction
- Abstraction signifie conserver les caractéristiques essentielles d'un problème et ignorer les détails non pertinents, créant ainsi un modèle plus simple.
- La carte du métro conserve les stations et les lignes, en omettant la géographie.
- Un nom de variable cache une adresse mémoire ; une fonction cache un bloc de code derrière un nom ; une classe ne conserve que les attributs dont le système a besoin.

L'abstraction ne conserve que les caractéristiques essentielles d'un problème et omet les détails non pertinents
Abstraction means: · L'abstraction signifie :
Abstraction simplifies a problem to its essentials. Breaking into parts is decomposition. · L'abstraction simplifie un problème à ses essentials. Diviser en parties est la décomposition.
A train map that keeps the stations and lines but drops the real geography is an example of abstraction. · Une carte de train conservant les stations et les lignes mais omettant la géographie réelle est un exemple d'abstraction.
It keeps what matters (stations, connections) and discards the rest — exactly what abstraction does. · Elle conserve ce qui importe (stations, connexions) et élimine le reste — exactement ce que fait l'abstraction.
Purpose and benefits
- Purpose: to produce a simpler model of the problem that contains only the details needed to solve it.
- Benefits: the problem is easier to understand and to program; the program is smaller and quicker to write and test; the same model can be reused for a similar problem.
- The examiner asks for the purpose and the benefits separately. Learn both.
Objectif et avantages
- Objectif : produire un modèle plus simple du problème contenant uniquement les détails nécessaires à sa résolution.
- Avantages : le problème est plus facile à comprendre et à programmer ; le programme est plus petit et s'écrit et se teste plus rapidement ; le même modèle peut être réutilisé pour un problème similaire.
- L'examinateur demande l'objectif et les avantages séparément. Apprenez-les tous les deux.
Select all · tout the statements that are benefits of abstraction. · Sélectionnez tous les énoncés qui constituent des avantages de l'abstraction.
Abstraction drops detail, so keeping every detail is the opposite of it, and it says nothing about hardware. The three real benefits are understanding, size/speed of development, and reuse. · L'abstraction omet les détails, donc conserver chaque détail est l'opposé de celle-ci, et cela ne dit rien sur le matériel. Les trois vrais avantages sont la compréhension, la taille/vitesse de développement et la réutilisabilité.
Worked example: an abstract model
- A coffee shop stores, for each loyalty-card customer: ID, name, home address, email, mobile number, date of birth, points, and date of last visit.
- A new module emails a voucher to customers who have not visited for 30 days. Which data does it need?
- Needed: ID (to look the customer up), email (to send to), name (to personalise the message), date of last visit (to select who gets one).
- Not needed: home address, mobile number, date of birth, points. Leaving them out is the abstraction.
Exemple résolu : un modèle abstrait
- Une boutique de café stocke, pour chaque client fidèle (avec carte de fidélité) : ID, nom, adresse domicile, e-mail, numéro de mobile, date de naissance, points, et date de dernière visite.
- Un nouveau module envoie un bon par e-mail aux clients qui n'ont pas visité la boutique depuis 30 jours. Quelles données a-t-il besoin ?
- Nécessaires : ID (pour localiser le client), e-mail (pour l'envoyer), nom (pour personnaliser le message), date de dernière visite (pour sélectionner qui reçoit le bon).
- Non nécessaires : adresse domicile, numéro de mobile, date de naissance, points. Les exclure constitue l'abstraction.
The voucher-email module in the worked example needs which of these items? Select all · tout that apply. · Le module bon de réduction-par-email dans l'exemple travaillé nécessite lesquels de ces éléments ? Sélectionnez tous ceux qui s'appliquent.
Email to send to, date of last visit to choose who qualifies, and the ID to look the customer up. The postal address and birthday play no part in an email voucher, so an abstract model of this module leaves them out. · E-mail à envoyer, date de dernière visite pour choisir les qualifiés, et ID pour rechercher le client. L'adresse postale et l'anniversaire n'ont aucune utilité pour un bon par email, donc un modèle abstrait de ce module les exclut.
Decomposition
- Decomposition means breaking a large problem into smaller sub-problems 子问题, each easier to solve.
- Find the main parts → split each into sub-tasks → stop when each is small enough to code directly → solve them and combine.
- Each sub-problem becomes a program module 模块: a procedure 过程 or a function 函数.
Decomposing a program into modules and sub-modules
Décomposition
- Décomposition signifie diviser un grand problème en sous-problèmes plus petits 子问题, chacun étant plus facile à résoudre.
- Trouver les parties principales → diviser chacune en sous-tâches → s'arrêter lorsque chaque partie est suffisamment petite pour être codée directement → les résoudre et les combiner.
- Chaque sous-problème devient un module 模块 de programme : une procédure 过程 ou une fonction 函数.

Décomposer un programme en modules et sous-modules
Decomposition means: · La décomposition signifie :
Decomposition splits a big task into smaller, separately-solvable sub-tasks. · La décomposition divise une grande tâche en sous-tâches plus petites, résolubles séparément.
Each sub-problem produced by decomposition becomes a program module: a procedure or a ____. · Chaque sous-problème produit par la décomposition devient un module de programme : une procédure ou une ____.
The syllabus wording is exact: decomposition leads to the concept of a program module — a procedure or a function · fonction. · La formulation du programme est exacte : la décomposition mène au concept de module de programme — une procédure ou une fonction.
Worked example: a cinema booking program
- A cinema with several screens wants a program that lets customers book seats.
- ShowFilms() lists the films, their screens and their start times.
- ChooseSeats() shows the seating plan, takes the customer's choice and checks the seats are free.
- TakePayment() works out the price, processes the card payment and prints the ticket.
- Three modules, each small enough to design, code and test on its own.
Exemple résolu : un programme de réservation cinématographique
- Un cinéma avec plusieurs salles souhaite un programme permettant aux clients de réserver des places.
- ShowFilms() liste les films, leurs salles et leurs heures de début.
- ChooseSeats() affiche le plan de sièges, prend le choix du client et vérifie que les sièges sont libres.
- TakePayment() calcule le prix, traite le paiement par carte et imprime le ticket.
- Trois modules, chacun assez petit pour être conçu, codé et testé indépendamment.
Match each part of the cinema booking design to what it is. · Reliez chaque partie de la conception de réservation de cinéma à sa nature.
Three modules, each doing one job, and a structure chart to show how they fit together. · Trois modules, chacun effectuant une tâche unique, et un organigramme montrant comment ils s'articulent.
Why decompose? The three-mark answer
- Each sub-problem is small enough to design, code and test on its own.
- Different programmers can work on different modules at the same time.
- A module that already exists, or a library routine, can be reused, and a fault is easier to find because it sits inside one module.
- The diagram of a decomposition is a structure chart 结构图 (topic 12).
Pourquoi décomposer ? La réponse à trois points
- Chaque sous-problème est assez petit pour être conçu, codé et testé indépendamment.
- Différents programmeurs peuvent travailler sur différents modules simultanément.
- Un module existant ou une routine de bibliothèque peut être réutilisé, et une erreur est plus facile à trouver car elle se trouve dans un seul module.
- Le diagramme d'une décomposition est un structure chart 结构图 (sujet 12).
The four cornerstones
- Decomposition: break the problem up. Pattern recognition: spot what repeats, so one solution serves several parts.
- Abstraction: strip away the detail that does not matter. Algorithm design: write the step-by-step solution.
- In practice you use them in roughly that order, and you go round more than once.
Les quatre piliers
- Décomposition : diviser le problème. Reconnaissance de motifs : repérer ce qui se répète, afin qu'une seule solution serve plusieurs parties.
- Abstraction : éliminer les détails inutiles. Conception d'algorithmes : rédiger la solution étape par étape.
- En pratique, on les utilise approximativement dans cet ordre, et on y revient plusieurs fois.
Solving a problem the computational way · Résoudre un problème à la manière computationnelle
Step through the four cornerstones in the order you'd use them — break the problem down, spot what repeats, strip it to essentials, then write the steps. · Parcourez les quatre piliers dans l'ordre de leur utilisation — décomposez le problème, repérez ce qui se répète, extraitez l'essentiel, puis rédigez les étapes.
Match each cornerstone of computational thinking to what it means. · Reliez chaque pilier de la pensée computationnelle à sa signification.
The four cornerstones — decompose, spot patterns, abstract, then design the algorithm. · Les quatre piliers — décomposer, repérer les motifs, abstraction, puis concevoir l'algorithme.
Put the computational-thinking steps in a sensible order. · Placez les étapes de la pensée computationnelle dans un ordre cohérent.
Break it down, find what repeats, strip to essentials, then write the steps. · Décomposez-le, trouvez ce qui se répète, extrayez l'essentiel, puis rédigez les étapes.
Don't mix them up
- Abstraction removes detail; decomposition splits the problem. "Breaking it into smaller parts" is not a description of abstraction.
- A "describe" answer needs the how, not one word: say what is broken down, into what, and what each part becomes.
- Tie the answer to the scenario. A decomposition answer that never mentions the stock system, the cinema or the shop loses a mark.
Ne pas les confondre
- L'abstraction supprime les détails ; la décomposition divise le problème. « Le diviser en petites parties » ne décrit pas l'abstraction.
- Une réponse « décrire » nécessite le comment, pas un seul mot : dire ce qui est découpé, en quoi, et ce que devient chaque partie.
- Relier la réponse au scénario. Une réponse de décomposition qui ne mentionne jamais le système de stocks, le cinéma ou la boutique perd un point.
In a "describe decomposition" question, an answer that never mentions the scenario (the shop, the cinema) can still earn full marks. · Dans une question de « décrire la décomposition », une réponse qui ne mentionne jamais le scénario (le magasin, le cinéma) peut quand même obtenir la note maximale.
Mark schemes cap a generic answer: the recent stock-control question said "max 2 if no mention of stock control". Name the scenario's own modules and data. · Les barèmes limitent les réponses génériques : la question récente sur le contrôle des stocks disait « max 2 si pas de mention du contrôle des stocks ». Nommez les modules et données propres au scénario.
You've got it
- abstraction = keep the essentials, ignore irrelevant detail → a simpler model
- decomposition = break a big problem into sub-problems → each becomes a procedure or function
- benefits of decomposition: design/code/test separately, share the work, reuse modules, find faults faster
- always describe with the scenario's own modules and data
Vous avez compris
- abstraction = garder les essentiels, ignorer les détails non pertinents → un modèle plus simple
- décomposition = diviser un grand problème en sous-problèmes → chacun devient une procédure ou une fonction
- avantages de la décomposition : concevir/coder/tester séparément, partager le travail, réutiliser les modules, détecter les erreurs plus vite
- toujours décrire avec les propres modules et données du scénario