What We Talk About When We Talk About Programs

Programming plays a paramount role in many educational policies and initiatives. However, the current focus on coding skills poses the risk of giving students an overly simplistic and impoverished idea of what programming means and involves. Their experiences would be much more significant if learning encompassed understanding the richness of the nature of programs. Programs permeate our lives more inextricably than might often be recognised, and all citizens of the digital era could benefit from understanding their multifaceted nature. A fundamental component of such an understanding is getting a sense of how programs are created and work (i.e., the programming process). But programs are strange creatures that escape simple definitions. To the best of our knowledge, there is no Nature of Programs framework that teachers and policy makers can use to shape their practice and targets. In this working group we developed such a framework, by collecting and organising contributions from the literature and the computer science education community. The paper presents the framework and the rationale behind its development. It is anticipated that the framework can be used to inform the design of sound curricula, and support teachers and learners to understand the bigger picture around programming.