Computational thinking · Pensamiento computacional
| English | Español |
|---|---|
| computational thinking/ˌkɒmpjuːˈteɪʃənl ˈθɪŋkɪŋ/ | pensamiento computacional |
| abstraction/əbˈstrækʃn/ | abstracción |
| decomposition/ˌdiːkɒmpəˈzɪʃn/ | descomposición |
| pattern recognition/ˈpætn ˌrekəɡˈnɪʃn/ | reconocimiento de patrones |
| algorithm/ˈælɡərɪθəm/ | algoritmo |
| function/ˈfʌŋkʃn/ | función |
| module/ˈmɒdjuːl/ | módulo |
| sub-problem/sʌb ˈprɒbləm/ | subproblema |
| procedure/prəˈsiːdʒə/ | procedimiento |
| structure chart/ˈstrʌktʃə tʃɑːt/ | gráfico de estructura |
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.
Un mapa que yace a propósito
- En 1931, Harry Beck, un dibujante sin empleo, redibujó el mapa del metro de Londres.
- Descartó la geografía real: cada línea se volvió recta y las estaciones quedaron espaciadas uniformemente.
- El mapa estaba "equivocado", pero resultó inmediatamente más fácil de usar. Todos los mapas del metro en el mundo ahora lo copian.
- Beck conservó solo lo que necesita un pasajero: las estaciones y cómo se conectan. Eso es pensamiento computacional (计算思维) antes de que existieran las computadoras.
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é es el pensamiento computacional
- Es el conjunto de herramientas mentales para analizar un problema y diseñar una solución que una computadora pueda ejecutar.
- El programa de estudios nombra dos de ellos: abstracción (抽象) y descomposición (分解).
- Dos más los respaldan: reconocimiento de patrones (模式识别) y el diseño de algoritmos (算法).
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
Abstracción
- La abstracción significa conservar las características esenciales de un problema e ignorar detalles irrelevantes, creando así un modelo más simple.
- El mapa del metro conserva las estaciones y las líneas y omite la geografía.
- Un nombre de variable oculta una dirección de memoria; una función oculta un bloque de código tras un nombre; una clase mantiene solo los atributos que el sistema necesita.

La abstracción conserva solo las características esenciales de un problema y omite los detalles irrelevantes
Abstraction means: · La abstracción significa:
Abstraction simplifies a problem to its essentials. Breaking into parts is decomposition. · La abstracción simplifica un problema a sus esencia. Dividir en partes es la descomposición.
A train map that keeps the stations and lines but drops the real geography is an example of abstraction. · Un mapa de trenes que conserva las estaciones y líneas pero omite la geografía real es un ejemplo de abstracción.
It keeps what matters (stations, connections) and discards the rest — exactly what abstraction does. · Conserva lo importante (estaciones, conexiones) y descarta el resto: exactamente lo que hace la abstracción.
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.
Propósito y beneficios
- Propósito: producir un modelo más simple del problema que contenga solo los detalles necesarios para resolverlo.
- Beneficios: el problema es más fácil de entender y programar; el programa es más pequeño y rápido de escribir y probar; el mismo modelo puede reutilizarse para un problema similar.
- El examinador pide el propósito y los beneficios por separado. Aprende ambos.
Select all · todos the statements that are benefits of abstraction. · Seleccione todos los enunciados que sean beneficios de la abstracción.
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. · La abstracción elimina detalles, por lo que conservar todos los detalles es lo contrario de ella, y no dice nada sobre el hardware. Los tres beneficios reales son la comprensión, el tamaño/velocidad del desarrollo y la reutilización.
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.
Ejemplo resuelto: un modelo abstracto
- Una cafetería almacena, para cada cliente con tarjeta de lealtad: ID, nombre, domicilio, correo electrónico, número de móvil, fecha de nacimiento, puntos acumulados y fecha de última visita.
- Un nuevo módulo envía cupones por correo electrónico a los clientes que no han visitado durante 30 días. ¿Qué datos necesita?
- Necesario: ID (para buscar al cliente), correo electrónico (para enviarlo), nombre (para personalizar el mensaje), fecha de última visita (para seleccionar quién recibe uno).
- No necesario: domicilio, número de móvil, fecha de nacimiento, puntos. Omitirlos es la abstracción.
The voucher-email module in the worked example needs which of these items? Select all · todos that apply. · El módulo de cupones por correo electrónico en el ejemplo resuelto necesita cuáles de estos elementos? Seleccione todos los que correspondan.
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. · Correo electrónico para enviar, fecha de última visita para elegir quién califica e ID para buscar al cliente. La dirección postal y la fecha de nacimiento no tienen parte en un cupón por correo electrónico, por lo que un modelo abstracto de este módulo los omite.
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
Descomposición
- La descomposición significa dividir un problema grande en subproblemas más pequeños (子问题), cada uno más fácil de resolver.
- Encuentra las partes principales → divide cada una en subtareas → detente cuando cada una sea lo suficientemente pequeña para codificarse directamente → resuélvelas y combínalas.
- Cada subproblema se convierte en un módulo (模块) del programa: un procedimiento (过程) o una función (函数).

