You are on page 1of 3

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.
omputational thinking cisely. Stating the difficulty of a problem accounts

C builds on the power and


limits of computing
processes, whether they are exe-
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
cuted by a human or by a constraints, and its operating environment.
machine. Computational In solving a problem efficiently,, we might further
methods and models give us ask whether an approximate solution is good
the courage to solve prob- enough, whether we can use randomization to our
lems and design systems that no one of us would advantage, and whether false positives or false nega-
be capable of tackling alone. Computational think- tives are allowed. Computational thinking is refor-
ing confronts the riddle of machine intelligence: mulating a seemingly difficult problem into one we
What can humans do better than computers? and know how to solve, perhaps by reduction, embed-
What can computers do better than humans? Most ding, transformation, or simulation.
fundamentally it addresses the question: What is Computational thinking is thinking recursively. It
computable? Today, we know only parts of the is parallel processing. It is interpreting code as data
answers to such questions. and data as code. It is type checking as the general-
Computational thinking is a fundamental skill for ization of dimensional analysis. It is recognizing
everyone, not just for computer scientists. To read- both the virtues and the dangers of aliasing, or giv-
ing, writing, and arithmetic, we should add compu- ing someone or something more than one name. It
tational thinking to every child’s analytical ability. is recognizing both the cost and power of indirect
Just as the printing press facilitated the spread of the addressing and procedure call. It is judging a pro-
three Rs, what is appropriately incestuous about this gram not just for correctness and efficiency but for
vision is that computing and computers facilitate the aesthetics, and a system’s design for simplicity and
spread of computational thinking. elegance.
Computational thinking involves solving prob- Computational thinking is using abstraction and
lems, designing systems, and understanding human decomposition when attacking a large complex task
behavior, by drawing on the concepts fundamental or designing a large complex system. It is separation
to computer science. Computational thinking of concerns. It is choosing an appropriate representa-
includes a range of mental tools that reflect the tion for a problem or modeling the relevant aspects
breadth of the field of computer science. of a problem to make it tractable. It is using invari-
Having to solve a particular problem, we might ants to describe a system’s behavior succinctly and
ask: How difficult is it to solve? and What’s the best declaratively. It is having the confidence we can
LISA HANEY

way to solve it? Computer science rests on solid the- safely use, modify, and influence a large complex
oretical underpinnings to answer such questions pre- system without understanding its every detail. It is

COMMUNICATIONS OF THE ACM March 2006/Vol. 49, No. 3 33


Viewpoint

modularizing something in anticipation of multiple ulary; when nondeterminism and garbage collection
users or prefetching and caching in anticipation of take on the meanings used by computer scientists;
future use. and when trees are drawn upside down.
Computational thinking is thinking in terms of We have witnessed the influence of computa-
prevention, protection, and recovery from worst-case tional thinking on other disciplines. For example,
scenarios through redundancy, damage containment, machine learning has transformed statistics. Statisti-
and error correction. It is calling gridlock deadlock cal learning is being used for problems on a scale, in
and contracts interfaces. It is learning to avoid race terms of both data size and dimension, unimagin-
conditions when synchronizing meetings with one able only a few years ago. Statistics departments in
another. all kinds of organizations are hiring computer scien-
Computational thinking is using heuristic reason- tists. Schools of computer science are embracing
ing to discover a solution. It is planning, learning, existing or starting up new statistics departments.
and scheduling in the presence of uncertainty. It is Computer scientists’ recent interest in biology is
search, search, and more search, resulting in a list of driven by their belief that biologists can benefit

Thinking like a computer scientist means more than being able to


