The PRIMM  project aims for a method to planning programming lessons in stages designed to support learners at all stages of learning programming in school:

  • Predict
  • Run
  • Investigate
  • Modify
  • Make

A substantial body of research has identified that reading and tracing code is useful in understanding how program code actually works (and before writing), and other research has focused on adapting existing code to support developing problem-solving skills prepare students for ownership of (and resultant responsibility for) code, while other research is centered around moving between different levels of abstraction when programming.

Many teachers recognize that students can find programming difficult and can identify the stages that novice school-aged programmers go through in developing skills. However, it is not as easy to specify a particular teaching strategy that will support learners in gaining confidence and a deep understanding of programming concepts.

By recommending a PRIMM approach, we are combining these three research contributions to develop guidelines for teachers that support student learning.