university.” Write an equation that represents the above statement. Use S for
the number of students and P for the
number of professors.
˲(Computer Programming Context): Given the following statement:
“There are six times as many students as professors at this university.” Write a computer program that
will output the number of students
when supplied (via user input) with
the number of professors. Use S for
the number of students and P for the
number of professors.
While the equation in both problems is the same—S=6P—significantly
more undergraduate engineering students provided the correct equation
in the Computer Programing Context
than in the Algebraic Context.
Vignette 2: Now, consider the following research finding (appearing in Norris and Soloway4):
˲ “[K– 12] Students using word processors for writing generally produce
longer, higher-quality writing than students using pencil or pen and paper.”
The computational tool plays a role in
students’ ability to write. We might say
that using professional writing tools
leads to performance that is more like
a professional writer. It is honest use of
the real thing.
Vignette 3: Now, consider the following comment:
˲ TikTok is the MOST downloaded
app on the Apple App Store. TikTok
supports users in making videos, including videos that play in synchrony
with other user videos. Video producers
collaborate around the world to make
duets, without ever meeting. Using TikTok is not about writing like a professional. Tik Tok is an entirely new medium, enabled by computation. It leads
to writing and saying differently than
one could without computation.
Vignette 4: Finally consider the following:
˲ Fortnite is one of the most successful video games of all time. In
playing Fortnite, players use a broad
range of computational tools to solve
significant problems, from map navigation, to team collaboration, to managing complex ecological systems.
Few children get the opportunity to
engage in these kinds of activities
in their everyday world outside of
the computer. The computational
environment allows students to en-
gage with complex and interesting
problems. We can ask if these are hon-
est versions of the problems, if stu-
dents have deep understanding of
what they are doing, and if they are de-
veloping skills for the real world—and
we should ask those questions.
The activity in Vignette 1 aligns with
the notion that computational thinking is embodied in computer programming. Vignette 2 shows us it is not just
programming that can impact thinking. A wide variety of computational
activities can impact thinking. In Vignettes 3 and 4, we argue these activities illustrate “computational thinking”—though the activities in those
vignettes have nothing to do with computer programming.
The users in those Vignettes are using computational tools to do computational thinking. They are using abstraction and decomposing problems,
though they may not use those words.
Much of the effort to implement computational thinking in schools has
been about identifying the computing
ideas and practices. Maybe the kids
are already learning those, but on different terms, without our language.
People of the so-called baby-boom-er generation may feel computational
thinking is something special—and
for them, it may well be. For the children growing up today, who are increasingly using digital tools to mediate their everyday lives, computational
thinking is, well, just thinking! But that
is just not enough. Learning to compute should give students a qualitative
leap, so that they can think about new
problems and think about the world in
How do we prepare our children
for never-seen-before problems? We
might start by redesigning TikTok
Whether and Wither
We already use computers to help many
kinds of thinking, but much of that
thinking would be the same without
computers. We might get expanded
thinking if we follow along the lines of
extending mathematics and systems
organizations to model complex situations that go beyond our commonsense
reasoning, as seen in many scientific,
engineering, medical, mathematical,
and literary fields. Computing simulations has already revolutionized many
fields. We might significantly impact
society if all fields used this expanded
thinking. So, there is a bird to be caught
if we can sprinkle salt on its tail.
A strong rubric is “making systems
about systems,” and this accords well
with the first ACM A.M Turing Award
winner Alan Perlis’ characterization of
our field as “The science of processes;
all processes.” A subset of these processes are primarily algorithmic in nature, but to deal with the large range
that computation can model, it is much
more apt to “think all systems” and to
see the representational possibilities
of the computer make it a great fit to be
the dynamic mathematics needed to
make and understand systems.
This is a much larger—and in our
opinion—much more useful characterization of computing as a subject in
K– 12, and it leads to a number of important differences from current practice.
The big one is to help children learn
about dynamic systems with interacting parts of all kinds, and how to make
and model dynamic systems for deeper
understanding (and considerable fun
also!) Imagine something as engaging
as Fortnite where the system is inspectable, where users might model their
strategies and test them in simulation
first, so that students might learn to use
the power of expanded thinking.
A modeling and simulation point
of view also serves to criticize the languages being taught today. For example,
none of the common K– 12 programming languages today are very good at
modeling intercommunicating processes—despite both natural and human engineered systems working that
way. Most of the languages that we put
in school today can only handle one
thread of control without ungraceful excursions into fragile and tricky designs.
How do we prepare
our children for