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



More Content