The PRIMM Instructional Model
CodeHS Lessons Encourage Code Exploration
What is PRIMM?
Sue Sentance and Jane Waite of King’s College London proposed a new instructional model for teaching code in their paper, PRIMM: Exploring pedagogical approaches for teaching text-based programming in school. Their PRIMM pedagogical approach is founded on the Use-Modify-Create model, Level of Abstraction (LOA) instructional framework, and research around code tracing and comprehension. (Sentance & Waite, 2017)
The PRIMM framework attempts to meet all students where they are in coding. It first asks learners to consider how an example computer program functions and what it’s designed to do. Gradually, students begin to make the example program their own by modifying the code to perform differently. Finally, students take their newfound conceptual understandings and develop new computer programs. (Sentance & Waite, 2017)
Stages of the PRIMM Instructional Approach
PREDICT
Students are presented with an example program. Independently or in pairs, learners read through the code and predict what will happen when it’s executed. Students record or share their predictions.
RUN
Students run the example program to determine if their prediction was correct. They reflect on the program’s output, often as a discussion.
INVESTIGATE
Students are provided a set of prompts or questions to investigate programming concepts using the example program. They record their findings, possibly by commenting in the code or discussing them with classmates.
MODIFY
Students are instructed to change the example program, with small or large modifications, to make it perform differently. Their modified program might change the contents of the output or how the code is executed.
MAKE
Students use coding concepts they’ve learned while examining the example program to create a new program of their own. This might be in the form of a guided course exercise or open-ended project.
In studies, teachers and researchers discovered that secondary students were more successful using PRIMM as a learning model than allowing students to begin creating code without prior investigative tasks. Law discusses implementation alternatives where each of the PRIMM stages aren’t locked. Students and teachers are free to revisit stages or combine them as needed. This sound pedagogical approach has shown success with novice and proficient programmers while also giving them a challenging, albeit fun, learning opportunity. (Law, 2020)
One struggle teachers implementing the PRIMM model have noted is the amount of planning necessary for creating or curating example programs for students to predict, run, investigate, and modify. Studies suggest that preparation of this content can be difficult for teachers to initially gather and maintain with newer programming languages and thoughtful prompts for learners. (Law, 2020)
CodeHS Lessons and PRIMM
CodeHS lessons provide a variety of examples and exercises for students to explore and investigate prior to developing their own programs and projects. Below you’ll see a common lesson structure found throughout the CodeHS curricula. This sample is from a lesson on animations and web page element positions with HTML, CSS, and JavaScript languages in our Web Development course.
This lesson begins with a video to introduce students to some new coding concepts that they’ll explore and learn. It’s followed by a short quiz to check their understanding. Students are then provided with two example programs that encourage them to predict, run, investigate, and modify the code. Additional instructions and prompts may also be presented. Students then put their understanding into practice throughout the exercises that follow. To assess their skills, lessons may include a challenge or project where students develop a program that incorporates what they’ve learned.
Computer science education is still a young field and research around instructional practices and pedagogy, while currently limited, continues to grow. As new programming languages, technology, and coding techniques are created, the CodeHS Education Team works to ensure that our curriculum is current and accurate. By combining the PRIMM instructional model, backed by research, with the CodeHS curricula, teachers can leverage quality lesson materials and reduce the challenges of extensive instructional preparation.
Matt taught K12 math students in special education and later elementary/middle school CS. With a master’s degree in educational technology and curriculum, Matt’s developed CS and electrical engineering curriculum for K12 and post-secondary education. He led a team of Unity developers responsible for designing and building virtual simulations and learning games at the collegiate level prior to joining CodeHS. In his spare time, Matt enjoys designing and coding video games, web sites, and digital art.
References
Law, R. (2020). A pedagogical approach to teaching game programming: Using the PRIMM approach. In P Fotaris (ed.), Proceedings of the 14th European Conference on Games Based Learning. European Conference on Games Based Learning, Academic Conferences International, Reading, pp. 816–819, 14th European Conference on Game-Based Learning, Brighton, United Kingdom, 24/09/20.
Sentance, S., & Waite, J. (2017). PRIMM: Exploring pedagogical approaches for teaching text-based programming in school. In Proceedings of the 12th Workshop in Primary and Secondary Computing Education: WIPSCE ‘17.