Create your own themed planning. Choose the approaches that suit your pupils.
Each planning element is categorised by the research that supports it, algorithmic concepts it uses, abstraction level or concept introduction that it relates to and programming language that could be used to code it.
- 2D Shapes / UK KS2 / US Grades 2-5 / Scratch
- Quiz / UK KS2 / US Grades 2-5 / Scratch
- Narrative / UK KS1 / US Grades K-1 / Scratch Jr
- Constructionism Seymour Papert(1) (CON)
- Use, Modify, Create Lee(2) (USE)
- PRIMM Sentence(3) (PRIMM)
- Paired Programming Denner et al (4) (PP)
- Cognative Load Sweller(5) (CL)
- Design Waite et al(6) (DES)
- Levels of Abstraction Armoni(7) Waite(6) (LOA)
Abstraction Level (LOA)
The four levels of abstraction we use here correspond to the four levels defined by Jane Waite(6) but the fourth level I have renamed the execution level rather than running the code level. This is just a personal preference for a shorter heading.
Pupils define the projects they are trying to make or the problem they are trying to solve? This might involve a diagram or sketch to support a general description.
The planning level could include:
Defining objects (and spaces if it is needed)
Decomposing complex projects into smaller parts (if it is needed)
Defining data structures such as variables, lists or procedures (if they are needed)
Initialising objects and characters (Saying where they will start or what data they will hold when the program begins)
Converting tasks into algorithmic rules and steps written in program agnostic language (algorithm)
This level could include labelled diagrams or sketches. Whilst written or drawn data is easier to refer back to, amend or supplement, pupils could record through video, sound recording or using other technology such as explain everything if age, ability or technology recommend it.
The code level is where algorithmic steps and rules are converted into code that will work on a digital machine.
The execution layer is what happens when the code level is run. What will need to be adapted or debugged?
Flexible floating up and down between levels, as needed, is to be encouraged. A new idea might be triggered whist a pupils is working in the code or execution layer. Revising the task level and planning levels to accommodate this is good practice. Pupils might only write a part of the algorithm before coding and executing this part. Returning to the planning level once that part is complete to think through the next idea in detailed rules or steps.
Concept introduction occurs outside of the four levels or abstraction where a new concept is introduced without direct reference to any programming project. A skilled teacher would be looking to dove-tale these into a wider project so pupils can quickly see the sense of their newly discovered knowledge.
(1) Papert, S., Mindstorms (1980)
(2) Irene Lee et al Computational thinking for Youth in practice (2011)
(3) Sentence PRIMM: A structured approach to teaching programming 2017
(4) Jill Denner,Linda Werner,Shannon Campe &Eloy Ortiz Pair Programming: Under What Conditions Is It Advantageous for Middle School Students? (2014)
(5) Sweller, J., Cognitive load during problem solving: Effects on learning, Cognitive Science, 12, 257-285 (1988).
Sweller, J., Instructional Design in Technical Areas, Camberwell, Victoria, Australia: Australian Council for Educational Research (1999).
(6) Jane Waite, Abstraction in Action: K-5 teachers’ uses of levels of abstraction, particularly the design level, in teaching programming, 2017
(7) Armoni, Teaching Abstract Thinking in Introduction to Computer Science for 7th Graders, 2013