Over the past few weeks, we have been focusing on computational thinking in our “Learning,Teaching and Assessment 1” class in SPU’s Digital Education Leadership program. ISTE’s Student Standard 5c describes one of the key aspects of being a computational thinker: “Students break problems into component parts, extract key information, and develop descriptive models to understand complex systems or facilitate problem-solving” (ISTE Standards for Students, 2016).
By that definition, I wondered if storytellers may have been the original computational thinkers. As a former English major, I couldn’t help but be tempted by this line of thinking. Also, as a new literacy that has yet to make its way into most schools as a dedicated subject (Bers, 2018), I wanted to look into ways that teachers could embed computational thinking and coding into a subject like Language Arts that is already part of their day.
Jeanette Wing, working as a Computer Science professor at Carnegie Mellon in the mid-2000s, referred to computational thinking “…as a set of attitudes and skills a person would need to confidently persist toward identifying, posing, and solving problems” (Krauss & Prottsman, 2017, p. 4). The four key aspects of computational thinking that can be applied to many different subject areas are:
Decomposition: Breaking complex problems into smaller parts
Pattern Recognition: Discerning patterns that can be used to streamline or better understand a process or problem.
Abstraction: Representing data through abstractions, such as models and simulations (Bar, Harrison, & Conery, 2011) ; identifying general rules for creating patterns, or as Nat, a student in my cohort described it, keeping relevant information and ignoring the noise.
Algorithms: An ordered procedure “…with the goal of achieving the most efficient and effective combination of steps and resources” to accomplish something (Bar, Harrison, & Conery, 2011).
Example: Storytellers as Computational Thinkers
Even before written language, one could argue that oral storytellers applied what we call computational thinking to two problems they faced: encoding the story of their people and keeping their audience entertained.
Decomposition was used to break down a history of a people and the locations where they had lived into individual stories that focused on a particular character and place, like Achilles and the siege of Troy in The Iliad. Explaining culturally significant events in terms of discreet, relatable parts made them easier for their audience to remember.
Storytellers understood that humans like patterns, so narrative and character archetypes and language repetition were woven into their work. Epic poem heroes like Achilles, Odysseus, and Beowulf overcome multiple challenges in a pattern of problem/threat and resolution. In addition to holding their audience’s attention, patterns like this made it easier for their listeners to remember the stories because the narrative structures were familiar.
Distilling a history of events and people into a single story that focuses on individual characters and settings is an example of abstraction: identifying the key patterns, keeping relevant information and ignoring the noise.
Like algorithms, stories are designed to follow a cohesive order so they accomplish their goal of clearly relaying information.
Computational Thinking & Coding as a New Literacy
Even though it can be argued that the four elements of computational thinking described above have always been part of human problem-solving skills, using these elements in the context of communicating with computers to solve problems is a new type of literacy. Just as technologies such as pen and paper and the printing press changed how humans expressed themselves by creating a written artifact of their thinking that could be “…analyzed, deconstructed, and interpreted” (Bers, p. 25), computational thinking as applied to computers gives life to our thoughts and ideas through the code that we create.
Learning computational thinking through coding provides an opportunity to dissect what we often don’t pay attention to: everything from the language that we use to the processes we take for granted. For example, when you code a game that asks users to respond in a certain way, you quickly realize when you watch someone play it that there are many ways to interpret an onscreen instruction. Or, in trying to program a robot to accomplish a task a human could easily do, you realize how complex the process really is. Learning to code helps us to notice things, which often leads to communicating more precisely and devising more efficient ways of doing things.
Marina Bers, who with Mitchel Resnick at MIT developed Scratch Jr., expresses the need to treat computational thinking as a new literacy in this way:
“We start teaching kids to read and write in early childhood. However we don’t expect every child to grow into a professional writer. I believe textual literacy is both an important skill and intellectual tool for everyone. So it is with coding. I do not advocate for all children to grow into software engineers…but I want them to have computational literacy so they can become producers, and not only consumers, of digital artifacts.” (Bers, 2018, p. 9)
Including Computational Thinking and Coding in Language Arts
A lot of the programming instruction for younger children that has been taught in schools and clubs has been solving puzzles, such as getting Angry Bird safely to the pig while avoiding the TNT. Though puzzle solving is a useful way to teach programming concepts like loops and conditionals, if it is the only exposure to coding, it’s like “…teaching them to write by only teaching grammar and punctuation” (Bers, 2018, quoting Mitch Resnick, p. 62). And as Bers points out, “…the lack of opportunities for self expression turns off many”(p.29).
Fortunately, there are ways to combine coding with Language Arts that promotes creativity, learning to code, and Language Arts learning.
Computer Poetry and Mad Libs
Seymour Papert was the creator of LOGO, the first computer program language for children, and a huge proponent of introducing programming as a tool for creative expression. In his 1980 book Mindstorms, Papert describes a year-long study done by his group at MIT with middle school students. Among the 7th graders was a girl who had been creating “computer poetry” or the poetry equivalent of mad libs. Prior to this programming lesson, she had not understood the difference between parts of speech, nor did she appreciate learning about them. However once she began to program the computer to generate poetry, she suddenly understood the importance and use of the different categories of words and the need for choosing the correct type of word for each instance. Papert said: “What she learned about grammar from this experience…was anything but mechanical or routine…she not only ‘understood’ grammar, she changed her relationship to it” (pp. 49-50).
Even before I read this, I had wanted to try to program a simple mad lib in Scratch as I thought it could be an engaging exercise for kids to learn parts of speech. After checking the Scratch website I quickly realized this was not a terribly original idea – there are MANY examples of Scratch mad libs! I still wanted to try making one myself, however, so here is my addition to the category: https://scratch.mit.edu/projects/288515131/
Teachers who don’t want to code a mad lib themselves could “remix” one of the existing examples on the Scratch website, or their students could do the same. Younger students could work with their teacher to create a list of nouns, verbs, adjectives and adverbs to plug into an existing mad lib and see the result. Because you can “See Inside” Scratch, students can look under the hood and see the logic and programming elements needed to build a simple mad lib. Older elementary and middle school students will have fun creating their own mad libs and having their classmates try them out.
Telling a Story
“Writing to program can also serve as programming to write, in which a child learns the importance of sequence, structure, and clarity of expression – three aspects characteristic of effective coding and good storytelling alike” (Burke & Kafai, 2010).
Bers found in her research with pre-kindergartners that picture sequencing skills were increased after doing just one week of a robotics and coding curriculum (p. 63). Scratch, Scratch Jr. and Tynker, all block coding languages, can be used by students to create stories that include dialogue, backdrops and user-created or curated media that includes drawings, photos, video, sound, and music.
Though it can arguably be more difficult to program a story vs. writing a story using a word processor or paper, a study with middle school students in an after school Scratch coding club by Burke and Kafai (2010) showed that dedication to the story they envisioned caused students to persevere in the face of frustration with the programming process. This reflects how an authentic project that allows creative expression can compel students to push themselves further.
A unique advantage that coding adds when combined with Language Arts is the immediacy with which bugs in sequencing are noticed. Burke & Kafai (2010) noted that “feedback in the Club was immediate and continuous (and did not rely on us as coordinators) because the direct effects of each coding sequence played immediately out upon the Scratch stage” (p. 351).
Coding & Language Arts Resources
This article from Common Sense Media offers ideas and examples of how Scratch can be used for Language Arts lessons, including an “About You” project and a Science-focused lesson researching an element from the periodic table.
Scratch Activity Guide from the official Scratch website
CS First with Google Storytelling Activities This is a good resource for learning storytelling for Scratch but I recommend previewing the videos because teachers may or may not agree with some of the Language Arts-specific instruction.
Microsoft Education offers a series of Language Arts lessons using Minecraft. To access you must be signed up for a Microsoft Minecraft education account and have the Minecraft Education edition.
Older students can use open-source interactive fiction platforms to create text-based, story-focused games. This article offers a list of resources.
Linking Coding to Common Core Language arts standards
In “Using Coding Apps to Support Literacy Instruction and Develop Coding Literacy” (accessed through a paid or academic database only- see “References” below), Hutchison, Nadolny and Estapa show a number of ways that coding in Scratch and Tynker in Language Arts can tie to Common Core standards. One of the ways which I hadn’t considered is that by learning coding terminology as part of Language Arts, students are working toward “acquire[ing] and use[ing] accurately a range of…domain-specific words and phrases sufficient for reading, writing, speaking, and listening at the college and career readiness level” (CCSS.ELA-Literacy.CCRA.L.6 standard, p. 497). There are many more standards referenced and contained in helpful tables in this article.
Barr, D., Harrison, J., Conery, L. (2011). Computational Thinking: A digital age skill for everyone. ISTE. Retreived from:https://files.eric.ed.gov/fulltext/EJ918910.pdf
Bers, M.,U. (2018). Coding as a playground. New York, NY: Routledge.
Burke, Q, & Kafai, Y. (2010). Programming & storytelling: Opportunities for learning about coding & composition. Proceedings of the 9th International Conference on Interaction Design and Children, pp. 348-351. Retrieved from: https://dl-acm-org.ezproxy.spu.edu/citation.cfm?id=1734345
Hutchison, A., Nadolny, L., Estapa, A. (2016). Using coding apps to support literacy instruction and develop coding literacy. The Reading Teacher, (69)5, pp.493-503. Retrieved from: http://web.b.ebscohost.com.ezproxy.spu.edu/ehost/detail/detail?vid=3&sid=6bd10192-12b1-43c0-8595-c8e9118a90fc%40pdc-v-sessmgr03&bdata=JkF1dGhUeXBlPWlwJnNpdGU9ZWhvc3QtbGl2ZQ%3d%3d#AN=113529584&db=a9h
ISTE Standards for Students (2016). Retrieved from: https://www.iste.org/standards/for-students
Krauss, J. & Prottsman, K. (2017). Computational thinking and coding for every student.
Papert, S. (1980). Mindstorms. New York, NY: Basic Books.
Paul, J. (2019). 5 Open source tools to create interactive fiction. It’s Foss. Retrieved from: https://itsfoss.com/create-interactive-fiction/