Teaching programming
These articles provide evidenced-based approaches to teaching programming.

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.

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

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.

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

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.