Skip to main content

PRIMM

Grades: All
Estimated Duration: 30+ minutes

Table of Contents

All
Check for understanding, Collaboration, Comprehension, Inquiry, Knowledge acquisition, Practice, Synthesis
Any
pair, small group
App, Device, Software

Description

PRIMM is a framework for structuring computer programming lessons that emphasize reading code before writing it. Each component of PRIMM (Predict, Run, Investigate, Modify, and Make) represents a stage in a lesson or series of lessons. This strategy scaffolds instruction and emphasizes discussion and collaboration to increase understanding and reduce cognitive load. As students progress through the five stages, they gradually assume more ownership of programming, ultimately writing a program of their own. PRIMM enables teachers to differentiate instruction and set an appropriate pace for students to work through each stage successfully.

When To Use It

As a learning strategy, use PRIMM when you want students to:

  • explore and articulate how a program works using their own words
  • examine smaller elements of a program to build understanding
  • practice using appropriate programming terminology
  • engage in collaborative discussion, asking and answering questions to build understanding among peers
  • gradually take ownership of computer programming to build confidence and skills
  • investigate existing code before writing their own similar code

As an instructional strategy, use PRIMM when you want to:

  • scaffold or differentiate computer programming instruction
  • engage diverse learners in computer programming
  • apply structure to computer programming lessons
  • assess and address misconceptions with programming language and skills
  • allow students to build an understanding of computer programming concepts in a way that makes sense to them
  • leverage the benefits of sociocultural theory by building upon existing programs and emphasizing cultural relevance, collaboration, discussion, and gradual release

How To Use It

Advance Prep

  1. Use a backward planning approach to plan your PRIMM lesson. Identify the learning objectives, and decide what type of code students will write during the “Make” stage.
  2. Identify or develop programs/code for students to explore.
  3. Develop guiding questions, activities, and instructions for each stage of PRIMM:
    1. Predict: Students work in pairs or small groups to explore and discuss the function of the code, and they predict the outcome of the code.
    2. Run: Students check their prediction by running the program. They discuss the results.
    3. Investigate: Students engage in a range of activities to explore the structure of the code. Teachers can design activities such as annotating code, using Parson’s Problem, debugging, tracing, labeling variables, explaining, etc. Students continue to work in pairs or small groups and discuss the activities.
    4. Modify: Students modify the code, starting off small and then increasingly adding more complex modifications. Students gradually take on more ownership of the code as the complexity of modifications increases. Teachers can use this stage for further differentiation.
    5. Make: Students create a new program, applying the knowledge and skills gained through the previous stages. Students use the same structure from the original programs but apply it to a new function, context, or problem. Although the stages appear in a logical order, students can cycle through the first three or four stages as appropriate before moving on to the Make stage. Also, you may spend more time in some stages to meet student needs. A key component of PRIMM is collaborative learning, so plan for students to work in pairs or small groups for the duration of the process.

Implementation

Teachers play a critical role in implementing PRIMM, as students’ progress should inform the progression and activities through each stage. Teachers should also help to facilitate understanding and discussion to ensure that students understand the concepts and develop the appropriate skills before moving on to the final stage.

  1. Predict: Introduce the lesson and provide students with a program or code to predict its function or outcome. Provide a prompt or guiding question to focus their prediction. Students do not need to know the how at this state, only the function of the code, what it might do.
  2. Run: Have students check their prediction by running the program. Discuss results as a whole class.
  3. Investigate: Provide a range of activities and guiding questions for students to explore the structure of the code. Debrief and clarify misconceptions.
  4. Modify: Provide guidance for students to complete a series of modifications that increase in complexity. Differentiate as needed.
  5. Make: Allow students to create a new program, applying the knowledge and skills gained through the previous stages. Have students share and discuss their creations.

Pros

  • Reduces cognitive load and anxiety when learning to code
  • Promotes appropriate use of programming terminology and vocabulary development
  • Supports differentiated instruction
  • Integrates sociocultural theory to increase understanding
  • Promotes deep learning of computer programming knowledge and skills

Cons

  • Can be a time-consuming process
  • Requires teachers to write or identify existing programs and guidance to facilitate the learning process

Culturally Responsive Application

PRIMM lends itself to culturally responsive teaching because of its explicit sociocultural approach. PRIMM emphasizes discussion and collaboration as key components of developing understanding. This allows diverse learners to access the content in a way that makes sense to them before developing programming vocabulary and a deeper understanding of programming language and skills. PRIMM promotes differentiated instruction and opportunities to make programming lessons culturally relevant. This strategy builds an understanding of programming that enable students to write their own code, fostering ownership and agency over their learning

Emerging English Language Support

Facilitates the structure of lessons in a purposeful way.

Students with Disabilities Support

Enhance rigorous evaluation, an approach to teaching programming that can be directly implemented in the secondary classroom by teachers, experienced or otherwise.

Subjects

5.3 Data & analysis, 5.4 Algorithms & programming

Why It Works

Educators use PRIMM to scaffold targeted task for student at risk (REF72). PRIMM mitigate against the issues arising from the introduction of text-based languages (REF73).