From the moment learners engage with any programming language or tool, they will encounter variables, expressions, loops, and abstraction – the ‘VELA’ concepts – in one way or another.
Some learners struggle with these concepts, as they assume that variables can have multiple values at the same time, whereas others might not be able to distinguish between what goes inside a loop and what precedes a loop. Although visual block-based programming environments such as Scratch, Alice, or Snap! have helped with navigating through different concepts, students still find it difficult to make sense of programming languages.
For this study, the research team designed non-programming activities to help students engage with and understand the foundation of programming concepts. Activities such as ‘Story Variables’ and ‘Cats and Ladders’ were designed to encourage students to come up with a definition of a ‘variable’ collaboratively, before applying this definition in practice. In the first activity, students discussed multiple examples where variables were present, such as: “Last week, I bought a pen for $1.50, now it costs $3,” to identify what the variable is, and how it changes over time. In the second activity, the students had to put their definition into practice by determining the length of a ladder required to reach distraught cats in ‘Cats and Ladders’.
Students had to come up with a range of possible values that were needed to rescue the cats, and engage in abstraction by synthesising new variables based on existing ones.
Examples of non-programming activities for the classroom
Throughout the 20-day research intervention, students participated in 16 of such activities. The research team gathered their data based on a pre- and post-assessment of students’ introductory programming skills, analysis of students’ Scratch projects, and interviews with teachers and students alike. Besides higher learning gains for students following the intervention, the findings were not linked to gender or prior academic preparation, and all grades participating in the study showed similar learning gains. For teachers, these findings should be taken as an incentive to experiment with non-programming activities for teaching difficult concepts. Try out some of these non-programming activities yourself!
Introducing ideas of changing quantities in the real world and giving them meaningful names
Cats and Ladders
Naming variables and creating expressions in non-programming context
Turning light switches on/off using Booleans, Boolean operators and abstractions
Modelling real-world alarm clock situations using variables, arithmetic, and logical expressions and abstractions