As more and more young people across the world are starting to learn programming, there’s a need to develop the pedagogies we use for teaching it. Teaching programming is challenging, as an educator you can know the subject well yourself, but too often find students getting exasperated with mastering what you have taught them.
Originally published in Issue 5 of Hello World: The computing and digital making magazine for educators. Available free at helloworld.cc (Shared under Creative Commons CC BY NC SA).
Dr Sue Sentance and the Computing Education team at King’s College London found that there was a need for specific strategies educators can use to support the development of understanding in computing. Building on the literature suggesting students need to develop accurate code tracing before they can become successful in programming, they developed the ‘PRIMM’ model as a structure for activities.
PRIMM stands for Predict, Run, Investigate, Modify, Make. It has been developed by building on the Use-Modify-Create model from Irene Lee and colleagues. The model supports educators to design experiences where students engage with code in a progressive variety of ways that build their understanding.
Students start with the code for a program that works and are asked to look at it and predict what it does.
They run the code and observe what the program does, testing their predictions.
They then get into the details, looking at the program line by line and exploring how it does what they predicted and then observed when they ran it.
Students use the understanding they have developed of the code to change it to do different things.
Using the concepts in the program that they have now understood and adapted, students make a new program that solves a different problem.
This approach takes the evidence based approach of starting with existing code, and building the students capacity for code tracing before asking them to start writing code. It scaffolds their developing understanding in a way that teachers can repeat for working with different constructs and programming approaches. The team at King’s have trialled this approach with teachers and seen some promising results. They are currently undertaking a wider scale study into the approach with secondary teachers in the UK.
You can read more about PRIMM and the ongoing research into this pedagogy on the Computer Science Education at King’s blog at https://blogs.kcl.ac.uk/cser/2017/02/20/exploring-pedagogies-for-teaching-programming-in-school/.