ArticlePDF Available
COMMUNICATIONS OF THE ACM March 2006/Vol. 49, No. 3 33
C
omputational thinking
builds on the power and
limits of computing
processes, whether they are exe-
cuted by a human or by a
machine. Computational
methods and models give us
the courage to solve prob-
lems and design systems that no one of us would
be capable of tackling alone. Computational think-
ing confronts the riddle of machine intelligence:
What can humans do better than computers? and
What can computers do better than humans? Most
fundamentally it addresses the question: What is
computable? Today, we know only parts of the
answers to such questions.
Computational thinking is a fundamental skill for
everyone, not just for computer scientists. To read-
ing, writing, and arithmetic, we should add compu-
tational thinking to every childs analytical ability.
Just as the printing press facilitated the spread of the
three Rs, what is appropriately incestuous about this
vision is that computing and computers facilitate the
spread of computational thinking.
Computational thinking involves solving prob-
lems, designing systems, and understanding human
behavior, by drawing on the concepts fundamental
to computer science. Computational thinking
includes a range of mental tools that reflect the
breadth of the field of computer science.
Having to solve a particular problem, we might
ask: How difficult is it to solve? and What’s the best
way to solve it? Computer science rests on solid the-
oretical underpinnings to answer such questions pre-
cisely. Stating the difficulty of a problem accounts
for the underlying power of the machine—the com-
puting device that will run the solution. We must
consider the machine’s instruction set, its resource
constraints, and its operating environment.
In solving a problem efficiently,
,we might further
ask whether an approximate solution is good
enough, whether we can use randomization to our
advantage, and whether false positives or false nega-
tives are allowed. Computational thinking is refor-
mulating a seemingly difficult problem into one we
know how to solve, perhaps by reduction, embed-
ding, transformation, or simulation.
Computational thinking is thinking recursively. It
is parallel processing. It is interpreting code as data
and data as code. It is type checking as the general-
ization of dimensional analysis. It is recognizing
both the virtues and the dangers of aliasing, or giv-
ing someone or something more than one name. It
is recognizing both the cost and power of indirect
addressing and procedure call. It is judging a pro-
gram not just for correctness and efficiency but for
aesthetics, and a system’s design for simplicity and
elegance.
Computational thinking is using abstraction and
decomposition when attacking a large complex task
or designing a large complex system. It is separation
of concerns. It is choosing an appropriate representa-
tion for a problem or modeling the relevant aspects
of a problem to make it tractable. It is using invari-
ants to describe a system’s behavior succinctly and
declaratively. It is having the confidence we can
safely use, modify, and influence a large complex
system without understanding its every detail. It is
LISA HANEY
Viewpoint Jeannette M. Wing
Computational Thinking
It represents a universally applicable attitude and skill set everyone, not just
computer scientists, would be eager to learn and use.
34 March 2006/Vol. 49, No. 3 COMMUNICATIONS OF THE ACM
modularizing something in anticipation of multiple
users or prefetching and caching in anticipation of
future use.
Computational thinking is thinking in terms of
prevention, protection, and recovery from worst-case
scenarios through redundancy, damage containment,
and error correction. It is calling gridlock deadlock
and contracts interfaces. It is learning to avoid race
conditions when synchronizing meetings with one
another.
Computational thinking is using heuristic reason-
ing to discover a solution. It is planning, learning,
and scheduling in the presence of uncertainty. It is
search, search, and more search, resulting in a list of
Web pages, a strategy for winning a game, or a coun-
terexample. Computational thinking is using massive
amounts of data to speed up computation. It is mak-
ing trade-offs between time and space and between
processing power and storage capacity.
Consider these everyday examples: When your
daughter goes to school in the morning, she puts in
her backpack the things she needs for the day; that’s
prefetching and caching. When your son loses his
mittens, you suggest he retrace his steps; thats back-
tracking. At what point do you stop renting skis and
buy yourself a pair?; that’s online algorithms. Which
line do you stand in at the supermarket?; that’s per-
formance modeling for multi-server systems. Why
does your telephone still work during a power out-
age?; that’s independence of failure and redundancy
in design. How do Completely Automated Public
T
uring Test(s) to Tell Computers and Humans
Apart, or CAPTCHAs, authenticate humans?; that’s
exploiting the difficulty of solving hard AI problems
to foil computing agents.
Computational thinking will have become
ingrained in everyone’s lives when words like algo-
rithm and precondition are part of everyone’s vocab-
ulary; when nondeterminism and garbage collection
take on the meanings used by computer scientists;
and when trees are drawn upside down.
We have witnessed the influence of computa-
tional thinking on other disciplines. For example,
machine learning has transformed statistics. Statisti-
cal learning is being used for problems on a scale, in
terms of both data size and dimension, unimagin-
able only a few years ago. Statistics departments in
all kinds of organizations are hiring computer scien-
tists. Schools of computer science are embracing
existing or starting up new statistics departments.
Computer scientists’ recent interest in biology is
driven by their belief that biologists can benefit
from computational thinking. Computer science’s
contribution to biology goes beyond the ability to
search through vast amounts of sequence data look-
ing for patterns. The hope is that data structures
and algorithms—our computational abstractions
and methods—can represent the structure of pro-
teins in ways that elucidate their function. Compu-
tational biology is changing the way biologists
think. Similarly, computational game theory is
changing the way economists think; nanocomput-
ing, the way chemists think; and quantum comput-
ing, the way physicists think.
This kind of thinking will be part of the skill set
of not only other scientists but of everyone else.
Ubiquitous computing is to today as computational
thinking is to tomorrow. Ubiquitous computing was
yesterday’s dream that became today’s reality; com-
putational thinking is tomorrow’s reality.
WHATITIS, AND ISNT
Computer science is the study of computation—
what can be computed and how to compute it.
Computational thinking thus has the following
characteristics:
Viewpoint
Thinking like a computer scientist means more than being able to
program a computer. It requires thinking at multiple levels of abstraction.
COMMUNICATIONS OF THE ACM March 2006/Vol. 49, No. 3 35
Conceptualizing, not programming.
Computer sci-
ence is not computer programming. Thinking
like a computer scientist means more than being
able to program a computer. It requires thinking
at multiple levels of abstraction;
Fundamental, not rote skill.
A fundamental skill is
something every human being must know to
function in modern society. Rote means a
mechanical routine. Ironically, not until computer
science solves the AI Grand Challenge of making
computers think like humans will thinking be
rote;
A way that humans, not computers, think.
Computa-
tional thinking is a way humans solve problems;
it is not trying to get humans to think like com-
puters. Computers are dull and boring; humans
are clever and imaginative. We humans make
computers exciting. Equipped with computing
devices, we use our cleverness to tackle problems
we would not dare take on before the age of com-
puting and build systems with functionality lim-
ited only by our imaginations;
Complements and combines mathematical and engi-
neering thinking.
Computer science inherently
draws on mathematical thinking, given that, like
all sciences, its formal foundations rest on mathe-
matics. Computer science inherently draws on
engineering thinking, given that we build systems
that interact with the real world. The constraints
of the underlying computing device force com-
puter scientists to think computationally, not just
mathematically. Being free to build virtual worlds
enables us to engineer systems beyond the physi-
cal world;
Ideas, not artifacts.
It’s not just the software and
hardware artifacts we produce that will be physi-
cally present everywhere and touch our lives all
the time, it will be the computational concepts
we use to approach and solve problems, manage
our daily lives, and communicate and interact
with other people; and
For everyone, everywhere.
Computational thinking
will be a reality when it is so integral to human
endeavors it disappears as an explicit philosophy.
Many people equate computer science with com-
puter programming. Some parents see only a narrow
range of job opportunities for their children who
major in computer science. Many people think the
fundamental research in computer science is done
and that only the engineering remains. Computa-
tional thinking is a grand vision to guide computer
science educators, researchers, and practitioners as we
act to change society’s image of the field. We espe-
cially need to reach the pre-college audience, includ-
ing teachers, parents, and students, sending them
two main messages:
Intellectually challenging and engaging scientific prob-
lems remain to be understood and solved.
The prob-
lem domain and solution domain are limited only
by our own curiosity and creativity; and
One can major in computer science and do anything
.
One can major in English or mathematics and go
on to a multitude of different careers. Ditto com-
puter science. One can major in computer science
and go on to a career in medicine, law, business,
politics, any type of science or engineering, and
even the arts.
Professors of computer science should teach a
course called “Ways to Think Like a Computer Sci-
entist” to college freshmen, making it available to
non-majors, not just to computer science majors. We
should expose pre-college students to computational
methods and models. Rather than bemoan the
decline of interest in computer science or the decline
in funding for research in computer science, we
should look to inspire the public’s interest in the
intellectual adventure of the field. We’ll thus spread
the joy, awe, and power of computer science, aiming
to make computational thinking commonplace.
Jeannette M. Wing (wing@cs.cmu.edu) is the President’s
Professor of Computer Science in and head of the Computer Science
Department at Carnegie Mellon University, Pittsburgh, PA.
© 2006 ACM 0001-0782/06/0300 $5.00
c
... As for the nature of computational thinking: Wing (2006) described it as the mental processes that involve framing problems and their solutions, including information processing followed by successful implementation. Denning (2009) defined it as the mental inclination to formulate a solution to problems by transforming certain inputs into outputs and searching for algorithms to perform those transformations. ...
... The main features of computer thinking skills include: a focus on concepts rather than programming, thinking at high levels of abstraction, encompassing mathematical and geometric thinking, and being based on these areas. It emphasizes ideas rather than tools and focuses on computational concepts that can be used to address problems and their solutions (Wing, 2006). This is a way of human thinking rather than computer thinking, and it combines problem-solving and computing thinking, which means employing a high level of thinking to find solutions (Yadav, et al., 2017). ...
... Computational Thinking Teaching Skills: Wing (2006) defines it as the mental processes involved in framing problems and solutions, including information processing followed by successful implementation, or the thinking processes concerned with articulating a problem and expressing its solution in a way that enables an individual to consider executing it effectively, similar to the approach of computer scientists. The researcher defines it procedurally as a cognitive activity utilized by teachers to express problems in a manner that allows for reaching solutions using computational steps and algorithms. ...
Article
Full-text available
The current study aimed to identify the effectiveness of a proposed training program based on the Caffarella model in developing computational thinking teaching skills and financial culture among middle school mathematics teachers. To achieve the study’s objectives, the researcher prepared two tools consisting of observation cards to measure the level of computational thinking teaching skills and financial culture teaching skills. The first card contained (25) skills, with six of them being (analysis, abstraction, algorithmic thinking, pattern recognition, evaluation, and generalization). The second observation card focused on financial culture teaching skills (planning, implementation, and evaluation). The study sample included (55) male and female teachers who were selected purposefully during the second semester (2025 AD / 1446 AH). The results indicated the effectiveness of the training program and a correlation between the observation card for computational thinking teaching skills and financial culture teaching skills. Cohen's coefficient values were significantly high for all skills. There were statistically significant differences in computational thinking teaching skills and financial culture teaching skills based on the gender variable, favoring females. However, there were no statistically significant differences in the observation card for computational thinking teaching skills and financial culture teaching skills based on the educational qualification and years of experience variables. The study recommended preparing mathematics teachers to employ computational thinking skills and integrate the concepts of financial culture found in mathematics books, linking these to students' real-life situations and artificial intelligence in teaching, along with expanding professional development for mathematics teachers in the same field.
... Um dos principais desafios para a inserção de NDI na educação está relacionado à necessidade de desenvolvimento de competências específicas, como o pensamento computacional. Wing (2006) define o pensamento computacional como um conjunto de habilidades que envolvem abstração, decomposição e formulação de algoritmos, elementos essenciais para a criação de narrativas interativas. A inclusão desse tipo de pensamento no processo de formação docente pode contribuir para a inserção mais estruturada das NDI no ensino fundamental. ...
... Além disso, são analisados os aspectos de coesão, coerência e desenvolvimento narrativo, que garantem a construção de narrativas conceitos de programação e pensamento computacional, especialmente para crianças e iniciantes. Wing (2006) sobre o Pensamento Computacional se destaca como um conjunto de habilidades essenciais para a criação de narrativas digitais. Wing (2006) define o Pensamento Computacional como uma habilidade fundamental para todos, que deve ser integrada à educação em todos os níveis. ...
... Wing (2006) sobre o Pensamento Computacional se destaca como um conjunto de habilidades essenciais para a criação de narrativas digitais. Wing (2006) define o Pensamento Computacional como uma habilidade fundamental para todos, que deve ser integrada à educação em todos os níveis. A autora destaca a importância de ir além da mera programação, enfatizando a capacidade de resolução de problemas e o raciocínio lógico como elementos centrais do Pensamento Computacional. ...
Conference Paper
As narrativas digitais interativas (NDI) surgem como uma ferramenta pedagógica inovadora, integrando tecnologia e narrativa para estimular criatividade, pensamento computacional e coesão textual no ensino fundamental. Utilizando o Scratch, professores criaram fábulas interativas em um curso de formação, explorando multimídia e interatividade para engajar estudantes. O estudo destaca que as NDI promovem aprendizagem significativa ao combinar texto, som e escolhas do usuário, mas exigem competências como abstração e algoritmização. A pesquisa analisa o impacto dessa autoria na formação docente, identificando avanços e desafios na implementação. Resultados apontam a necessidade de capacitação para aproveitar plenamente o potencial das NDI na educação.
... In October 2022, the Brazilian Ministry of Education (MEC) approved a complement to the Common National Curriculum Base (BNCC), introducing digital skills as a new curricular component in primary and secondary education [da Cruz et al. 2023]. One of the three main thematic axes is Computational Thinking (CT), defined as the ability to formulate and solve everyday problems using fundamental concepts of Computer Science, such as multi-level abstraction, data analysis, and logical reasoning [Wing 2006]. ...
... Computational Thinking (CT) was popularized by Wing (2006), who posed a series of questions and statements exploring how humans solve problems and the parallels to computer functionality. Over time, more formal definitions of CT were developed and integrated into the field of Computing Education. ...
Conference Paper
This paper presents an activity aimed at teaching the main concepts of Computational Thinking to high school students. Algorithmic structures such as conditionals and loops are presented playfully using a game that represents a marble-powered computer. The activities described herein were applied to two groups of 21 and 16 high school students during 40-minute sessions. Besides describing the activity, it is also discussed how it could be extended to cover the main necessary concepts related to Computational Thinking. Results show that the students were quickly engaged in the activity, and even with the short time, most of them were able to understand the concepts and solve the challenges, indicating it could be an interesting approach.
... Kemampuan CT merupakan kemampuan dalam merumuskan masalah menjadi bentuk masalah algoritma dan menyusun solusi serta menjelaskan proses ditemukannya solusi tersebut . Beberapa negara maju seperti Amerika, Australia, Inggris, Belanda, dan Meksiko sudah memasukan Computational Thinking (CT) ke dalam kurikulum pendidikan (Wing, 2006). (Cahdriyana & Richardo, 2020) juga menyebutkan bahwa CT merupakan kemampuan memecahkan masalah dengan menyusun solusi yang sesuai dalam bentuk algoritma. ...
... Sejalan dengan pendapat yang dikemukakan oleh (Wing, 2006) kemampuan CT adalah proses berpikir yang terlibat sedemikian rupa sehingga komputer, manusia, ataupun mesin bisa bekerja secara efektif. Menurut (Yadav et al., 2014) CT yaitu pemecahan masalah dengan menemukan cara yang baru dengan berpikir. ...
Article
Full-text available
This research aims to analyze the CT abilities of class VIII students at SMP Negeri 1 Bangkinang Kota. CT ability is an ability that students must have and to find out to what extent these CT abilities have developed and been fulfilled by students. This research is a qualitative descriptive research. The research subjects were all class VIII students, totaling 36 students. The data collect ion techniques used were interviews and tests. The results of this research can be concluded that the high category (KT) subjects can understood the question information correctly in worked on CT ability questions, can answered questions according to the CT ability indicators, answer correctly and can also made conclusions from the answers obtained and check again. to ensure the corrected of the answer. Likewise, subjects in the medium category (KS) are quite good at found information from the questions, but do not understood the answers to the questions themselves. Medium category students can also made conclusions from the answers they get. Meanwhile, low category subjects (KR) were unable to understood the questions, found the right information and drew conclusions when solving the CT ability test questions.
... Este envolve a capacidade de resolver problemas de maneira sistemática e lógica, decompondo tarefas complexas em partes menores, identificando padrões e criando soluções eficazes. Quando introduzimos o ensino de programação para jovens de 13 a 18 anos, estamos não apenas ensinando uma nova linguagem, mas também promovendo habilidades cognitivas que serão essenciais em diversasáreas, desde a ciência e tecnologia até a resolução de problemas do cotidiano [Wing 2006]. ...
Conference Paper
O ensino do pensamento computacional é essencial para o desenvolvimento do raciocínio lógico, preparando pessoas para futuros desafios. Este artigo relata uma experiência de ensino de programação em Python junto ao uso de kits LEGOTM Spike com jovens de 13 a 18 anos com experiência prévia em programação com blocos. As aulas abordaram conceitos de programação e robótica, culminando em uma competição. A metodologia aqui apresentada promoveu o desenvolvimento de habilidades cognitivas, resolução de problemas e trabalho em equipe, além de estimular a criatividade e o pensamento crítico. Os resultados reforçam o valor da integração entre programação e robótica como abordagem eficaz e motivadora no ensino de tecnologia e lógica.
... Em consonância com a Computação Desplugada e buscando criar estratégias para melhor estruturar instrumentos de aprendizagem, o uso do Pensamento Computacional (PC), popularizado por [Wing 2006], auxilia na criação das etapas de forma sequencial, trazendo resultados parciais significativos no processo de ensino [Guarda et al. 2022], [Nunes et al. 2024]. Ambos os termos enfatizam o emprego de conceitos da Ciência da Computação, como uma ferramenta para resolver problemas do mundo real, utilizando a abstração, decomposição, reconhecimento de padrões e algoritmo, com aplicação prática no cotidiano. ...
Conference Paper
Este artigo apresenta um relato de experiência baseado no desenvolvimento e aplicação do cardgame “Cartas de Classe”, com a proposta de avaliar a aprendizagem dos estudantes nos conceitos de orientação a objetos. Utilizando cartas que representam classes, objetos, atributos e métodos, onde os participantes interagem com elementos que representam entidades do cotidiano universitário identificando ações que estes executam. A experiência busca estimular o pensamento lógico, decomposição, reconhecimento de padrões e abstração, promovendo o engajamento dos estudantes e a compreensão prática dos conceitos. Os resultados indicam que a metodologia utilizada facilita o engajamento dos estudantes e a aprendizagem de forma colaborativa.
... O termo Pensamento Computacional (PC) só passou a ganhar notoriedade a partir dos primeiros escritos de Jeannette Wing em 2006 [Wing 2006]. Em sua definição mais recente, ela afirma que o Pensamento Computacional envolve os processos de pensamento necessários para formular um problema e expressar sua(s) solução(ões) de forma que um computador -humano ou máquina -possa executá-las efetivamente [Wing 2017]. ...
Conference Paper
As habilidades do Pensamento Computacional (PC) passaram a ganhar amplo destaque no cenário educacional brasileiro a partir da consolidação da BNCC Computação e da Política Nacional de Educação Digital (PNED). Contudo, isso exigirá a superação de inúmeros desafios; entre eles, será necessário elaborar materiais didáticos sobre o Pensamento Computacional, considerando as particularidades do contexto educacional nacional. Diante disso, este artigo apresenta uma proposta de livro didático que aborda o desenvolvimento de habilidades do Pensamento Computacional por meio da Computação Física para os alunos do nono ano do Ensino Fundamental – Anos Finais.
... They agree that this activity requires mental effort and flexibility, necessitating constant revision to achieve coherence in the representation. Abstraction is a key computational thinking skill [24]; it often requires specific training and experience, which may not traditionally be part of an agronomist's background. ...
Chapter
Full-text available
Context and motivation: End-user development focuses on enabling non-professional programmers to create or extend software applications on their own. However, before beginning the development process, software engineering best practices recommend performing requirements engineering (RE) activities, including requirements modelling. Question/problem: There is limited research on how end-users can model system requirements. Principal ideas/results: In this experience report, we investigate the problem of end-user requirements modelling in an EU-funded project about agricultural digitalisation. Specifically , a team of agronomists was directly involved in the creation of UML, iStar, and BPMN diagrams to model the transformation of socio-technical processes in four different concrete scenarios. They followed a formalisation procedure proposed within an RE method designed to help stakeholders evaluate the impact of agricultural digitalisation. Starting from textual reports including a description of the process as-is and the process-to-be, they followed step-by-step guidelines for model creation. Contribution: This paper reports insights from the experience from the viewpoint of the agronomists and software engineers involved. We identify eight key lessons that highlight the added value of end-user requirements modelling for achieving a shared and in-depth understanding of the socio-technical processes under analysis.
Article
Full-text available
Computational thinking and Problem-Based Learning have educational benefits for learners and have been widely used in teaching and learning. However, research into integrating these theories into the teaching and learning process is scarce, leaving educators with little guidance in using constructive learning theory techniques. This research aims to thoroughly review and determine the place of research, level, learning materials, type of research, and instruments used to get an overview of how computational thinking, problemsolving, and learning methodologies lead to the successful application of computational thinking and problem-solving. From 2018-2023, this research tracks relevant published articles to identify gaps in implementing computational thinking and problem-solving. Research on computational thinking in problem-solving in the last five years has been widely used, but it still needs to be improved for other researchers, especially in provinces with few or even few researchers. Other researchers, especially in provinces that still have little or no research on computational thinking in problem-solving. have not examined computational thinking in problem-solving. In addition, the material that is taught to support computational thinking is the most widely used number pattern material at the junior high school level with test instruments and interviews.
Article
Full-text available
There is a large disconnect between the increasing need for computer science education in K-12 schools and the preservice teacher training provided. Consequently, preservice teachers may graduate feeling unprepared to infuse computer science concepts such as computational thinking (CT) into their teaching. To address this, we created Robotics in Early Childhood STEM Education (REC-STEMEd), a module that infuses computational thinking, robotics, and science content into an early childhood teacher education methods course. This study investigated changes in early childhood preservice teachers’ (n = 39) attitudes toward learning to teach CT and their intentions to teach CT. Findings revealed a statistically significant increase in participants’ positive affection and positive cognition, and a significant decrease in negative cognition toward learning to teach CT. A moderate but not significant decrease was found in their negative cognition. Moreover, participants reported moderately positive attitudes, subjective norms, perceived behavioral control, and intentions toward teaching CT in the future.
ResearchGate has not been able to resolve any references for this publication.