What is PRIMM? Predict, Run, Investigate, Modify, Make (PRIMM) is an approach that helps teachers structure programming lessons. It encourages students to question how programs work. Planning a lesson with PRIMM Language Students should practise using appropriate programming terms and students should collaborate. Content ● Questions should be crafted carefully to help students explore the program. ● Questions should be within the student’s zone of proximal development. ● Content should be relevant. Shared artefacts 1. Provide a student with a program they haven’t seen before. 2. Allow the student to run the program. 3. Allow the students to modify the program so they can take ownership. The five stages of PRIMM Predict Students are provided with a program and predict what it might do. Run Students verify their predictions by running the program. Investigate Students explore the code to understand how it works. Modify Students edit the program to change its functionalities. Make Students design a program with the same structure but solves a different problem. Students should be encouraged to talk in pairs or small groups about the program away from the computer. This has the following benefits: ● Helps learners use the correct terminology to express their understanding. Being able to use programming terminology correctly develops knowledge. ● Verbalising a program allows students to focus on individual parts of the program and identify links between all parts. ● Question asking and answering enables students to learn from others. Read before you write Reading code before writing is an effective way to learn programming. In a classroom, students should state the outcome of a small segment of code with low stakes to encourage everyone to participate. Code tracing Code tracing is an approach to help learners develop program comprehension skills through the reading and analysis of code, before running it to predict its outcome. When tracing code, learners review and predict the expected outcome of program sections. Learners trace the code, line by line, and predict the outcome of each line. Code tracing should be done away from the computer to prevent students’ instinct of running code rather than reading code. To trace code effectively, learners must have an understanding of the notional machine, which is how a learner perceives a computer to process instructions and data.