How do I teach... designing, writing and debugging programs that accomplish specific goals in KS2

Author: Estelle Ashman, Curriculum Content Developer

This month our 'How do I teach...' blog will focus on ideas of how you could teach designing, writing and debugging programs that accomplish specific goals.

This months National Curriculum strand: Design, write and debug programs that accomplish specific goals.

Common misconceptions

  1. This strand is just about programming. It is easy to focus on the writing element of this strand but it is also about designing and debugging programs too. That means that schools should be giving students opportunities to design and debug programs as well as experience with programming. Personally, I don't think that design should be taught in isolation from writing - students need something tangible to be designing for and there is a danger of students loosing the ability of linking their design to the actual programming that they would need to carry out if the two are taught separately. It is also a good way of introducing the concept that different programming languages use different constructs and that, despite the design being the same, the implementation of the design within a programming language will be different depending on the constructs available within that language. It is also important to encourage students to link designing a program to writing algorithms.
  2. Debugging has to be delivered alongside designing and writing. Debugging doesn't have to be delivered alongside writing and designing, in fact it can be a richer learning experience when it is embedded into cross-curricular activities. One example might be students learning about the life cycle of a frog being presented a Scratch program for such a life cycle with errors built into the pre-written program. Students have to debug the program in order to make the life cycle work correctly - embedding a debugging task into a cross-curricular project in such a way provides a way of testing prior learning simultaneously with evidencing debugging skills. There is no need for students to write their own program here, instead they are being tested on how well they understand the programming constructs used within the pre-written program.
  3. Design is just about what the program will look like. I suspect that this misconception may be in part due to the popularity of the use of Scratch programming language in the UK as its object oriented style of programming can mean that students focus on the design of their sprites at a detriment to the programming of them. Although this is an important element of design, it is important that students are encouraged to think about how their programming will work. Some scaffolding within worksheets can help with this, for example students may produce a design sheet for the programming of a superhero's super powers - the design sheet includes space for the student to design the sprites before and after activating that super power but crucially it also includes a middle section where students detail what key presses begin the activation process.

What resources do Digital Schoolhouse have to support the teaching of this strand?


  1. Just Dance with the Algorithm This dance based workshop covers all 3 areas of the strand but is brilliant at introducing and scaffolding the design of algorithms. Students are introduced to the concept graphically (using Ubisoft's picto images from the popular Just Dance video game), symbolically (though the use of flowcharts) and textually (using pseudocode) by designing their own dance routine. Students then take this design and write their own program digitising their dance using Scratch. This workshop includes the following 
  2. Generating Art: Creating a Shape Calculator This workshop covers all three elements of this months strand but is great at helping students to understand the concept of debugging and writing. Students are presented with programs that should draw certain shapes but don't work quite as expected - students are then encouraged to debug them and make them run correctly. They also have to write their own programs to produce different shapes.
  3. Scratch Stories: Story telling with a twist This workshop covers all three parts of this months strand but is particularly strong at introducing the design of a program using a slightly different format - a storyboard. Students create a storyboard to animate a section of a story complete with details of any programming needed to create the animation. The workshop is designed around teaching the Great Fire of London but can be easily adapted for other themes or books.

Playful Computing Activities

There can be only one playful activity for teaching this strand: Making Faces: Playdough Programming, in this simple activity students take it in turns to design and debug an algorithm for programming their partner to create a pre-defined object using PlayDough.

And there you have it, three workshop suggestions and a playful computing activity to help you deliver the designing, writing and debugging programs that accomplish specific goals strand from the Key Stage 2 National Curriculum for Computing. If you have any comments or queries about these resources, I'd love to hear from you - drop me an email at If you're not sure where these activities could fit into your curriculum or would like to see the resources in action first? You can book a free workshop with your local Schoolhouse.