Together with Jane Waite and Maria Kallia, I’ve recently published a new paper about PRIMM called Teaching computer programming with PRIMM: a sociocultural perspective
There are 50 free eprints available. Download one here. If they run out, contact me!
I’ve written about PRIMM elsewhere, and I also presented a shorter paper on it at SIGCSE this year (if you don’t have access then there is a link on the Papers tab of this site). I’ve been amazed at how many teachers have taken up the idea of PRIMM and are using it in their teaching, from reports I have heard.
In a nutshell, PRIMM (Predict, Run, Investigate, Modify, Make) is a structured approach to teaching programming. It puts together different activities that teachers can use to support students in learning programming. The reason for developing this approach is that if we want every child to learn computer programming, as we do in England in our new curriculum, we have to have explicit teaching strategies for students of a range of abilities and dispositions.
In this paper we hope we have achieved two things:
- Given a theoretical rationale for the PRIMM approach. It’s clear PRIMM involves scaffolding of the learning process and the use of language and targeted activities to help students to gain a deep understanding of programming concepts. In this paper we have explained how this is based on sociocultural theory, particularly drawing on Vygotsky’s emphasis on the importance of language, mediation, and the transfer of skills and knowledge from the social into the cognitive plane.
- Detailed the quantitative and qualitative results of a study carried out with just under 500 students using PRIMM for several weeks. Data were collected via a combination of a baseline test, a post-test to compare control and experimental groups, and teacher interviews. Learners performed better in the post test than the control group. Teachers reported several benefits of the PRIMM approach, including that PRIMM helped them to teach effectively in mixed-ability classes, enabling all learners to make progress.
There is more to be done with PRIMM. We would like to continue to evaluate the learning outcomes through more trials. I am particularly interested in how talking through programs and questioning students about how programs work supports learning. PRIMM gives students and teachers a language to talk about the strategies they are using, and invokes self-regulation and meta-cognition, and we’d like to investigate this further. One very specific direction we’d like to go in with further work is to map the Investigate questions more closely to Carsten Schulte’s Block Model.
PRIMM, as I’ve said in various talks, is just one tool in a teacher’s toolkit. As teachers we are reflective practitioners who use a variety of approaches depending on our learners, context and stage of learning. PRIMM works alongside other approaches for teaching programming to develop resilient, self-aware learners – and hopefully competent programmers!