Computational thinking · Pensamento computacional
| English | Português |
|---|---|
| computational thinking/ˌkɒmpjuːˈteɪʃənl ˈθɪŋkɪŋ/ | pensamento computacional |
| abstraction/əbˈstrækʃn/ | abstração |
| decomposition/ˌdiːkɒmpəˈzɪʃn/ | decomposição |
| pattern recognition/ˈpætn ˌrekəɡˈnɪʃn/ | reconhecimento de padrões |
| algorithm/ˈælɡərɪθəm/ | algoritmo |
| function/ˈfʌŋkʃn/ | função |
| module/ˈmɒdjuːl/ | módulo |
| sub-problem/sʌb ˈprɒbləm/ | subproblema |
| procedure/prəˈsiːdʒə/ | procedimento |
| structure chart/ˈstrʌktʃə tʃɑːt/ | gráfico de estrutura |
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.
Um mapa feito propositalmente
- Em 1931, Harry Beck, um desenhistas desempregado, redesenhou o mapa do metrô de Londres.
- Ele descartou a geografia real: cada linha tornou-se reta e cada estação equidistante.
- O mapa estava "errado", e era instantaneamente mais fácil de usar. Todos os mapas de metrô do mundo agora o copiam.
- Beck manteve apenas o que um passageiro precisa: as estações e como elas se conectam. Isso é pensamento computacional 计算思维 antes mesmo da existência de computadores.
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 算法.
O que é pensamento computacional
- O conjunto de ferramentas mentais para analisar um problema e projetar uma solução que um computador possa executar.
- O programa de estudos cita dois deles: abstração 抽象 e decomposição 分解.
- Dois outros os apoiam: reconhecimento de padrões 模式识别 e o projeto 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
Abstração
- Abstração significa manter os recursos essenciais de um problema e ignorar detalhes irrelevantes, fornecendo um modelo mais simples.
- O mapa do metrô mantém as estações e linhas e descarta a geografia.
- Um nome de variável esconde um endereço de memória; uma função esconde um bloco de código atrás de um nome; uma classe mantém apenas os atributos que o sistema precisa.

A abstração mantém apenas os recursos essenciais de um problema e descarta os detalhes irrelevantes
Abstraction means: · Abstração significa:
Abstraction simplifies a problem to its essentials. Breaking into parts is decomposition. · Abstração simplifica um problema aos seus essenciais. Dividir em partes é decomposição.
A train map that keeps the stations and lines but drops the real geography is an example of abstraction. · Um mapa de trem que mantém estações e linhas, mas elimina a geografia real, é um exemplo de abstração.
It keeps what matters (stations, connections) and discards the rest — exactly what abstraction does. · Ele mantém o que importa (estações, conexões) e descarta o resto — exatamente o que a abstração faz.
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.
Finalidade e benefícios
- Finalidade: produzir um modelo mais simples do problema que contenha apenas os detalhes necessários para resolvê-lo.
- Benefícios: o problema fica mais fácil de entender e programar; o programa é menor e mais rápido de escrever e testar; o mesmo modelo pode ser reutilizado para um problema semelhante.
- O avaliador pede a finalidade e os benefícios separadamente. Aprenda ambos.
Select all · todos the statements that are benefits of abstraction. · Selecione todas as afirmações que são benefícios da abstração.
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. · Abstração elimina detalhes, então manter todo detalhe é o oposto disso, e não diz nada sobre hardware. Os três benefícios reais são compreensão, tamanho/velocidade de desenvolvimento e reutilização.
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.
Exemplo resolvido: um modelo abstrato
- Uma loja de café armazena, para cada cliente com cartão fidelidade: ID, nome, endereço residencial, e-mail, número de celular, data de nascimento, pontos e data da última visita.
- Um novo módulo envia um cupom por e-mail para clientes que não visitaram há 30 dias. Quais dados ele precisa?
- Necessários: ID (para localizar o cliente), e-mail (para enviar), nome (para personalizar a mensagem), data da última visita (para selecionar quem recebe).
- Não necessários: endereço residencial, número de celular, data de nascimento, pontos. Deixá-los fora é a abstração.
The voucher-email module in the worked example needs which of these items? Select all · todos that apply. · O módulo cupom-e-mail no exemplo resolvido precisa de quais destes itens? Selecione todos os que se aplicam.
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 para enviar, data da última visita para escolher quem qualifica, e o ID para buscar o cliente. O endereço postal e o aniversário não têm parte em um cupom por e-mail, então um modelo abstrato deste módulo os exclui.
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
Decomposição
- Decomposição significa dividir um grande problema em subproblemas menores 子问题, cada um mais fácil de resolver.
- Encontre as partes principais → divida cada uma em subtarefas → pare quando cada uma for pequena o suficiente para codificar diretamente → resolva-as e combine.
- Cada subproblema torna-se um módulo 模块 de programa: um procedimento 过程 ou uma função 函数.

