Teaching programming
These articles provide evidenced-based approaches to teaching programming.
![](/media/dq3i30mm/teaching-programming_use-modify-create.jpg?anchor=center&mode=crop&width=250&height=166&rnd=132659373771700000)
Exploring pedagogies for teaching programming in school
Exploring pedagogies for teaching programming in school
This approach expands on the approach Use-Modify-Create. This is when a learner runs (uses) an existing program to see what it does, then modifies it, and then when able, creates a new project of their own.
![](/media/ymsmcjix/teaching-programming_primm-model.png?anchor=center&mode=crop&width=250&height=166&rnd=132659373747330000)
PRIMM: A structured approach to teaching programming
PRIMM: A structured approach to teaching programming
PRIMM is one approach that can help teachers structure lessons in programming. PRIMM stands for Predict, Run, Investigate, Modify, Make.
Image credit: United Kingdom Department of Education
![](/media/0jcddb1k/teaching-programming_continuum-of-approaches-for-teaching-programming.jpg?anchor=center&mode=crop&width=250&height=166&rnd=132659373692670000)
A continuum of scaffolding: from copying code to tinkering
A continuum of scaffolding: from copying code to tinkering
This simple model is presented as a linear continuum of instructional approaches. The continuum includes: copying code, targeted tasks, shared programming, guided exploration, project creation, and tinkering.
![](/media/hbekejmv/teaching-programming_10-quick-tips.png?anchor=center&mode=crop&width=250&height=166&rnd=132659373640800000)
Ten quick tips for teaching programming
Ten quick tips for teaching programming
Tip 1: Remember that there is no geek gene
Tip 2: Use peer instruction
Tip 3: Use live coding
Tip 4: Have students make predictions
Tip 5: Use pair programming
Tip 6: Use worked examples with labelled subgoals
Tip 7: Stick to one language
Tip 8: Use authentic tasks
Tip 9: Remember that novices are not experts
Tip 10: Don't just code
Image credit: 200degrees/ Pixabay
![](/media/wsyfozab/teaching-programming_a-z-handbook-on-teaching-introductory-programming.jpg?anchor=center&mode=crop&width=250&height=166&rnd=132659373664230000)
A-Z Handbook on Teaching Introductory Programming
A-Z Handbook on Teaching Introductory Programming
This book (accessed online using the 'look inside' feature or purchased in hard copy) provides a comprehensive guide to programming for all levels. It describes a range of effective teaching strategies.
![](/media/ckmin22h/teach-and-assess_effective-pedagogies_teaching-programming_code-tracing.png?anchor=center&mode=crop&width=250&height=166&rnd=133282061456670000)
Code tracing
Code tracing
Code tracing is a well-established approach to help learners develop their program comprehension.
It involves reading and analysing code, before running it to predict its outcome.
![](/media/ybjmftnp/teach-and-assess_effective-pedagogies_teaching-programming_worked-examples.png?anchor=center&mode=crop&width=250&height=166&rnd=133282063998230000)
Using worked examples supports novices to develop their programming practice
Using worked examples supports novices to develop their programming practice
Worked examples demonstrate an ‘expert’ solution to a problem and are used in many subjects to support novices, who use the examples as blueprints for solving new but related problems.