Our computing pedagogy
Our varied teaching and learning resources are informed by the latest computing education research, including our own academic research at the Foundation. A set of twelve pedagogy principles shapes these resources, and we've developed these principles based on up-to-date evidence of the best ways to teach and learn computing.

Reports
How each pedagogy principle is applied looks different in different contexts and for different areas of computing. Our topic reports explore big ideas and progression in different areas of computing, as well as relevant pedagogy principles and practices
Report: Programming and algorithms
Updated 26/03/24
Report: Data and information
Updated 26/03/24
Report: Computer systems and networking
Updated 26/03/24
Report: Digital literacy
Updated 26/03/24
Our pedagogy principles for computing
We have identified a selection of teaching approaches for each pedagogy principle. You can explore the research around many of these approaches through our short Pedagogy Quick Reads
- Lead with concepts
Support learners in the acquisition of knowledge, through the use of key concepts, terms, and vocabulary, providing opportunities to build a shared and consistent understanding. Glossaries, concept maps, and displays, along with regular recall and revision, can support this approach.
- Work together
Encourage collaboration, specifically using pair programming and peer instruction, and also structured group tasks. Working together stimulates classroom dialogue, articulation of concepts, and development of shared understanding.
- Pair programming (PDF)
- Peer instruction (PDF)
- Get hands-on
Use physical computing and making activities that offer tactile and sensory experiences to enhance learning. Combining electronics and programming with arts and crafts (especially through exploratory projects) provides learners with a creative, engaging context to explore and apply computing concepts.
- Physical computing (PDF)
- Project-based learning (PDF)
- Unplug, unpack, repack
Teach new concepts by first unpacking complex terms and ideas, exploring these ideas in unplugged and familiar contexts, then repacking this new understanding into the original concept. This approach (semantic waves) can help learners develop a secure understanding of complex concepts.
- Semantic waves (PDF)
- Culturally relevant pedagogy (PDF)
- Model everything
Model processes or practices — everything from debugging code to binary number conversions — using techniques such as worked examples and live coding. Modelling is particularly beneficial to novices, providing scaffolding that can be gradually taken away.
- Worked examples (PDF)
- Live coding (PDF)
- Foster program comprehension
Use a variety of activities to consolidate knowledge and understanding of the function and structure of programs, including debugging, tracing, and Parson’s Problems. Regular comprehension activities will help secure understanding and build connections with new knowledge.
- Worked examples (PDF)
- Create projects
Use project-based learning activities to provide learners with the opportunity to apply and consolidate their knowledge and understanding. Design is an important, often overlooked aspect of computing. Learners can consider how to develop an artefact for a particular user or function, and evaluate it against a set of criteria.
- Project-based learning (PDF)
- Add variety
Provide activities with different levels of direction, scaffolding, and support that promote active learning, ranging from highly structured to more exploratory tasks. Adapting your instruction to suit different objectives will help keep all learners engaged and encourage greater independence.
- Challenge misconceptions
Use formative questioning to uncover misconceptions and adapt teaching to address them as they occur. Awareness of common misconceptions alongside discussion, concept mapping, peer instruction, or simple quizzes can help identify areas of confusion.
- Make concrete
Bring abstract concepts to life with real-world, contextual examples and a focus on interdependencies with other curriculum subjects. This can be achieved through the use of unplugged activities, proposing analogies, storytelling around concepts, and finding examples of the concepts in learners’ lives.
- Structure lessons
Use supportive frameworks when planning lessons, such as PRIMM (Predict, Run, Investigate, Modify, Make) and Use-Modify-Create. These frameworks are based on research and ensure that differentiation can be built in at various stages of the lesson.
- Cognitive load theory (PDF)
- PRIMM (PDF)
- Read and explore code first
When teaching programming, focus first on code ‘reading’ activities, before code writing. With both block-based and text-based programming, encourage learners to review and interpret blocks of code. Research has shown that being able to read, trace, and explain code augments learners’ ability to write code.
- Code tracing (PDF)
- PRIMM (PDF)
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
Quick Reads:
The Big Book of Computing Pedagogy
Our Hello World special edition on pedagogy is structured around our twelve pedagogy principles and describes a range of tried-and-tested approaches to teaching computing.
Take a look