Notional Machines in a Semester-long Introductory Physical Computing High School Unit

Notional machines i.e. pedagogical devices to communicate program execution play a key role in computing classrooms, especially within introductory settings [2, 5]. From machine-generated representations to classroom learning activities, a variety of notional machines have been examined in the field of computing education research. A more recent review [2] has also noted the adoption of multiple notional machines by instructors during a course or a unit to communicate a family of interconnected, computing concepts within a learning context. Despite notional machines considered as a signature pedagogy for computing education, very few accounts are based on classroom observations–most of them draw from instructor reflections or programming interface designs [2]. Further, even fewer have been situated in the more recent contexts of computing education i.e., high school classrooms where programming environments such as physical computing have been employed to make computing concepts further accessible to novices [3]. However, what is lesser known is how teachers make these computing concepts accessible to students through notional machines. To address the gap, in Fall 2020 and Spring 2021, we conducted a two-phase study that involved: (a) co-designing notional machines with an experienced high school computing teacher in Fall 2020, and, (b) observing his classes during the 14-week electronic textiles unit within Exploring Computer Science curriculum [1] in Spring 2021. For this poster, we will share findings from a preliminary qualitative analysis of online class screen recordings (5 hours, 10 class periods) of class periods that involved discussions around programs during the unit. We answer the following questions: (a) What were the different types of notional machines implemented throughout the unit within the context of physical computing? (b) How were they related to each other and to the key computing ideas within the unit? Our video analysis so far has revealed a variety of notional machines to introduce and sustain student learning during this unit. They took the form of roleplays, metaphors, and analogies, ranging from a period-long enactment to in-the-moment explanations to better understand specific aspects of program execution such as variable definition, function calls, and conditional statements execution. From extensive code tracing to debugging specific issues to diagnosing student thinking, these notional machines provided a variety of opportunities for the teacher to move across the different levels of abstractions while explaining program execution. During the poster session, we will share qualitative details about each of these categories of notional machines with examples that highlight their key characteristics in terms of form, conceptual focus, level of abstraction, and purpose within the unit. This analysis will provide one of the first accounts of notional machines emerging from classroom observational data. More importantly, it will be one of the first accounts of notional machines studied within a high school classroom, significant in the light of recent enthusiasm to introduce high school students to computing globally [4].