Computational Thinking for Youth in Practice
In this episode I unpack Lee et al.’s (2011) publication titled “Computational thinking for youth in practice,” which provides examples of how middle and high school youth engage in computational thinking and introduces the “use-modify-create” framework (a three-stage progression through computational thinking).
-
Welcome back to another episode of the
CSK8 podcast my name is Jared O'Leary
in this week's episode I'm unpacking the
paper titled computational thinking for
youth in practice which was written by
Irene Lee Fred Martin Jill dinner
Bob Coulter Walter Allen Jerry Erickson
Joyce Malin Smith and Linda Warner as
always you can find a link to this paper
in the show notes which you can find in
the app that you're listening to this on
or by visiting jared O'Leary comm and
all of the authors that have Google
Scholar profiles I have a link on their
name so you can click it and you can
read more papers by these authors which
I highly recommend I've met many of
these authors and they are doing some
great work in the areas of computational
thinking alright so here's the abstract
for the paper quote computational
thinking CT has been described as the
use of abstraction automation and
analysis in problem solving we examine
how these ways of thinking take shape
for middle and high school youth in a
set of NSF supported programs we discuss
opportunities and challenges in both in
school and after-school context based on
these observations represent a use
modify create framework representing
three phases of students as cognitive
and practical activity and computational
thinking
we recommend continued investment in the
development of CT rich learning
environments in educators who can
facilitate their use and in research on
the broader value of computational
thinking in quote ok so my one sentence
summary for this is that this paper
provides examples of how middle and high
school youth engage in computational
thinking and it introduces the use
modify creates framework which consists
of three stages of engagement for
computational thinking in particular the
examples draw from modeling and
simulation robotics and game design and
development so the paper I'm unpacking
today is what was referenced in the
episode two weeks ago on the scratch on
car curriculum so there are two key
questions that guide this short article
quote what does computational thinking
for youth look like in practice how can
we support growth in computational
thinking both in and out of school
unquote that's from page 32 so the paper
begins with an intro to CT
which was a term coined by a Jeannette
wing and I've talked about this in
previous episodes multiple months back
so here's a quote from page 32 quote
thinking computationally draws on the
concepts that are fundamental to
computer science and involves
systematically and efficiently
processing information and tasks CT
involves defining understanding and
solving problems reasoning at multiple
levels of abstraction understanding and
applying automation and analyzing the
appropriateness of the abstractions made
CT shares elements with various other
types of thinking such as algorithmic
thinking engineering thinking design
thinking and mathematical thinking in
quote so the authors in this paper
identify abstraction automation and
analysis as three key ways of using
computational thinking to solve problems
now some of the other episodes that I've
talked about computational thinking they
include some other ones but this one
just focuses on those three so here's a
definition of each of those quote
abstraction is the process of
generalizing from specific instances in
problem-solving abstraction may take the
form of stripping down a problem to what
is believed to be its bare essentials
abstraction is also commonly defined as
the capturing of common characteristics
or actions into one set that can be used
to represent all other instances in
quote here's their definition of
automation quote automation is a
labor-saving process in which a computer
is instructed to execute a set of
repetitive tasks quickly and efficiently
compared to the processing power of a
human in this light computer programs
are automations of abstractions in quote
and finally here's their definition of
analysis both analysis is a reflective
practice that refers to the validation
of whether the abstractions made were
correct one might ask where the right
assumptions made when narrowing the
problem to its bare essentials where
important factors left out or is the
implementation of the abstraction or
automation faulty in quote so all of
those quotes or definitions were from
page 33 also on page 33 is a helpful
table that demonstrates what each of the
three areas of CT look like in two
domains which again you can actually
find a copy of this paper by searching
for it and I include a link in the show
notes alright so now I'm going to get
into the three domains that they looked
at so again these were all NSF funded
programs so these occurred within
formalized educational context or
settings so the first domain was
modeling and simulation so project guts
is a program for middle school students
and guts is an acronym for growing up
thinking scientifically the projects
that middle school students tended to
engage with focused on using abstraction
to narrow down relevant problems and
real-world problems into computer
generated simulations that they could
actually then use to answer student
created problems which i think is really
cool so here's an example that's
particularly relevant to current events
at the time of this recording quote as
part of the project guts unit on
epidemiology a group of students wanted
to know if a disease would spread
throughout their school population given
the layout of the school the number of
students the movement of the students
the violence of the disease and the
number of students initially infected in
quote that's on page 33 not sure if
actually pronounce virulence correctly
so feel free to hit me up if I say that
wrong so in addition to using
abstraction to create models of the
spread of this potential disease they
were able to automate it to simulate
randomly generated scenarios which
students could then analyze to
understand the potential spread of a
contagion within a school population now
this article is written in 2011 but
project guts is still around so if this
particular project is still available I
honestly can't think of a more timely
project to engage in at the moment of
this recording where most people are in
some form of quarantine or lockdown due
to kovat 19 and again in the show notes
I linked directly to project guts as
well as all the other projects that I'm
going to talk about or platforms that
I'll talk about in a moment and other
domains so speaking of in the second
domain which was robotics they explored
the AI code program which stands for
internet community of design engineers
is for middle and high school students
engaging in quote a variety of
microcontroller based projects beginning
with a simple project with programmable
flashing lamps to a musical memory game
to full autonomous self controlled
robots that enter a contest in quote s
from page 34 so within this domain
abstraction occurred when students
designed robots that had to respond to a
limited set of conditions encountered
within a contest which was a physical
environment in particular students had
to quote think about how to sense the
world and how those stimuli will be
abstracted as numerical or true/false
values inside the control program in
quote page 34 so in other words they
might have to think about distance which
could be like how close or far something
is or true or false like if there is
nothing in front of me move forward
otherwise turn to the right or something
like that so automation occurred when
the robots ran the code that caused them
to move autonomously this again
automation is essentially running the
abstractions that they created like
moving straight or backing up or turning
in a different direction or things like
that and then the analysis occurred when
students had to determine whether the
robot navigated the environment as
expected and determine which conditions
were not accounted for during the
abstraction phase so even though we
might create a storyboard and think
through all a different way is that the
robot might even get and navigate in the
environment once you run the automation
you might go oh wait we forgot about
this conditioning or this particular
scenario and then you have to analyze it
and figure out okay what other
abstractions didn't we need to change or
add or things like that now even though
this was in the physical robotic domain
this is something that I regularly
witnessed and the software side of
things when kids would create their own
games or apps or whatever
now speaking of game designs the third
domain is game design and development so
in the eye game after-school program
middle school students use the program
storytelling Alice to create 3d
animations for games
so students created abstractions of
motion by creating methods or functions
that cause a sprite to move in a
particular way now by the way if you're
new to
the terminology methods and functions
are often interchangeable depending on
what language you're talking them out so
some languages refer to a function as a
method and other language refers to as a
method as a function and some consider
them to be two different things and if
that's too nerdy for you don't worry
about it when the code is executed this
automates the movements of the sprites
and again students analyze whether their
abstractions worked as intended so for
example if they're doing an animation of
somebody throwing a baseball or
something so they want to have the
motion of the arm moving in a realistic
way ideally or maybe in a comical way
haneda now the author's mentioned that
when analyzing an abstraction that they
often analyze for correctness and
efficiency there's a quote that unpacks
what that means
so quote analysis of correctness focuses
on whether they produced the game they
intended ie whether the game plays the
way they want it to or whether the game
that was designed to be fun was in fact
fun analysis of efficiency involves
creating the simplest code to achieve
the desired behavior in quote page 34 so
analysis takes place throughout the
overall process as testing and debugging
are prevalent
however quote students often need an
external motivator to focus on
efficiency because when their game is
working they see little reason to edit
the code in quote page 34 now I too have
found similar findings in the classes I
used to facilitate if I notice that kids
were working on a project like let's say
a quiz game where if the person gets the
answer correctly they'd get a point or
if they guessed it incorrectly they'd
lose a point and then it move on to the
next question I might go up to a kid and
be like hey that's really cool code want
me to show you a simpler way that you
can do that and I'd show them something
that allows them to kind of automate
some of those processes or turn them
into functions so they don't have to
keep writing the same code over and over
and kids would look at that and be like
cool that's neat but I'm gonna keep
doing it my way and honestly it just
meant that they were gonna practice
writing it one way it works the same we
didn't have to worry about memory or
speed or things like that in the
particular platforms that they were
using so R was cool with it however if
you want them to focus on efficiency you
might actually have to enforce it or
find some kind of a
fun way to make a challenge of how can
we make it so that you use the least
amount of code possible for example who
can make a fun game with the least
amount of code which by the way I went
to Magfest which is a music and gaming
festival in January and one of these
sessions that I went to was on creating
games art animation etc using a very
small amount of code like enough code
that you could actually tweet it out in
a single tweet one of the things that I
would say is that this could lead to
some really interesting projects in CS
k-8 so for example like who can create a
game with the least amount of code if
you are interested in learning more
about that you can go to websites like
Twitter dotnet DWI tter or searching for
hashtags like json' k which is for
JavaScript 1000 in terms of memory or
searching for hash tag tiny code and
I'll include links to those in the show
notes again maybe engaging in those
resources that relate to you using a
small amount of code maybe that'll give
you some ideas for how you can encourage
efficiency when writing code which again
not all kids are interested in
efficiency when it comes to the code if
they already have something that's
working as intended now at the end of
this section they do mention that there
are other domains that computational
thinking can be applied to however they
only unpack those three that I just
discussed so the next section is on
supporting growth in computational
thinking so the authors encourage
educators to provide rich computational
environments which are environments
quote in which the underlying
abstractions and mechanisms can be
inspected manipulated and customized in
quote on page 35 so an example that the
author's provide is thinking about the
distinction between the videogame Sim
City which is a city builder simulator
and the simulator starlogo TNG now in
SimCity the underlying game mechanics
are hidden from the player however
starlogo
allows users to quote look under the
hood and inspect the causal
relationships and abstractions that are
embedded in a model in quote it's on
page 35 in other words in SimCity you
don't necessarily know what code is
causing things to occur within the game
or what kind of abstractions or
functions or methods or
going on behind the scenes so for
example using star logo in the contagion
project that was through project guts
that I mentioned in the first domain on
modeling and simulation so the next
section is the thing that I referred to
in the previous unpacking scholarship
episode so the author's proposed a three
stage progression that they call use
modify create which is based on their
analysis of youth engagement through
increasingly scaffolded in deep
interactions across these various NSF
projects so the authors suggest that the
use stage is like the consumer stage
where learners are playing a game or
using an application the modify stage
begins to use some abstraction and
automation to tinker with or modify a
program or a model or a game and the
create stage is when learners begin to
create their own expressions that
incorporate the various aspects of
computational thinking that they define
as abstraction automation and analysis
and they suggest that learners do so
within a cycle of testing analyzing and
refining the authors also point out the
idea that the stages progress through
more cognitively demanding challenges
which tend to progress along the
continuum from using to modifying to
creating so this gets to some of my
lingering questions or thoughts
so although the authors do mention that
this three-stage progression exists on a
continuum and that quote there are no
clean break points from using to
modifying to creating in quote page 35
I'm curious how much time should someone
spend using modifying and creating
before moving to another stage and who
gets that determine when a learner moves
between those stages it's not that I'm
asking for a formula of you have to
spend five minutes doing this and 20
minutes doing this and then you can
suddenly move on to the next thing like
that's not what I'm asking about I'm
just kind of curious like in general for
different kinds of engagement and for
different age groups or different types
of projects or languages or platforms or
whatever how much time do people tend to
spend on it and are we in fact spending
a good amount of time in it in our
classes this is in general a lot of CS
educators feel pressed for time and that
there's like so much that we can do but
we just don't have enough time in the
day to do it so if that's the case are
we in fact like
breezing by on the use stage faster than
we should and going through the modify
stage faster than we should just so we
can get to the crate stage and the
second half of the question is who gets
to determine when a learner moves
between the stages so the reason why I'm
asking that are just kind of curious
about it is because if kids are the ones
determining that what if they decide to
stay on one stage for an entire year or
multiple years or what if they decide to
do it for only five minutes when really
they probably should have spent at least
a couple of hours in one particular
stage if it's the teacher or adult
facilitator or whatever that is
determining this or an assessments
that's determining this what if the kid
doesn't want to move on to the next
stage what do we do then and if we're
going to have it so that's the kids are
kind of picking their own pace and able
to move between the stages when they
feel ready or comfortable how might we
facilitate a group of learners who are
all spending a different amount of time
in each stage now this is something that
I grappled with in the classroom as I've
mentioned with some of the previous
interviews in particular like with Katie
Henry and with Bob Irving and with John
Stapleton where we kind of like all talk
about rhizomatic learning whether we
label it dot or not when you have so
many kids who are going at things at
different paces and turning things like
at different times whether it be after a
week or after two years or whatever you
kind of have to approach that very
differently then if everybody's going up
the same pace and are working in the
same stages at the same time and you
also have to provide different kinds of
support for that kind of an environment
in terms of support for independent
learning or learning from peers or
learning from the adult in the room and
even for the adult for learning from
kids in the room so another question
that the authors kind of posed in their
conclusion is that how might we assess a
group of learners in this kind of a
scenario or who are engaging in this
three-stage process and I've got some
information on that that I will link to
some assessment resources that I created
for boot up and it's free of them for
sale or anything like that
I mean link to that into the show notes
so if you're curious about the different
kinds of assessments that I've used in
the classroom I'll include a link to
that as well as a link to an article
that kind of elaborates on three
different approaches of formative
summative and it's ative assessment
okay so another like lingering question
or thought that I had is what happens if
we design an experience that
intentionally flips or changes the
ordering of the stages so what if it
goes create use modify or what if it
goes create modify use or some other
permutation of that in addition I'm also
curious what stages are missing that you
as a listener as an educator I've seen
with the learners that you've worked
with so based on the article it sounds
like the three-stage progression was
developed by watching kids within a
formalized learning experience or
context in particular through NSF funded
grants in projects but I'm wondering
what stages might we uncover within
informal learning environments and how
might they inform learning within
formalized environments or contexts now
note I asked this question with the
acknowledgement that the three stage
framework does appear to align with some
of the previously unpacked scholarship
episodes on Mon culture which typically
occurred within leisure or informal
learning spaces in particular the mod
culture would say that modders would
first begin with playing a video game
then they'd start to modify the video
game by changing things and then often
they would end up creating their own
video game which follows the use modify
create framework in this article however
I am curious what stages might be
missing if we were to look at some of
these informal computer science or
coding spaces are there things that are
occurring in there that are very
valuable from an educational standpoint
that are missing in some of the designed
formalized educational experiences and I
ask these questions not as a critique of
the article or the authors or anything
like that it's just like some lingering
thoughts that I had I do highly
recommend reading this article and again
you can find it by going to the show
notes Ghirardelli recom and i also ask
that you share this particular episode
with somebody who might benefit from
hearing about the use modify create
approach whether it be a fellow c s
educator an educator and a different
domain
or even an administrator who just
doesn't really understand this approach
if you are actually using it in your
classroom I do appreciate you taking the
time to listen to this I hope everybody
is staying safe and staying healthy
especially considering all the things
going on in the world at the time of
this recording but stay tuned next week
for another interview and then two weeks
from now we will have another
packing scholarship episode thank you so
much and I will talk to you then
Article
Lee, I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., Mayln-Smith, J., Werner, L. (2011). Computational Thinking for Youth in Practice. ACM Inroads, 2(1), 32–37. https://doi.org/10.1145/1929887.1929902
Abstract
"Computational thinking (CT) has been described as the use of abstraction, automation, and analysis in problem-solving. We examine how these ways of thinking take shape for middle and high school youth in a set of NSF-supported programs. We discuss opportunities and challenges in both in-school and after-school contexts. Based on these observations, we present a “use-modify-create” framework, representing three phases of students’ cognitive and practical activity in computational thinking. We recommend continued investment in the development of CT-rich learning environments, in educators who can facilitate their use, and in research on the broader value of computational thinking."
My One Sentence Summary
This paper provides examples of how middle and high school youth engage in computational thinking and introduces the use-modify-create framework, which consists of three stages of engagement for computational thinking.
Some Of My Lingering Questions/Thoughts
How much time should someone spend using, modifying, and creating before moving to another stage and who gets to determine when a learner moves between stages?
How might we facilitate a group of learners who are all spending a different amount of time in each stage?
How might we assess a group of learners in this scenario?
What happens if we design an experience that intentionally flips or changes the ordering of the stages?
What stages are missing that you've seen with the learners you've worked with?
What stages might we uncover within informal learning environments and how might they inform learning within formalized environments or contexts?
Resources/Links Relevant to This Episode
Other podcast episodes that were mentioned or are relevant to this episode
Assessment Considerations: A Simple Heuristic
In this episode I read and unpack my (2019) publication titled “Assessment Considerations: A Simple Heuristic,” which is intended to serve as a heuristic for creating or selecting an assessment.
CS Educator as Dungeon Master with Jon Stapleton
In this interview with Jon Stapleton, we discuss metaphors for education and facilitating, the importance of community and navigating inappropriate content online, how programming languages and platforms influence learning, theories and philosophies that inform Jon’s practice, critical code studies, and much more.
Fostering Student Engagement with Bob Irving
In this interview with Bob Irving, we discuss our emphasis on creative coding/computing for leisure, fostering engagement with coding/CS, improving pedagogy over time, and 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.
micro:bit, Rhizomatic Learning, and CS for Healing with Katie Henry
In this interview with Katie Henry, we discuss the micro:bit and the do your :bit challenge, rhizomatic learning, the potential for CS for healing, and much more.
Programs/Platforms mentioned in the article
Tinycode resources I mentioned
Find other CS educators and resources by using the #CSK8 hashtag on Twitter