Descomponer un programa en módulos y submódulos
Decomposition means: · La descomposición significa:
Decomposition splits a big task into smaller, separately-solvable sub-tasks. · La descomposición divide una tarea grande en sub-tareas más pequeñas y resolubles por separado.
Each sub-problem produced by decomposition becomes a program module: a procedure or a ____. · Cada subproblema producido por la descomposición se convierte en un módulo de programa: un procedimiento o un ____.
The syllabus wording is exact: decomposition leads to the concept of a program module — a procedure or a function · función. · La redacción del programa de estudios es exacta: la descomposición conduce al concepto de módulo de programa: un procedimiento o una función.
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.
Ejemplo resuelto: un programa de reservas de cine
- Un cine con varias salas desea un programa que permita a los clientes reservar asientos.
- ShowFilms() lista las películas, sus salas y sus horas de inicio.
- ChooseSeats() muestra el plano de asientos, toma la elección del cliente y verifica que los asientos estén libres.
- TakePayment() calcula el precio, procesa el pago con tarjeta e imprime el boleto.
- Tres módulos, cada uno lo suficientemente pequeño para diseñar, codificar y probar por separado.
Match each part of the cinema booking design to what it is. · Asocie cada parte del diseño de reserva de cine con lo que es.
Three modules, each doing one job, and a structure chart to show how they fit together. · Tres módulos, cada uno haciendo un trabajo, y un gráfico de estructura para mostrar cómo encajan juntos.
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).
¿Por qué descomponer? La respuesta de tres marcas
- Cada subproblema es lo suficientemente pequeño como para diseñar, codificar y probar por separado.
- Diferentes programadores pueden trabajar en diferentes módulos al mismo tiempo.
- Un módulo que ya existe, o una rutina de biblioteca, puede ser reutilizado, y un error es más fácil de encontrar porque reside dentro de un solo módulo.
- El diagrama de una descomposición es un gráfico de estructura (结构图) (tema 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.
Los cuatro pilares
- Descomposición: dividir el problema. Reconocimiento de patrones: detectar lo que se repite, para que una sola solución sirva para varias partes.
- Abstracción: eliminar los detalles que no importan. Diseño de algoritmos: escribir la solución paso a paso.
- En la práctica, se usan aproximadamente en ese orden, y se da la vuelta más de una vez.
Solving a problem the computational way · Resolver un problema a la manera computacional
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. · Recorra los cuatro pilares en el orden en que los usaría: descomponga el problema, identifique lo que se repite, simplifíquelo a lo esencial y luego escriba los pasos.
Match each cornerstone of computational thinking to what it means. · Asocie cada pilar del pensamiento computacional con lo que significa.
The four cornerstones — decompose, spot patterns, abstract, then design the algorithm. · Los cuatro pilares: descomponer, detectar patrones, abstraer y luego diseñar el algoritmo.
Put the computational-thinking steps in a sensible order. · Coloque los pasos del pensamiento computacional en un orden lógico.
Break it down, find what repeats, strip to essentials, then write the steps. · Divídalo, encuentre lo que se repite, simplifíquelo a lo esencial y luego escriba los pasos.
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.
No los confundas
- La abstracción elimina detalles; la descomposición divide el problema. "Dividirlo en partes más pequeñas" no es una descripción de la abstracción.
- Una respuesta que pida "describir" necesita el cómo, no una sola palabra: especifica qué se desglosa, en qué y qué se convierte cada parte.
- Vincula la respuesta al escenario. Una respuesta sobre descomposición que nunca mencione el sistema de stock, el cine o la tienda perderá una marca.
In a "describe decomposition" question, an answer that never mentions the scenario (the shop, the cinema) can still earn full marks. · En una pregunta "describir descomposición", una respuesta que nunca menciona el escenario (la tienda, el cine) aún puede obtener la puntuación completa.
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. · Los criterios de evaluación limitan una respuesta genérica: la reciente pregunta de control de stock dijo "máximo 2 si no se menciona el control de stock". Nombren los propios módulos y datos del escenario.
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
Ya lo tienes
- abstracción = conservar lo esencial, ignorar detalles irrelevantes → un modelo más simple
- descomposición = dividir un problema grande en subproblemas → cada uno se convierte en un procedimiento o función
- beneficios de la descomposición: diseñar/codificar/probar por separado, compartir el trabajo, reutilizar módulos, encontrar errores más rápido
- describe siempre con los propios módulos y datos del escenario