Decompondo um programa em módulos e submódulos
Decomposition means: · Decomposição significa:
Decomposition splits a big task into smaller, separately-solvable sub-tasks. · Decomposição divide uma grande tarefa em sub-tarefas menores e solucionáveis separadamente.
Each sub-problem produced by decomposition becomes a program module: a procedure or a ____. · Cada sub-problema produzido pela decomposição torna-se um módulo de programa: um procedimento ou um ____.
The syllabus wording is exact: decomposition leads to the concept of a program module — a procedure or a function · função. · A redação do programa escolar é exata: a decomposição leva ao conceito de módulo de programa — um procedimento ou uma função.
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.
Exemplo resolvido: um programa de reservas de cinema
- Um cinema com várias salas deseja um programa que permita aos clientes reservar assentos.
- ShowFilms() lista os filmes, suas salas e horários de início.
- ChooseSeats() exibe o plano de assentos, recebe a escolha do cliente e verifica se os assentos estão livres.
- TakePayment() calcula o preço, processa o pagamento com cartão e imprime o ingresso.
- Três módulos, cada um pequeno o suficiente para ser desenhado, codificado e testado separadamente.
Match each part of the cinema booking design to what it is. · Associe cada parte do design de reserva de cinema ao que ela é.
Three modules, each doing one job, and a structure chart to show how they fit together. · Três módulos, cada um fazendo um trabalho, e um gráfico de estrutura para mostrar como eles se encaixam 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 decompor? A resposta de três marcas
- Cada subproblema é pequeno o suficiente para ser desenhado, codificado e testado separadamente.
- Diferentes programadores podem trabalhar em diferentes módulos ao mesmo tempo.
- Um módulo já existente ou uma rotina de biblioteca pode ser reutilizado, e um erro é mais fácil de encontrar porque está dentro de um único módulo.
- O diagrama de uma decomposição é um gráfico estrutural 结构图 (tópico 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.
Os quatro pilares
- Decomposição: dividir o problema. Reconhecimento de padrões: identificar o que se repete, para que uma solução sirva a várias partes.
- Abstração: eliminar os detalhes que não importam. Projeto de algoritmo: escrever a solução passo a passo.
- Na prática, você os usa aproximadamente nessa ordem, e passa por eles mais de uma vez.
Solving a problem the computational way · Resolver um problema à maneira 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. · Passe pelos quatro pilares na ordem em que você os usaria — decomponha o problema, identifique repetições, reduza aos essenciais, depois escreva os passos.
Match each cornerstone of computational thinking to what it means. · Associe cada pilar do pensamento computacional ao seu significado.
The four cornerstones — decompose, spot patterns, abstract, then design the algorithm. · Os quatro pilares — decompor, identificar padrões, abstrair, depois projetar o algoritmo.
Put the computational-thinking steps in a sensible order. · Coloque os passos do pensamento computacional em uma ordem sensata.
Break it down, find what repeats, strip to essentials, then write the steps. · Divida-o, encontre o que se repete, reduza aos essenciais, depois escreva os passos.
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.
Não os confunda
- Abstração remove detalhes; decomposição divide o problema. "Dividi-lo em partes menores" não é uma descrição de abstração.
- Uma resposta "descrever" precisa do como, não de uma única palavra: diga o que é dividido, em quê, e o que cada parte se torna.
- Vincule a resposta ao cenário. Uma resposta de decomposição que nunca menciona o sistema de estoque, o cinema ou a loja perde uma marca.
In a "describe decomposition" question, an answer that never mentions the scenario (the shop, the cinema) can still earn full marks. · Em uma questão de "descrever decomposição", uma resposta que nunca menciona o cenário (a loja, o cinema) ainda pode obter notas máximas.
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. · Esquemas de correção limitam respostas genéricas: a pergunta recente sobre controlo de stock disse "máx 2 se não houver menção ao controlo de stock". Nomeie os módulos e dados próprios do cenário.
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
Entendeu?
- abstração = manter o essencial, ignorar detalhes irrelevantes → um modelo mais simples
- decomposição = dividir um grande problema em subproblemas → cada um torna-se um procedimento ou função
- benefícios da decomposição: desenhar/codificar/testar separadamente, compartilhar o trabalho, reutilizar módulos, encontrar erros mais rápido
- sempre descreva com os próprios módulos e dados do cenário