Conclusion
Promoters of computer science have
long believed computational thinking is good for everyone. The definition of computational thinking
evolved over 60 years applies mainly
to those involved in designing computations whether in computer science or in other fields. The promoters
of computer-science-for-all, believing that “designing computations” is
an insular computer science activity,
sought a broader, more encompassing definition to fit their aspiration.
The result was a vague definition that
targeted not only designers but all users of computational tools, anyone
engaging in step-by-step procedures,
and anyone engaging in a practice
that could potentially be automated.
Teachers who find the vagueness confusing have asked for a more precise
definition that also clarifies how to
assess student learning of computational thinking.
My advice to teachers and education researchers is: use Aho’s historically well-grounded definition and use
competency-based skill assessments to
measure student progress. Be wary of
the claim of universal value, for it has
little empirical support and draws you
back to the vague definitions. Focus on
helping students learn to design useful
and reliable computations in various
domains of interest to them. Leave the
more advanced levels of computational
design for education in the fields that
rely heavily on computing.
In the late 1990s, we in computer
science (including me) believed ev-
eryone should learn object-oriented
programming. We persuaded the Ed-
ucational Testing Service to change
the Advanced Placement curriculum
to an object-oriented curriculum. It
was a disaster. I am now wary of be-
lieving that what looks good to me as
a computer scientist is good for ev-
eryone. The proposed curriculum for
computational thinking looks a lot
like an extended object-oriented cur-
riculum. This is not a good start for
a movement aiming to define some-
thing greater than programming. Ear-
ly warnings that the object-oriented
vision was not working came from
the front-line teachers who did not
understand it, did not know how to
assess it, and could not articulate the
dence but have not found any. One
of the most notable studies, by Pea
and Kurland in 1984, found little
evidence that learning programming
in Logo helped students’ math or
general cognitive abilities. In 1997,
Koschmann weighed in with more
of the same doubts and debunked
a new claim that learning program-
ming is good for children just as
learning Latin once was.
20 (There
was never any evidence that learning
Latin helped children improve life
skills.) Mark Guzdial reviewed all the
evidence available by 2015 and reaf-
firmed there is no evidence to support
the claim.
14
Guzdial does note that teachers can
design education programs that help
students in other domains learn a small
core of programming that will teach
enough computational thinking to help
them design tools in their own domains.
They do not need to learn the competencies of software developers to be useful.
Finally, it is worth noting that educators have long promoted a large number of different kinds of thinking: engineering thinking, science thinking,
economics thinking, systems thinking, logical thinking, rational thinking, network thinking, ethical thinking, design thinking, critical thinking,
and more. Each academic field claims
its own way of thinking. What makes
computational thinking better than
the multitude of other kinds of thinking? I do not have an answer.
My conclusion is that computational thinking primarily benefits people
who design computations and that the
claims of benefit to non-designers are
not substantiated.
these professionals may become computational designers when they modify
tools, for example by adding scripts to
document searchers—but not everybody. It would be useful to see some
studies of how essential computational thinking is in those professions.
Another claim suggested in the operational definitions is that users of
computational tools will develop computational thinking. An architect who
uses a CAD (computer aided design)
tool to draw blueprints of a new building and a VR (virtual reality) tool to allow users to take simulated tours in
the new building can set up the CAD
and VR tools without engaging in computational thinking. The architect is
judged not for skill in computational
thinking but for design, esthetics, reliability, safety, and usability.f Similar
conclusions hold for doctors using diagnostic systems, artists drawing programs , lawyers document searchers,
police virtual reality trainers, and realtors house-price maps. Have you noticed that our youthful “digital natives”
are all expert users of mobile devices,
apps, online commerce, and social
media but yet are not computational
thinkers? As far as I can tell, few people
accept this claim. It would be well to
amend the operational definitions to
remove the suggestion.
Another claim suggested in the
operational definitions is that computational thinking will help people
perform everyday procedural tasks
better—for example, packing a knapsack, caching needed items close by, or
sorting a list of customers. There is no
evidence to support this claim. Being a
skilled performer of actions that could
be computational does not necessarily
make you a computational thinker and
vice versa.
13, 14 This claim is related to
the idea I criticized earlier, that any sequence of steps is an algorithm.
The boldest claim of all is that
computational thinking enhances
general cognitive skills that will transfer to other domains where they will
manifest as superior problem-solving
skills.
3, 37 Many education researchers have searched for supporting evi-
f If the architect were to specify how to erect the
building by assembling 3D printed parts in a
precise sequence, we could say the architect
thought computationally for the manufacturing aspect but not for the whole design.
Underlying all
the claims is
an assumption
that the goal of
computational
thinking is
to solve problems.