PRIMM Replit May 2022

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 27

Teams for Education

Register your attendance


at the link in the chat
to get your certificate
and free resources
Teams for Education

Andy Colley David Morgan


@MrAColley @LessonHacker
Teams for Education

PRIMM
AGENDA
1. Why PRIMM?
2. What is PRIMM?
3. Building a PRIMM focused Project
@MrAColley @LessonHacker
4. PRIMM on the Curriculum Hub
Learning to Program is Hard!
Hobbyists Employees Students
Motivated Paid One lesson a week for 8 weeks.
Large class
Invest own time Trained by experts Teacher still on a learning curve?
One subject amongst many
Own choice Have an end goal Goal is far in the future
Why is Learning to Code so Hard?

Even just one line of code can contain


lots of concepts to be unpicked and High cognitive load
understood

myAge = int(input("Please tell me your age..."))


There are (at least) three levels of abstraction
when coding

Understanding the problem to be solved.

myAge = int(input("Please tell me your age..."))


There are (at least) three levels of abstraction
when coding

Understanding the problem to be solved.

How to decompose this into an algorithm based on computational thinking.

myAge = int(input("Please tell me


myAge ← INPUT your age..."))
There are (at least) three levels of abstraction
when coding

Understanding the problem to be solved.

How to decompose this into an algorithm based on computational thinking.

How this translates into your particular syntax.

myAge = int(input("Please tell me your age..."))


I want the user to myAge ← INPUT
tell the program how old they are.
Decomposition based on Computational Thinking
Problem: look at a list of numbers and find the highest one.
numbers = [42, 1337, 404, 255, 0101]

Algorithm
1. Store the first item in the list into
a ‘highest’ variable
Human Steps 2. Inspect the next item in the list.
3. If it’s higher, replace the number
1. Look at the list in the highest variable
2. Find the highest number 4. Repeat for every item in the list
Worked Examples & Backward Fading

Fully worked to introduce Fully worked for Partially worked for students Cued start for student Completed independently
the method or ideas reinforcement to finish off completion

PREDICT & RUN INVESTIGATE MODIFY MAKE

NOT MY CODE PARTLY MY ALL MY


CODE CODE
What is PRIMM?
P Predict

R Run

I Investigate

M Modify

M Make
PRIMM is a way of structuring programming
lessons that focuses on:

Reading code before Working Reducing cognitive


you write code collaboratively to load
talk about programs by unpacking and
understanding what
program code is doing

Using existing Gradually taking


starter programs that ownership of
the learner is not programs when
responsible for (if they don’t
work!) ready
What is Predict?
P Predict

R Run

I Investigate

M Modify

M Make
What mistakes and misconceptions could
students make when writing selection code?
POSSIBLE
MISCONCEPTIONS &
MISTAKES
● Not using consistent case for
variable names.
● Missing speech marks/brackets
● Capitalising statements - Print, If
etc.
● Missing colons at end of lines 3 & 6
● Not indenting lines 4 and 6
● Inputting ‘computing’ instead of
‘Computing’ when running the
program - chance to probe for
understanding here.
● Confusing/conflating = and ==
● Assuming conditions always check
whether two pieces of data are the
same.
What is PRIMM?
P Predict

R Run

I Investigate

M Modify

M Make
Macro Structure What input would produce the
output ‘Correct!’?

Relationships

Blocks What line does selection start on? Which line runs after line 3 when the
input is ‘Music’?

Atoms What is the condition in the code? What is the purpose of line 1 in
the code?

Text Surface Program Execution Function

Architecture/Structure Relevance/Intention
Macro Structure

Relationships

Blocks

Atoms

Text Surface Program Execution Function

Architecture/Structure Relevance/Intention
Investigate: Example Questions & Activities

What would happen What would happen Ask students to draw


if these two lines were if the input to the on the program to
the other way round? identify
program was 𝒙?
constructs

Draw the flow of Identify the scope of Identify the purpose


control on the a variable of a single statement
programs
e.g. show which line will be
executed when a loop ends
P Predict
Make sure the tasks are based around
the skill you’re trying to teach R Run

Or revisit existing skills and extend


I Investigate
Important: Are they learning what
you want them to learn? M Modify

M Make
P Predict
Ability level of task:
● Parson’s Problem: Rearrange the code
● Vary it by complexity of the task: One R Run
skill vs combining sets of skills
● Vary it by complexity of task: Simpler
instructions for more complex tasks I Investigate
Variation theory: How many ways can you
write a program to achieve the same result? M Modify

M Make
LIVE
BUILD
@LearningDust
[email protected]
Teams for Education

PRIMM
Thanks for attending

Don’t forget to sign in with


the link in the chat to
@MrAColley @LessonHacker
receive your certification
and the resources

You might also like