For some, computational thinking is careful reasoning about the methods of doing things that complements and combines mathematical and engineering thinking. The special relationship of computational thinking to mathematics is historical, but looking toward the future, computational thinking will be critical in the social and life sciences as well. Computational thinking currently plays an important role in psychology, linguistics, graphics, and economics and is playing an increasing role in complex engineering efforts such as nanoscience and health. Computational thinking will apply much more broadly than most of the other scientific modes of thought. The conceptual space to which computational thinking applies is much broader than most people imagine, and many of the advances are independent of the usual constraints on natural science.
Computational thinking is closely related to, but not identical with, mathematical thinking. Both are deeply involved with abstraction and reasoning with recognized simplified models. Gerald Sussman argued that computational thinking and mathematics both have an “underlying linguistic structure … [that is] language for precise descriptions and about how to do things and language describing the structure of things … such languages are essential to clear thinking. But mathematical thinking is
Below are the first 10 and last 10 pages of uncorrected machine-read text (when available) of this chapter, followed by the top 30 algorithmically extracted key phrases from the chapter as a whole.
Intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text on the opening pages of each chapter.
Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.
Do not use for reproduction, copying, pasting, or reading; exclusively for search engines.
OCR for page 33
3
Looking Outward
3.1 THE RELATIONSHIP OF COMPUTATIONAL
THINKING TO MATHEMATICS AND ENGINEERING
For some, computational thinking is careful reasoning about the
methods of doing things that complements and combines mathematical
and engineering thinking. The special relationship of computational think-
ing to mathematics is historical, but looking toward the future, compu-
tational thinking will be critical in the social and life sciences as well.
Computational thinking currently plays an important role in psychology,
linguistics, graphics, and economics and is playing an increasing role in
complex engineering efforts such as nanoscience and health. Computa-
tional thinking will apply much more broadly than most of the other
scientific modes of thought. The conceptual space to which computational
thinking applies is much broader than most people imagine, and many of
the advances are independent of the usual constraints on natural science.
3.1.1 Mathematical Thinking
Computational thinking is closely related to, but not identical with,
mathematical thinking. Both are deeply involved with abstraction and
reasoning with recognized simplified models. Gerald Sussman argued
that computational thinking and mathematics both have an “underlying
linguistic structure . . . [that is] language for precise descriptions and about
how to do things and language describing the structure of things . . . such
languages are essential to clear thinking. But mathematical thinking is
OCR for page 33
REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING
more about abstract structure than abstract methodology.” Jeannette Wing
also added the qualifier that while similar to mathematical thinking in
many respects, computational thinking does have to consider the physical
constraints of the underlying computer (whether machine or human).
Paulo Blikstein highlighted that since both mathematics and computa-
tional thinking are tools for representation, there may be an opportunity to
use computational thinking to represent complex processes and relation-
ships in a more comprehensible manner than mathematics. One example
he provided came from his observations of how engineering courses were
taught. He immediately noticed that within a common engineering course,
mathematical equations appear “approximately one every 2 minutes.”
Blikstein added that often these equations are around 10 variables long,
and insufficient time is allocated to actually explain the equations. He
thinks that “this speaks to the failure of one particular way to think about
knowledge and one way to represent knowledge, which is representing
knowledge as differential equations and mathematical forms in general.
. . . Computational representations might offer a lot of advantages over
mathematical representations that we might be able to explore.”
Sussman gave an example of teaching students how to analyze elec -
trical circuits. He noted that the typical pedagogical approach for this
problem is to teach the node method—which in practice many students
find difficult to implement in any practical way in solving problems in cir-
cuit theory. However, presenting students with a well-written computer
program designed to solve such problems as an expert would enable
them to internalize the program themselves and execute it much as that
expert would.
3.1.2 Engineering
Several workshop participants recognized an overlap between engi-
neering and computational thinking. Even if it is not formally accepted
in the engineering community, engineering schools are “doing a lot of
computational thinking,” said Blikstein. Wing argued that both compu-
tational thinkers and engineers think about design, constraints, safety,
performance, and efficiency. Design issues considered include “simplicity,
elegance, usability, modifiability, maintainability, and cost. Wing said that
“computational thinking is guided by particular concerns/constraints
such as speed, space, and power [and computational thinking is] more
like physics and engineering in this respect. . . . [It is] these kinds of con -
cerns that determine how good an abstraction is. When we are defining
abstractions, of course, it is very similar to engineering thinking.”
At the same time, computational thinking is unlike engineering. As
Wing pointed out, “In software we can basically do anything; we can
OCR for page 33
LOOKING OUTWARD
actually build virtual worlds that are unconstrained by physical reality.”
Sussman argued that as contrasted to engineering involving physical
objects, “computational thinking is engineering where we are not given
a hard time by the fact that the physical world produces tolerances, that
there is error in the construction of parts. As a consequence, instead of
being limited as we are in mechanical or electrical engineering by toler-
ances and that sort of thing, we are only limited by the things we can think
about, by the complexity that we can control in our minds.” In other words,
computational thinking invents the abstractions that it manipulates.
Peter Lee noted that several of the 14 engineering grand challenges
for the 21st century identified by the National Academy of Engineering
had a strong information technology/computer science/computational
thinking flavor to them. These included reverse engineering of the human
brain; advancing personalized learning; securing cyberspace; enhancing
virtual reality; advancing health informatics; and engineering the tools of
scientific discovery.1
One important aspect of the computational thinking–engineering
connection is managing complexity. Engineered systems are becoming
more and more complex. But Bill Wulf noted that software engineering
was arguably the first field to face challenges related to complexity, and
the need to manage complexity is important in computational thinking.
As noted in the Being Fluent with Information Technology report,2 manag-
ing complexity entails tradeoffs. For example, one solution to a problem
may involve complex design but entail straightforward implementation,
whereas another may involve a simple design but a costly implementa-
tion. A solution will often result in components of a system interacting in
complex, unexpected ways, and the resources available to implement a
solution may be inadequate. Managing such dimensions of a problem’s
solution is an exercise in managing complexity.
So I like to think about computational thinking as complementing and
combining mathematical and engineering thinking. For instance, we clearly
draw on mathematics as our foundations. We also draw on engineering,
since our systems actually operate in the real world.
—Jeanette Wing
1 See National Academy of Engineering, “Grand Challenges for Engineering.” Available
at http://www.engineeringchallenges.org/. Accessed December 28, 2009.
2 NRC, 1999, Being Fluent with Information Technology. Washington, D.C.: The National
Academies Press. Available at http://www.nap.edu/catalog.php?record_id=6482. Accessed
December 28, 2009.
OCR for page 33
REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING
3.2 DISCIPLINARy APPLICATIONS OF
COMPUTATIONAL THINKING
Workshop participants shared their experiences in applying compu-
tational thinking in different fields to illustrate how computational think -
ing might be relevant. Brian Blake described the exchange as “trying to
understand how computational thinking, as it is embedded in computer
science or computational fields, is used in noncomputational fields to
see how what we know in the computational field can be used in other
fields.” The hope was expressed that by describing some of these different
applications, it would be possible to identify concepts of computational
thinking through its application in one discipline that could be utilized
to benefit another discipline and indeed to better define and describe
computational thinking.
• Medicine and health care. Peter Lee described how sequencing
techniques commonly employed in computational thinking can help to
improve the chance of success in matching organ donors. On a small scale,
the task of cross-matching multiple donors and patients is a relatively
simple computational thinking exercise. At the large scale at which the
medical profession would need to perform these matches to improve
donation matching across the nation, this type of matching poses a sig -
nificant intellectual challenge for computational thinking practitioners.
Ian Foster noted that the medical profession is currently trying to cope
with enormous amounts of crucial but confidential data. This information
must be easily accessed and transferred among medical professionals
to improve care but protected from access and misuse by those outside
the medical profession. Foster argued that with the advent of health care
informatics, “health care is arguably no longer a medical problem, but a
computing problem.”
• Archeology. Edward Fox works with archeologists attempting to
look at trends across different excavation sites. He said that the archeolo-
gists he collaborates with have come to realize that “if you are going to
study archaeological trends across different areas, and the commerce that
takes place between sites, then you have to merge the data and you have
to use common terminology.” For example, archeology often depends on
archived data, where differences in recording protocols, terms, measure-
ment units, and languages make accessibility a challenge.3 Moreover,
archeological researchers need to organize large amounts of qualitative
data so that they can be retrieved computationally. Computational think-
ing approaches to information retrieval, data fusion, and information
3Dean R. Snow, Mark Gahegan, C. Lee Giles, Kenneth G. Hirth, George R. Milner, Prasenjit
Mitra, and James Z. Wang, 2009, “Cybertools and Archeology,” Science 311 (5763):958-959.
OCR for page 33
LOOKING OUTWARD
integration are especially useful in this area, since there is a need “to
classify and search for numerical, textual, and visual data simultane-
ously” and a need for “an e-science that marries the interconnectedness
of digital research tools with the introspection enabled by traditional
recordkeeping.”4
• Traffic engineering. Modern-day traffic lights are usually run by
computer systems that alternate traffic signals based on algorithms and
embedded sensors and networks. The most effective traffic algorithms
are built using data collected on traffic patterns and other relevant vari-
ables in order to optimize flow. The processes by which these algorithms
are developed and tested involve computational thinking. The methods
skilled drivers may use to navigate them also reflect computational think-
ing. Christopher Hoffmann noted the example of the veteran bus driver:
“The bus driver should know that if he steps on it [the gas pedal] too fast,
he gets stuck at the next traffic light anyway.”
• Cancer research. Peter Lee noted that agent-based modeling simu-
lations have helped researchers understand that a “tumor is not really a
simple group of cells that have their own agenda. They tend to live in
an environment where the cells nearby sort of form a nurturing matrix
for them and respond to various requests from the tumor for additional
blood vessels, for example, or nutrients or whatever. This is something
that invalidates a lot of the existing medical science and puts it more into
a systems-thinking context, something that I think we [computational
thinking scholars] can contribute to.”
• Public policy. An increasingly technology-based society creates
the need for techno-savvy policy makers. For example, important issues
related to information technology regarding privacy, copyright, and spec-
trum allocation are prominent on the public policy agenda, issues for
which an understanding of computational thinking is very helpful. Bob
Sproull illustrated the point by suggesting that a legislator might need an
understanding of computational thinking in order to be a smart customer
of a complicated IT system for the Social Security Administration or the
Internal Revenue Service.
• Music. Peter Lee described a summer program where young
students attempt to write computer programs that allow computers to
compose original music. The program challenged students to write a
“computer program that could compose or a machine that could take as
input some description of Bach and then produce beautiful music.” The
process of building such systems makes use of computational thinking in
three ways. First, it requires that a programmer analyze and decompose
4Dean R. Snow, Mark Gahegan, C. Lee Giles, Kenneth G. Hirth, George R. Milner, Prasenjit
Mitra, and James Z. Wang, 2009, “Cybertools and Archeology,” Science 311 (5763):958-959.
OCR for page 33
REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING
musical qualities into abstract computational thinking concepts. Second,
the program must construct algorithms and programming language that
access and demonstrate the aforementioned musical qualities artificially.
Finally, by observing this process of decomposition and composition, one
can learn more about human intelligence and problem-solving processes.
• Law. Kevin Ashley discussed four ways computational thinking
applications advance the legal practice: logic debugging, testing, model -
ing, and information retrieval.
—Debugging through the reduction or elimination of “syntactic
ambiguity” or “logical ambiguity” is almost always present in any
kind of legal drafting. Whether in statutes, contracts, or insurance
policies, unintentional ambiguities in legal language are common
and must be debugged. Ashley commented that this process involves
“getting the logic right, in a manner that’s kind of similar to what
computer programmers have to do in getting the logic right in a line
of code.”
—The development of good test cases reflects an important simi -
larity between computational and legal thinking—both test proposi -
tions (or statements) against test cases. “Test cases are important in
debugging in programming as well [as in law]—real and hypothetical
counterexamples, exceptions, things like that.” Ashley pointed out
that they can help a legal professional anticipate how successful an
argument is likely to be by simulating the application across various
test cases.
—Modeling complex legal processes and flows can help legal
professionals to understand “the flow of control through a statute,
for the process of statutory interpretation, for predicting outcomes,
for structured arguments.”
—Information retrieval techniques are needed for legal informa-
tion systems that can represent the justifications and context in a
reasonable way. Ashley pointed to the role of precedent, or relevant
preceding judgments in similar cases, in legal arguments. Computa-
tional thinking can help lawyers to develop good targeted searches
based on complex criteria.
Ashley also expressed a caution that computational thinking might lead
to over-mechanization of complex processes. “Legal problem solving is
highly context-dependent in ways that may not be anticipated. As a law
professor, I have to be very cautious about recommending computational
thinking to law students, because it might lead them to focus more on a
mechanical application of a predefined method rather than on the context
and the opportunities in the actual problem to be solved. I have an obliga-
OCR for page 33
LOOKING OUTWARD
tion not to mislead. We don’t want mechanical jurisprudence here. I think
this caution probably applies in a lot of other areas as well.”
• Al Aho referred to Christos Papadimitriou’s talk “The Algorithmic
Lens: How the Computational Perspective Is Transforming the Sciences” 5
as an exemplar of a compelling story about the power of computational
thinking. Briefly, Papadimitriou presented a number of vignettes from
mathematics, physics, biology, economics, and social science to show the
unifying power of computation across these disciplines:
—In mathematics, the classic P versus NP from theoretical com-
puter science was named as one of the seven Clay Institute Millen-
nium Problems,6 which pose the deepest, most fundamental, and
consequential open problems in the field.
—In physics, quantum computation provides a method for
exploring and testing the limits of quantum mechanics. Further, how
phase transitions can be explained in statistical mechanics turns out to
have deep similarities to the way that certain randomized algorithms
converge exponentially faster when their parameters are in the right
range (analogous to the temperature/pressure of a physical system
being at the critical point of a transition).
—In biology, understanding the mechanism of evolution can be
productively approached as an algorithmic problem. Using optimiza-
tion theory and search to compare simulated annealing and genetic
algorithms as ways to sketch landscapes of fitness functions, it can be
shown that genetic algorithms tend to find plateaus in the landscape,
while simulated annealing finds peaks. Plateaus in the landscape
have the characteristic of being relatively broad and thus relatively
stable for many genetic combinations. Since simulated annealing is
analogous to asexual reproduction and genetic algorithms to sexual
reproduction, this approach suggests that rather than maximization
of fitness, sexual reproduction favors adequacy, or more specifically
the ability of a genetic variant to function adequately in the presence
of a wide variety of genetic partners.
—In economics and social science, the Internet—an IT artifact
constructed but never designed—must be studied using the methods
of natural science (e.g., observation and experimentation) and in the
context of the complex social system it enables and serves. It is thus
an ideal test bed for sociological analysis and experimentation.
5 Christos H. Papadimitriou, 2009, “The Algorithmic Lens: How the Computational Per-
spective Is Transforming the Sciences.” Available at http://www.scivee.tv/node/10204.
Accessed December 28, 2009.
6 For more information see Clay Mathematice Institute, “P vs NP Problem,” available at
http://www.claymath.org/millennium/P_vs_NP/, accessed December 28, 2009.
OCR for page 33
0 REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING
Complementing these perspectives, a number of participants includ-
ing Bob Constable noted the importance of acknowledging a two-way
street for connecting computational thinking to various disciplines. That
is, it is not only that other disciplines can benefit from the use of compu-
tational thinking in their respective domains—it is also the case that the
computer science and information science disciplines from which much of
computational thinking is derived benefit from understanding the basis
of knowledge creation in those other disciplines. Indeed, those other disci-
plines provide a context for computational thinking that often leads to new
discoveries in computer science and information science themselves.
3.3 COMPUTATIONAL THINKING ACROSS
DIFFERENT DISCIPLINES
The subsections below are organized around different elements of
computational thinking that have widespread application in multiple
disciplines.
3.3.1 Problem Solving/Debugging
Several speakers emphasized debugging of systems as an important
application of computational thinking. In the real world, people often
encounter systems with which they are unfamiliar and whose internal
workings they do not understand. Robert Sproull pointed out that when
humans encounter such systems, they often attempt to establish “a known
state” of the system or a state of functionality that they find familiar or
intuitive. This behavior is an aspect of modeling the unfamiliar system in
their minds, despite the fact they may not necessarily know what sorts of
algorithms are inside.
To develop these models and identify known states, an individual
(or group) builds on previous experience and encounters with similar
systems to generate hypotheses about how it works, about what its parts
are, and so on. Debugging can then be done in a variety of ways. One can,
for instance, adjust parameter settings to attempt to debug a system.
You know something about debugging that you have learned from dealing
with even more complex things. It carries over as a set of techniques, not
just because it was your computer program that you were debugging rather
than a dishwasher.
—Robert Sproull
OCR for page 33
LOOKING OUTWARD
3.3.2 Testing
In the sense used here, testing refers to empirical activities that provide
information about whether and how a software artifact or system performs
in accordance with its performance requirements. For all but the simplest
artifacts, it is not feasible to test a system for all possible inputs, and so
good testing procedures call for test suites, which generally involve typi-
cal cases, boundary cases, and potential failure conditions. For a listing
of different kinds of testing appropriate at different stages in an artifact’s
lifetime, see http://www.softwareqatest.com/qatfaq1.html#FAQ1_10.
Children encounter many opportunities to engage in testing. One
participant used the example of a robotics competition to explain how
students engage in testing. Robots are designed to perform specific tasks,
and designers must test their performance. Even if there is no computing
inside the robot, Sproull noted, “even if it’s just a joystick driving a servo,
you have to figure out how to test it.”
3.3.3 Data Mining and Information Retrieval
Popular culture often describes the modern society in a constant state
of information overload. Computational thinking provides intellectual
tools to help manage information. For example, a computational thinker
will understand a variety of ways for retrieving information. Edward Fox
commented that computational thinking can help people who are access-
ing lots of information from a number of data sources to represent it in
some common way and to find ways to communicate their results.
3.3.4 Concurrency and Parallelism
Ursula Wolz described a number of ways to expose students to the
computational concepts of concurrency and parallelism. For example,
a college junior majoring in music took Wolz’s introductory course to
fulfill a quantitative reasoning requirement. Wolz’s course uses Scratch,
an application for manipulating animated characters, and according to
Wolz, “the first thing he ran up against was the problem of synchronicity
between music and animation.” With a few simple examples (offered by
a more advanced student), the music major said, “I get it.” Wolz offered
a second example of a sixth-grade student who worked on animation of
comparable sophistication using PowerPoint. In both cases, Wolz sug-
gested that their successes in understanding concurrency and parallelism
were due not so much to the Scratch graphical environment as to the
metaphors that help convey understanding of the underlying concept.
Mitchel Resnick described a simple programming exercise in which
the user choreographs a dance for an animated cat. The “code” is struc -
OCR for page 33
REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING
tured to represent interlocking blocks. Each block contains a specific set
of instructions. For example, if a user wants the sound of drums followed
by the cat moving forward, then she would take the drum block, inter-
lock the forward step block, and indicate the number of steps forward.
In this particular activity, users can see for themselves how program -
ming, sequencing, algorithmic thinking, and parallel thinking play out.
In Resnick’s words, “Parallelism comes very naturally. If I say, while it’s
doing that, I also want to keep changing the color . . . [then] I just have
another stack that says I want to forever change the color. So it takes some
of the computational ideas of sequencing, and parallelism, and tries to
make it very easy to put together and explore these ideas.”
3.3.5 Modeling
To illustrate computational thinking, Mitchel Resnick used a personal
example based on his standing Monday tennis match. Every week, he and
his partner Ken record who wins how many games in each set, the number
of games, and the number of sets. At the end of the year, they have a record
of the number of games and the number of sets that each player won. One
year, they noticed that Ken had won 54 percent of the games but 71 percent
of the sets, and they asked, “What’s the explanation behind that?”
Coming from very different disciplines—Ken in biology and Mitchel in
computer science/education—each player conceptualized and approached
this question very differently. Ken’s explanation the next week was based
on handwritten calculations involving expansions of a binomial expres-
sion. Mitchel’s explanation was based on a simulation of matches and
replicating the data using children’s instructional software called Scratch.
The program was developed to determine “randomly for each game that
Ken has a 55 percent chance of winning [and] I have a 45 percent chance
of winning.” As the simulation was repeatedly run, the total wins-to-losses
ratio closely reflected the real-life outcome.
More generally, modeling is a means by which one represents a sys-
tem or a process in order to learn more about it and manage complex -
ity. One participant mentioned the power of computational thinking to
improve the effective development of complex models through knowl-
edge of scale. Peter Lee argued that a computational thinker “under-
stands the consequences of scale” and can thus “think very big and very
small and understand the tipping points at each point.” As more data are
gathered, the more sophisticated the model one can build to describe a
system. If there is sufficient fidelity in a model, one can perform necessary
testing within the model itself. Computers and computation can dramati -
cally increase the amount of data represented in these models and thus
a model’s fidelity. An example using computational thinking to model
plane crash testing is shown in Figure 3.1.
OCR for page 33
LOOKING OUTWARD
FIGURE 3.1 Modeling of an airplane crash. (Top) Image of a crash test measur-
ing the force of impact on an actual F-4 Phantom airplane; image courtesy of
Sandia National Laboratories. (Bottom) Image of a computational model of the
force of impact on an aircraft; image courtesy of Christopher Hoffmann, Purdue
University.
OCR for page 33
REPORT OF A WORKSHOP ON COMPUTATIONAL THINKING
Paulo Blikstein complemented this perspective when he described
bifocal modeling, wherein the physical and the virtual were blended in
models, sometimes by using the physical world as inputs to a model, by
calibrating a model, or by comparing the output of model mechanisms to
sensor data. He argued that such blending was becoming more common
in the practice of science and was also a powerful means of engaging
students.
Yasmin Kafai noted an example of the importance of understanding
models and their limitations: “Government authorities often use models to
make predictions, but people often don’t understand how these models
were made, what the parameters are, or what kind of assumptions are
underlying them . . . here we have a really great example . . . [in talking]
about computational thinking for everyone and kind of as a goal for
citizenship [in] that citizens need to also understand how decisions are
being made and what some of the pitfalls in the models will be.” Wilensky
added that computational thinking involves more than using models,
experimenting with models, or even constructing them; it also involves
creating a culture of model critique.