Remaining Trouble Spots with Computational Thinking: Addressing Unresolved Questions Concerning Computational Thinking
In this episode I unpack Denning’s (2017) publication titled “Remaining trouble spots with computational thinking: Addressing unresolved questions concerning computational thinking,” which answers three questions: what is computational thinking, how do we measure students’ computational abilities, and is computational thinking good for everyone?
-
Welcome back to another episode of the
CSK8 podcast my name is jared o'leary
each week of this podcast alternates
between an interview with a guest or
multiple guests and a solo episode where
i unpack some scholarship
in this week's particular episode i'm
unpacking a paper by peter denning
titled remaining trouble spots with
computational thinking
addressing unresolved questions
concerning computational thinking
there is no abstract for this particular
paper however if i were to summarize
this into a single sentence
i would say that this short article
answers three questions what is
computational thinking
how do we measure students computational
abilities and is computational thinking
good for everyone
this particular paper is available for
free and you can easily access it by
clicking on the title
in the show notes which you can find by
clicking the link in the description or
by going to jaredlery.com
and clicking on podcasts all right so
the paper begins with
the author describing some problems that
they see with computational thinking
that we as a field still need to address
at least at the time of writing in 2017.
here's a quote from page 33
quote around 2006 the promoters of the
cs4l k-12 education movement claimed all
people could benefit from thinking like
computer scientists
unfortunately in attempts to appeal to
other fields besides cs
they offered vague and confusing
definitions of computational thinking
as a result today's teachers and
education researchers struggle with
three main questions
what is computational thinking how can
it be assessed is it good for everyone
end quote so the author goes on to argue
that
basically these claims about the
benefits of computational thinking
are unsubstantiated and that there is a
problem with
over generalizing or broadening terms
such as algorithm
here's a quote again from page 33 quote
an algorithm is not any sequence of
steps but a series of steps that control
some abstract machine or computational
model without requiring human judgment
computational thinking includes
designing the model not just the steps
to control it
end quote now this is something that
i'll actually rant about at the end of
this particular podcast episode so stay
tuned
so continuing on with the intro the
author has some questions that i'm going
to
quote from page 34. so these questions
are related to
teachers who are k-12 teachers who are
unsure well exactly what is
computational thinking and here are some
of the questions that
the author poses so one is quote
how can they be effective if not sure
about what they are teaching and how to
assess it
end quote and a little bit further down
in the page
quote is it really true that any
sequence of steps is an algorithm
that procedures of daily life are
algorithms that people who use
computational tools will need to be
computational thinkers
that people who learn computational
thinking will be better problem solvers
in all fields
that computational thinking is superior
to other modes of thought end quote
okay so these are some excellent
questions that i too have been grappling
with and in fact the interview
with stacy mason and peter rich peter
actually recommended that i read this
article because it aligned with some of
the things that are saying
if you haven't listened to that episode
make sure you check it out i'll link to
it in the show notes
alright so the first main section
outside of the intro is the first
question what is computational thinking
so the author goes on to describe the a
very short summary of
basically the history of computational
thinking over the last several decades
and cites some sources as early as like
the 1940s however it wasn't
until 2006 when jeannette wing published
a paper
that conversational thinking really
started to have
some traction in the field and beyond
now the author notes that there are many
different definitions of computational
thinking and because of that
it is a problem for k-12 educators to
really be able to define what it is
because there's so many contradictory
ways of thinking about computational
thinking now
after this summary the author points out
two things that they see as problematic
about
the current pervasive definitions of
computational thinking
one is that there is an absence of
computation models within these
discussions
but here's a quote from pages 35 and 36
quote this is a mistake
we engage with abstraction decomposition
data representation and so forth in
order to get a model to accomplish
certain work
end quote so in other words you're not
just engaging in abstraction
for the sake of engaging in abstraction
or decomposition on its own
you're doing these things in order to
create some kind of a model at least
according to the author
so it's situating those skills or
understandings
within a context in which you are
creating a model
and i think this is a really important
thing for us to think about like are we
just doing these things because we think
decomposition is a good thing
well if so why are we calling it
decomposition if it is on its own
is it decomposition when it is only
related to computer science
or computational modeling that we are
engaging in what about in other fields
like if i'm learning how to use a new
drum technique is that decomposition
when i'm breaking it down into smaller
motions or things to understand i'd
argue they're two different things
and i'll rant about that later now the
second suggestion for this particular
question
is as follows here's a quote from page
contained in the operational definition
that any sequence of steps
constitutes an algorithm true an
algorithm is a series of steps
but the steps are not arbitrary they
must control some computational model
a step that requires human judgment has
never been considered to be an
algorithmic step
let us correct our computational
thinking guidelines to accurately
reflect the definition of an algorithm
otherwise we will miseducate our
children on the most basic idea
end quote totally resonates with me and
again i'll rant about that later
okay so the next section of the paper is
question two and that question is how do
we measure students computational
abilities
what the author is basically arguing is
that we tend to focus on computational
thinking as a knowledge
rather than as a skill that we use and
they would prefer that we see it as a
skill here's a quote from page 36
quote we test students knowledge but not
their competence or their sensibilities
thus it is possible that a student who
scores well on tests to explain and
illustrate abstraction
and decomposition can still be an
incompetent or insensitive algorithm
designer
end quote now they go on to argue that
this is problematic
and industry professionals know it which
is one of the reasons why they don't
just look at your diplomas in your
transcripts but they actually
engage in problem-solving interview
questions and tests and whatnot that you
have to complete in order to actually
work at the organization they want to
make sure that you don't just know
computational thinking or computer
science or coding or whatever
but can actually apply those
understandings in the context in which
you would need them for work
and so the author is arguing that we as
educators should focus on computational
thinking as
a competence that is being assessed not
just
a knowledge that was being assessed
here's a final quote from page 37
quote given that so much education is
formulated around students acquiring
knowledge
looking carefully at skill development
and computational thinking is a new and
challenging idea
we will benefit our students by learning
to approach and assess computational
thinking as a skill end quote
okay so so far here's a quick recap the
author has been arguing that we as a
field need to define what computational
thinking is
and they would prefer to see it include
or center around
modeling in other words applying
computational thinking for some kind of
a purpose
and that in order to measure these
things we need to measure the skills not
just the knowledge
kids need to be able to do something
with computational thinking not just
know what abstraction is
or how to decompose something
decontextualize from actual application
okay so the third question and the third
main section of this paper
is the question is computational
thinking good for everyone
according to the author they would argue
that
the claims around computational thinking
being good for everybody
are false and unsubstantiated and that
it is going off of this false premise
that quote experienced computational
designers believe they are sharper and
more
precise in their thinking and are better
problem solvers end quote from page 37.
now the author argues over the next
couple of pages that
yeah computational thinking is of use
for some professions
for people who design computations
however quote it is reasonable to
question
whether computational thinking is of
immediate use for professionals who do
not design computations
for example physicians surgeons
psychologists architects
artists lawyers ethicists realtors and
more
some of 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
end quote from pages 37 and 38. now in
arguments
one is an example of well do architects
who engage in cads and
develop vr do they actually need to
engage in computational thinking and
they argue
no not necessarily they might and
another argument
is that just engaging in computational
tools does not actually
develop computational thinking so they
point out this so called digital natives
and how
kids are using devices and whatnot all
the time but does that necessarily mean
they're engaging in computational
thinking
and the author argues and i would agree
that no
it does not guarantee they're actually
engaging in computational thinking
now going back to the argument of is
tying your shoes
considered to be an algorithm here's a
another claim that the author
argues against and this is from page 38
quote another claim suggested in the
operational definitions
is that computational thinking will help
people perform everyday procedural tasks
better for example
packing an app sac 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 conversational
thinker and vice versa
in quote from page 38 so in other words
just because we can call it
computational thinking it doesn't mean
you're engaging in computational
thinking
and the next claim that the debunk
related to is computational thinking
good for everyone
is the claim that computational thinking
will help in other subject areas now
there is no definitive
answer on this in fact they cite
guzzdal's 2015 report that basically
says there's no evidence to support this
that was at 2015 and this article was
written in 2017.
so there has been some preliminary
results that have
said well there might be a correlation
but we don't definitively actually know
whether or not engaging in coding or
computer science or computational
thinking
actually benefits students in those
subject areas
if anything we think it might not at
least detract from those
other subject areas in other words in
other words if you spend time on
computational thinking
it doesn't necessarily mean that it's
going to take away from your abilities
to perform in other classes
even though you're spending less time in
those other classes another lens that
i've seen some people use
is that hey if you're going to integrate
computational thinking within that
subject area it at least doesn't hurt
your ability to learn it
we don't actually know for sure does
this actually improve learning the
subject area
and if you have any articles that are
more recent and actually
point towards some causal relationships
please let me know i'd love to read them
see the author closes this particular
question by saying
basically that the people who benefit
from computational thinking are the
people who design
computations and that the claim that
other people outside
of like computer science computer
programming etc will find this
beneficial
the author argues that there's no
evidence to support that it's actually
beneficial
for people who are not actively engaging
in designing computations
so here's a quote that is from page 38
quote 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 end quote from
page 38
so in the conclusion of this particular
paper the author is basically saying
that computational thinking has been
promoted to say that oh
this is a great way for solving problems
and they say well
maybe but probably not because not
everybody who engages
in creating or designing a computation
is actually solving a problem they might
be doing it for the fun of it they might
be doing it out of concern
out of just a generic opportunity etc
check out page 39 for that argument
and on page 38 here's kind of a overall
summary of the paper itself
which is a good way to kind of close out
this description of this short paper
quote
my advice to teachers and education
researchers is use a ho's historically
well-grounded definition
and use competency-based skill
assessment 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
end quote that particular paragraph is a
really good summary of this paper itself
okay so at the end of these unpacking
scholarship episodes i'd like to
kind of share some of my lingering
questions or thoughts so
one lingering question that i have is
when is computational thinking a lens to
look through and when is it a process to
engage in
so this is kind of going back to the
skills versus understandings that the
author describes
in the second section of the paper so i
asked this question because i've seen
computational thinking used as a way
of thinking so you are going to look at
something
and you're going to create some
abstractions mentally of this thing but
you're not actually engaging in a
process you're not actually creating
thing you're not doing something
you're just kind of better understanding
which is fine that might be helpful
however i do like the
author's argument that we should situate
the computational thinking within
computational modeling so we're actually
creating something with it
and one of the reasons why i would argue
that is related to one of the final
points that the author mentions that
there are many
different ways of thinking through
things like why aren't we instead
thinking musically
or biologically or artistically or
whatever
like why is it assumed that
computational thinking is superior
in some way when it comes to problem
solving or whatever you're using it for
as a field i think that is something we
really need to kind of grapple with
all right so the next thought that i'll
share is kind of a rant that i have
so this is a rant that i actually wrote
down when giving some feedback to
california's k12 computer science
standards
in particular is for the standard k-2
dot ap 1-0 algorithms are sequences of
instructions that describe
how to complete a specific task students
create algorithms that reflect simple
life tasks inside and outside the
classroom
for example students could create
algorithms to represent daily routines
for getting ready for school
transitioning through center rotations
eating lunch and putting away
art materials students could then write
a narrative sequence of events
alternatively students could create a
game or dance with a specific set of
movements to reach an intentional goal
or objective
additionally students could create a map
of their neighborhood and give
step-by-step directions of how to get to
school
end quote all right so here's the
written feedback that i gave on this
particular one
quote i think the map example is the
best of the examples provided
however i would encourage creating an
example where kids actually create an
algorithm with code rather than
directions
i understand that ct researchers and
practitioners are trying to bring cs
discourse into other subject areas in
everyday life
but i respectfully disagree that there
is value added when we swap labels for
concepts
without consideration of context for
example wouldn't we refer to
step-by-step
processes as directions for navigating
an environment and a recipe for cooking
pasta
rather than an algorithm i understand
that semantically they can generally
mean the same thing
depending on the situated use however
the difference between social
i.e vernacular and specialized i.e math
cooking navigating and cs discourses
they draw from are very different
just because we can call something the
same thing it doesn't mean we should in
all cases
for example if we flipped the ct
narrative and started calling lines of
code recipes or scores
if borrowing from western european
classical music discourse
i would argue this is using a label out
of its proper context
i agree that kindergartners can follow a
sequence of step-by-step instructions or
processes throughout their day
however i see algorithm as having a more
specialized discursive use than the
vernacular
use of directions for example i might
say in algorithms like directions
which is like a recipe but they are
utilized in different contexts to mean
similar but slightly different things
step-by-step set of instructions for
preparing food which is different than
directions being step-by-step set of
instructions for navigating an
environment
which is different than algorithms being
step-by-step lines of code
for a computer processor to execute
which is different than an algorithm
being a step-by-step sequence of
mathematical symbols and numbers to
represent an
object in motion in quilt okay so that
was probably more feedback than they
wanted and they probably saw it and
ignored it however i wanted to share
that with you to just kind of
share some of my thoughts around
computational thinking and how
we really do need to consider the words
that we are using
and just kind of arbitrarily labeling
everything that resembles
computer science concepts as a computer
science concept is problematic
but that's just my thought and if you
disagree with me i'd happy to interview
and have you talk with me on this
podcast about
your thoughts on computational thinking
maybe we can create a panel of people
who strongly disagree with me
i hope you enjoyed this particular
episode i know it was a little bit
different than some of the unpacking
scholarship episodes
and i highly recommend checking out the
actual publication for this which again
you can find in the show notes
stay tuned next week for another
interview and two weeks from now from
another unpacking scholarship episode
hope you're all having a wonderful week
and are staying safe
Article
Denning, P. (2017). Remaining trouble spots with computational thinking: Addressing unresolved questions concerning computational thinking. Communications of the ACM 60(6), 33-39
My One Sentence Summary
This short article answers three questions: what is computational thinking, how do we measure students’ computational abilities, and is computational thinking good for everyone?
Some Of My Lingering Questions/Thoughts
When is computational thinking a lens to look through and when is it a process to engage in?
California’s Computer Science Standard K-2.AP.10: “Algorithms are sequences of instructions that describe how to complete a specific task. Students create algorithms that reflect simple life tasks inside and outside of the classroom. For example, students could create algorithms to represent daily routines for getting ready for school, transitioning through center rotations, eating lunch, and putting away art materials. Students could then write a narrative sequence of events. Alternatively, students could create a game or a dance with a specific set of movements to reach an intentional goal or objective. Additionally, students could create a map of their neighborhood and give step-by-step directions of how they get to school.”
My response: I think the map example is the best of the examples provided; however, I would encourage creating an example where kids actually create an algorithm with code rather than directions. I understand that CT researchers/practitioners are trying to bring CS discourse into other subject areas and everyday life, but I respectfully disagree that there is value added when we swap labels for concepts without consideration of context. For example, wouldn't we refer to the step-by-step processes as "directions" for navigating an environment and a "recipe" for cooking pasta rather than an "algorithm?" I understand that semantically they can generally mean the same thing depending on their situated use; however, the difference between social (i.e., vernacular) and specialized (i.e., math, cooking, navigating, and CS) discourses they draw from are very different. Just because we can call something the same thing, it doesn't mean we should in all cases. For example, if we flip the CT narrative and started calling lines of code "recipes" or "scores" (if borrowing from Western European classical music discourse), I would argue this is using a label out of its proper context. I agree that kindergartners follow a sequence of step-by-step instructions/processes throughout their day; however, I see "algorithm" as having a more specialized discursive use than the vernacular use of "directions." For me, I might say an "algorithm" is like "directions," which is like a "recipe," but they are utilized in different contexts to mean similar, but slightly different, things. For example, recipes are a step-by-step set of instructions for preparing food, which is different than directions being step-by-step set of instructions for navigating an environment, which is different than algorithms being step-by-step lines of code for a computer processor to execute, which is different than an algorithm being a step-by-step sequence of mathematical symbols and numbers to represent an object in motion.
Resources/Links Relevant to This Episode
Other podcast episodes that were mentioned or are relevant to this episode
A Revaluation of Computational Thinking in K–12 Education: Moving Toward Computational Literacies
In this episode I unpack Kafai and Proctor’s (2021) publication titled “A revaluation of computational thinking in K–12 education: Moving toward computational literacies,” which summarizes three key framings of computational thinking and proposes computational literacies in place of computational thinking.
Computational Literacies with Michael Horn
In this interview with Michael Horn, we discuss computational literacies vs computational thinking, power in literacy, cultural imperialism, the impact of programming language on identity, the intersections of music and CS, and so much more.
How to Get Started with Computer Science Education
In this episode I provide a framework for how districts and educators can get started with computer science education for free.
Mind the Gap: The Illusion of Skill Acquisition in Computational Thinking
In this episode I unpack Bao & Hosseini’s (2023) publication titled “Mind the gap: The illusion of skill acquisition in computational thinking,” which compares learning, perceptions of learning, and confidence among adult learners participating in interactive, video-based, and text-based learning.
Find other CS educators and resources by using the #CSK8 hashtag on Twitter