recognize the same truth when they say
that computation is an essential method of doing science. In fact, a growing
number of scientists are now saying
that information processes occur naturally (for example, DNA transcription) and that computation is needed
to understand and eventually control
them. 3 So computation is unavoidable
not only in the method of study, but in
what is studied.
This is a subtle but important distinction. Computation is present in
nature even when scientists are not observing it or thinking about it. Computation is more fundamental than computational thinking. For this reason
alone, computational thinking seems
like an inadequate characterization of
A number of us developed a great
principles framework that exposes
the fundamental scientific principles
of computing4, 6 (see the sidebar “The
Great Principles Framework”). This
framework interprets computer science as the study of fundamental properties of information processes, both
natural and artificial. Computers are
the tool, not the object of study. Computation pervades everyday life. 2
The great principles framework
reveals that there is something even
more fundamental than an algorithm:
the representation. Representations
convey information. A computation is
an evolving representation and an algorithm is a representation of a method to control the evolution.
In this framework, computational
thinking is not a principle; it is a practice. A practice is a way of doing things
the real value of
is in the offers we
are able to make
from our expertise,
which is founded
in a rich and deep
at which we can develop various levels
of skill. Computational thinking is one
of several key practices at which every
computer scientist should be competent (see the sidebar “The Great Principles Framework”). It shortchanges
computer science to try to characterize
the field by mentioning only one essential practice without mentioning the
others or the principles of the field.
Computation is widely accepted as a
lens for looking at the world. We do not
need to sell that idea. Computational
thinking is one of the key practices of
computer science. But it is not unique
to computing and is not adequate to
portray the whole of the field.
In the 1960s and 1970s we allowed,
and even encouraged, the perception
“CS = programming,” which is now to
our dismay widely accepted outside the
field and is connected with our inabil-
ity to take care of the concerns listed at
the beginning of this column. But given the outside perception, computational thinking is all too easily seen as a
repackaging—a change of appearance
but not of substance. Do we really want
to replace that older notion with “CS =
computational thinking”? A colleague
from another field recently said to me:
“You computer scientists are hungry!
First you wanted us to take your courses
on literacy and fluency. Now you want
us to think like you!”
I suggest that the real value of computer science is in the offers we are able
to make from our expertise, which is
founded in a rich and deep discourse.
We are valued at the table when we
help the others solve problems they
care about. We are most valued not for
our computational thinking, but for
our computational doing.
1. carnegie mellon university center for computational
22. computer science unplugged Web site; http://
33. Denning, P. computing is a natural science. Commun.
ACM 50, 7 (July 2007), 13–18.
44. Denning, P. great principles of computing. Commun.
ACM 46, 11 (nov. 2003), 15–20.
5. Denning, P. is computer science science? Commun.
ACM 48, 4 (apr. 2005), 27–31.
6. great Principles of computing Web site; http://
7. Wilson, k.g. grand challenges to computational
science. in Future Generation Computer Systems.
elsevier, 1989, 171–189.
8. Wing, J. computational thinking. Commun. ACM 49, 3
(mar. 2006), 33–35.
9. Wing, J. five deep questions in computing. Commun.
ACM 51, 1 (Jan. 2008), 58–60.
Peter J. Denning ( email@example.com) is the director of the
cebrowski institute for information innovation and
superiority at the naval Postgraduate school in monterey,
ca, and is a past president of acm.
copyright held by author.
The Great Principles Framework
the Great Principles (GP)
framework is a way to express
computer science as a field
of science based on deep
and enduring fundamental
3, 4, 6 the framework
has two parts: core principles
and core practices.
the core principles are
statements and stories about
the immutable laws and
recurrences that shape and
constrain all computing
technologies. they can be
grouped into seven categories:
these are not mutually
exclusive groups of principles,
but windows that bring
particular perspectives about
computing. the Internet, for
example, is a technology that
draws its operating principles
primarily from communication,
coordination, and recollection,
and its architecture from design
the core practices are areas
of skill and ability at which
computing people can display
various levels of performance
such as beginner, competent,
and expert. there are four core
• Engineering of systems
can be seen either as a style of
thought that runs through the
practices or as a fifth practice.
It is the ability to interpret
the world as algorithmically
controlled conversions of inputs