program a computer. It requires thinking at multiple levels of abstraction.
Web pages, a strategy for winning a game, or a coun- from computational thinking. Computer science’s
terexample. Computational thinking is using massive contribution to biology goes beyond the ability to
amounts of data to speed up computation. It is mak- search through vast amounts of sequence data look-
ing trade-offs between time and space and between ing for patterns. The hope is that data structures
processing power and storage capacity. and algorithms—our computational abstractions
Consider these everyday examples: When your and methods—can represent the structure of pro-
daughter goes to school in the morning, she puts in teins in ways that elucidate their function. Compu-
her backpack the things she needs for the day; that’s tational biology is changing the way biologists
prefetching and caching. When your son loses his think. Similarly, computational game theory is
mittens, you suggest he retrace his steps; that’s back- changing the way economists think; nanocomput-
tracking. At what point do you stop renting skis and ing, the way chemists think; and quantum comput-
buy yourself a pair?; that’s online algorithms. Which ing, the way physicists think.
line do you stand in at the supermarket?; that’s per- This kind of thinking will be part of the skill set
formance modeling for multi-server systems. Why of not only other scientists but of everyone else.
does your telephone still work during a power out- Ubiquitous computing is to today as computational
age?; that’s independence of failure and redundancy thinking is to tomorrow. Ubiquitous computing was
in design. How do Completely Automated Public yesterday’s dream that became today’s reality; com-
Turing Test(s) to Tell Computers and Humans putational thinking is tomorrow’s reality.
Apart, or CAPTCHAs, authenticate humans?; that’s
exploiting the difficulty of solving hard AI problems WHAT IT IS, AND ISN’T
to foil computing agents. Computer science is the study of computation—
Computational thinking will have become what can be computed and how to compute it.
ingrained in everyone’s lives when words like algo- Computational thinking thus has the following
rithm and precondition are part of everyone’s vocab- characteristics:

34 March 2006/Vol. 49, No. 3 COMMUNICATIONS OF THE ACM


Conceptualizing, not programming. Computer sci- Many people equate computer science with com-
ence is not computer programming. Thinking puter programming. Some parents see only a narrow
like a computer scientist means more than being range of job opportunities for their children who
able to program a computer. It requires thinking major in computer science. Many people think the
at multiple levels of abstraction; fundamental research in computer science is done
Fundamental, not rote skill. A fundamental skill is and that only the engineering remains. Computa-
something every human being must know to tional thinking is a grand vision to guide computer
function in modern society. Rote means a science educators, researchers, and practitioners as we
mechanical routine. Ironically, not until computer act to change society’s image of the field. We espe-
science solves the AI Grand Challenge of making cially need to reach the pre-college audience, includ-
computers think like humans will thinking be ing teachers, parents, and students, sending them
rote; two main messages:
A way that humans, not computers, think. Computa-
tional thinking is a way humans solve problems; Intellectually challenging and engaging scientific prob-
it is not trying to get humans to think like com- lems remain to be understood and solved. The prob-
puters. Computers are dull and boring; humans lem domain and solution domain are limited only
are clever and imaginative. We humans make by our own curiosity and creativity; and
computers exciting. Equipped with computing One can major in computer science and do anything.
devices, we use our cleverness to tackle problems One can major in English or mathematics and go
we would not dare take on before the age of com- on to a multitude of different careers. Ditto com-
puting and build systems with functionality lim- puter science. One can major in computer science
ited only by our imaginations; and go on to a career in medicine, law, business,
Complements and combines mathematical and engi- politics, any type of science or engineering, and
neering thinking. Computer science inherently even the arts.
draws on mathematical thinking, given that, like
all sciences, its formal foundations rest on mathe- Professors of computer science should teach a
matics. Computer science inherently draws on course called “Ways to Think Like a Computer Sci-
engineering thinking, given that we build systems entist” to college freshmen, making it available to
that interact with the real world. The constraints non-majors, not just to computer science majors. We
of the underlying computing device force com- should expose pre-college students to computational
puter scientists to think computationally, not just methods and models. Rather than bemoan the
mathematically. Being free to build virtual worlds decline of interest in computer science or the decline
enables us to engineer systems beyond the physi- in funding for research in computer science, we
cal world; should look to inspire the public’s interest in the
Ideas, not artifacts. It’s not just the software and intellectual adventure of the field. We’ll thus spread
hardware artifacts we produce that will be physi- the joy, awe, and power of computer science, aiming
cally present everywhere and touch our lives all to make computational thinking commonplace. c
the time, it will be the computational concepts
we use to approach and solve problems, manage Jeannette M. Wing (wing@cs.cmu.edu) is the President’s
our daily lives, and communicate and interact Professor of Computer Science in and head of the Computer Science
with other people; and Department at Carnegie Mellon University, Pittsburgh, PA.
For everyone, everywhere. Computational thinking
will be a reality when it is so integral to human
endeavors it disappears as an explicit philosophy. © 2006 ACM 0001-0782/06/0300 $5.00

COMMUNICATIONS OF THE ACM March 2006/Vol. 49, No. 3 35

You might also like