With substantial confusion left regarding the meaning, as well as the purpose, of Computational Thinking (CT), 15 years after Jeannette Wing's seminal Communications Viewpoint,7 two different schools of computational thought have emerged. In the more prominent school of thought—let's call it vocational education—the boundary between programming and CT is somewhat blurry. No doubt, the understanding of coding constructs is an essential part of CT education. However, if teaching and assessing CT is largely based on concepts such as loops, sequences, and conditional statements, then how is this fundamentally different from programming? The arguments for and against this school of thought are numerous but the most ubiquitous ones, at least in the U.S., appear to be career oriented and are grounded in predominantly economic justifications. Unfortunately, in the vocational school of computational thought the benefits of CT toward disciplines other than computer science are at best collateral.
Enter the second, less developed, school of computational thought focusing on general education. We will call this "Explicative Programming." In this school, programming may not be in the foreground, but it becomes an interdisciplinary instrument of thought to truly understand powerful ideas in typical K-12 disciplines such as STEM, art, language, and music. In the Explicative Programming school of computational thought, CT is about thinking with the computer. This idea is not new. In fact, it predates the Wing vision and can be traced back to Seymour Papert. Papert initially employed the term "Computational Thinking"3 to refer to a relation between problem disciplines and what he referred to as an explicative practice of programming.
Explicative Programming facilitates CT thinking by establishing a bidirectional connection between typical K-12 disciplines and computer science (see Figure 1). The motivational aspects of this type of connection have long been recognized by the educational reformer Dewey as "instrumental motivation."2 Instrumental motivation is an indirect kind of motivation—just like learning a few words of French may enable you to order food at a restaurant in France. In this example, instrumental motivation suggests you are mostly interested in eating food, not learning the French language. Similarly, with Explicative Programming, instrumental motivation may foster interest in either "learning to program," or "programming to learn" or both (see Figure 1).
It should be noted that while in theory the ideas of the vocational and explicative schools of thought could be combined, we have observed that instruction leans toward vocational education because of practical reasons. While the vision of Explicative Programming to make CT relevant to K-12 schools is highly appealing, it is incredibly challenging to implement the bidirectional connections (Figure 1, red arrows). Because of this difficulty, Explicative Programming has not yet reached systemic impact in schools. Establishing a bridge between traditional K-12 disciplines and computer science requires not only a solid understanding of both disciplines but, even more importantly, the understanding of how to meaningfully connect them. Unfortunately, teachers are quite unlikely to have relevant experience. The daunting gap between K-12 disciplines and programming needs to be connected through carefully designed bridging constructs (see Figure 1) serving as stepping stones between disciplines and programming (Figure 1, green box and arrows). Two examples employing CT patterns1 as bridging constructs are described here: these projects are programmed with the AgentCubes4 Computational Thinking Tool.
The virus simulation is an example of an Explicative Programming activity that can fit within the curriculum of a Life Science classroom. To program the virus simulation, students must program a healthy person, with some percent chance, becoming sick when coming into contact with a sick person. The bottom of Figure 2 depicts an implementation of this collision computational thinking pattern as an IF/THEN expression with a percent-chance condition of 70%. The ability to count populations of characters, allows students to experiment by changing the percent chance of becoming sick, as well as rate of death and recovery, to determine, for example, the effect different disease susceptibilities have on the population over time. This in turn enables discovery. For instance, students often try to create a deadly disease by making the death rate something close to 100%. What they find is that this, counterintuitively, leads to less total death among the population, as many of us now know. This discovery has been witnessed from middle school to graduate school classrooms5 and enrichment programs such as the June 2020 Black Girls Code Epidemiology Virtual Workshop (https://bit.ly/BGCVirusSim).
Figure 2. The collision-change pattern implementation (bottom middle) of the epidemiology simulation in AgentCubes with population data depicted. The rule shown reads: "If I am next to one or more sick characters, and currently healthy, I become sick with a 70% chance."
Enter the second, less developed, school of computational thought focusing on general education.
Game design5 provides ample opportunities for Explicative Programming, for example, enabling bridging constructs whereby implementation supports Computational Math Thinking. For instance, in a Frogger-like game design activity, students need to program cars driving on a busy multilane highway as an obstacle for a keyboard-controlled frog to cross. To make the game easier, but also not too simple, necessitates the correct numbers and distributions of cars on these roads. Employing the probabilistic generation pattern, students program the tunnels on the left generating cars with a certain frequency and probability. If a low frequency (every 0.6 seconds) but high probability (100%) is used, then the result will be a wave of simultaneous cars, which looks unnatural (Figure 3, left) and makes the game play too predictable. Experimenting with the construct and selecting a high frequency (every 0.06 seconds) but low probability (10%) results in much more compelling game play (see Figure 3, right) bridging math with game design.
Our experience from teaching Scalable Game Design5 to students and teachers, all over the world suggests three key principles of bridging constructs to effectively facilitate Explicative Programming.
The daunting gap between K-12 disciplines and programming needs to be connected through carefully designed bridging constructs.
If Computational Thinking is to be not just another item in a crowded curriculum that must be taught, but instead wants to become truly relevant to public schools, it has to radically change its perspective toward interdisciplinary education. How can programming support the effective teaching of STEM, art, music and languages? Perhaps the generic notion of CT needs to be replaced with discipline-oriented versions such as Computational Math Thinking, Computational Music Thinking, and Computational Art Thinking. By providing educators and students constructs to bridge the vast gap between typical K-12 disciplines and programming, Explicative Programming, evolving Seymour Papert's original conceptualization of Computational Thinking, is doing just that.
5. Repenning, A. et al. Scalable game design: A strategy to bring systemic computer science education to schools through game design and simulation creation. Transactions on Computing Education (TOCE) 15 (2015), 1–31.
6. Repenning, A. et al. Computational music thinking patterns: Connecting music education with computer science education through the design of interactive notations. Presented at the 12th International Conference on Computer Supported Education. (Prague, 2020), 641–652.
This research was supported by the U.S. National Science Foundation, the Swiss National Science Foundation, and the Hasler Foundation.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2021 ACM, Inc.
No entries found