< All projects


PRIMM is an approach to planning programming lessons and activities and includes the following stages: Predict, Run, Investigate, Modify and Make. In this approach, rather than copying code or writing programs from scratch, beginners instead start by focussing on reading working code.

The five stages of PRIMM are used in planning lessons and activities and are designed to support learners at all stages of learning programming in school, not just complete beginners. More recently, we’ve been investigating the role of language  in the programming classroom.

Since its introduction in 2017, PRIMM Is now a widely used approach for structuring programming lessons. The concept has had a wide reach and impacted many students of programming.

The Predict phase involves students looking at short program and trying to decide what it will do. This can be a starter, can be done in pairs, or you could even spend a whole lesson on this phase.

The Run phase involves downloading the code and then running it to check your prediction. It does not involve any copying in of code (not my favourite strategy for children learning programming), and as the program is written by the teacher, the student can focus on what it does and not whether they typed it in correctly.

The third stage is Investigate, which should be varied – there are many, many lovely exercises that you can do to get into the nitty gritty of the code – annotate it, use Parson’s puzzles to get it in the right order, put errors into it and do some debugging, trace through it (use the PLAN C TRACS activities for this), label the variables, etc.

The fourth stage is to modify the code by changing first something simple, and then make more and more modificatons, which can add lots of differentiation to your class.

Finally the students make a brand new program, when they can borrow bits of code from the original program but it will have a new function, context or problem to be solved. These five phases may not be in every lesson, depending on the topic. And you may cycle through the first three or four phases several times.

PRIMM was developed when the research team were working at King’s College London. Since its inception, there have been several studies investigating PRIMM:

  1. Exploratory study, 2017. Investigating KS3 teachers learning programming with the PRIMM approach.
  2. Pilot study, 2017. Six schools exploring the use of PRIMM In their classrooms (Sentance & Waite, 2017).
  3. Full study, 2018. Quasi-experimental study with 500 pupils using PRIMM for 8-12 weeks to learn text-based programming (Sentance, Waite and Kallia, 2019b)
  4. Impact of PRIMM on teaching, 2020: An interview study of 20 teachers using PRIMM over time. Only one part of this study has been published, which focused on classroom talk in the programming classroom (Sentance and Waite, 2021).


Work on PRIMM was originally funded by a King’s College London Faculty Seed Fund.

PRIMM has been used in many countries around the world as well as in England where the studies have taken place. We have ad hoc reports of PRIMM being used in Germany, USA, Tasmania, Hong Kong, Argentina, Norway, Turkey, to name but a few. 

PRIMM has been incorporated into primary education by several leading primary experts. For example, it is a key element of the books produced by Phil Bagge on programming in Scratch, for example, Teaching Primary Programming with Scratch Teacher Book: Research-Informed Approaches (2022).  It’s also been translated into German and incorporated into textbooks in use by Bavarian schools. 

The four PRIMM Publications have received a total of 188 citations (March 2024, Google Scholar). In addition, some papers are starting to be published which seek to investigate the use of PRIMM in different contexts, or build on PRIMM. Some are listed here:

PRIMM worksheets from two of the studies can be found at http://primmportal.com 


Sentance, S., & Waite, J. (2021, August). Teachers’ perspectives on talk in the programming classroom: Language as a mediator. In Proceedings of the 17th ACM Conference on International Computing Education Research (pp. 266-280). (Open-access author copy and video presentation)

Sentance, S., Waite, J., & Kallia, M. (2019a). Teachers’ Experiences of using PRIMM to Teach Programming in School. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (pp. 476-482).

Sentance, S., Waite, J., & Kallia, M. (2019b). Teaching computer programming with PRIMM: a sociocultural perspective. Computer Science Education, 29(2-3), 136-176.

Sentance, S., & Waite, J. (2017). PRIMM: Exploring pedagogical approaches for teaching text-based programming in school. In Proceedings of the 12th Workshop on Primary and Secondary Computing Education (pp. 113-114). (Open-access author copy)

Other materials

PRIMM: Encouraging talk in programming lessons (blog article)
Teachers’ perspective of talk in the programming classroom: Language as a mediator (paper presentation)
Teaching programming the PRIMM way (presentation slides)
Quick Read: Using PRIMM to structure programming lessons
Using the PRIMM approach at primary level (magazine article)
The I in PRIMM (magazine article)
What is PRIMM? (video interview with Sue)
PRIMM: encouraging talk in programming lessons (video)