Programming for Primary Schools Using iPad Apps

With the introduction of Computer Science into the UK curriculum in 2014, learning to program is now an entitlement and a vital skill for children to learn. As technology becomes more and more ingrained into our everyday lives, it is important that our children have practical experience of programming and an understanding of technology and how it works as we prepare them for the creativity needed to drive the 21st century.


Businesses are in need of good programmers. Richard Branson, Founder, Virgin Group states  “whether we’re fighting climate change or going into space everything is powered by computers, and we don’t have enough people who can code.” Not only is programming an employable skill for the 21st Century but a highly useful skill too. Maria Klawe, President, Harvey Mudd College says “Coding is today’s language of creativity. All our children deserve a chance to become creators instead of consumers of computer science.” Learning to program enhances other areas of the curriculum; including problem solving, critical thinking and logical thinking and can be helpful in understanding other subjects, such as maths.


Computer Science in Primary Schools

It is therefore vital that primary schools and teachers are equipping children with the necessary skills to program at a young age and to enable them to become digitally literate at a level suitable for the future workplace. The National Curriculum states ‘a high quality computing education equips pupils to use computational thinking and creativity to understand and change the world’. From the age of 5 years old, children will need to begin to understand what algorithms are, how to create and debug simple programs and predict the behaviours of simple programs. Once the children are in Key Stage 2 they will start to design, write and debug programs that accomplish specific goals. Use sequence, selection and repetition in programs; work with variables and various forms of input and output. Use logical reasoning to explain how algorithms work and be able to debug programs.


Programming Lessons

Prior to programming lessons the children should have a sound knowledge about the internet and the components which make up a computer systems. For example:

  • Do they know the components that make up the inside of a computer system?
  • What’s the difference between hardware and software?
  • What is an operating system?
  • What is a network? How does it work?
  • What is programming and what are some of the programming languages used to make programs work?
  • What are algorithms?
  • Why do you need to debug programs?

For inspiration from the likes of Mark Zuckerburg, Bill Gates and on why children should learn to program a computer, share this short video with your pupils:


What Most Schools Don’t Teach


This video has been used with the permission from which is a “non-profit dedicated to growing computer programming education.  Our vision is that every student in every school should have the opportunity to learn computer science.”


Included below are a selection of iPad apps that could be used to introduce children to programming and could form part, but not all of the new Computer Science Curriculum. Online resources, such as Scratch and Kudo should also be considered and different programming languages such as Python and HTML could also be covered.




I’ve written 20 programming lessons using the apps mentioned above, to introduce 7-11 years olds to programming in an engaging, challenging and fun way using iPad apps. I’m hoping to have the iBook available as a download in the iBook Store in the near future.



The lesson plans include; learning objectives, video tutorials, activities, questions and assessment opportunities. In each lesson the pupils should learn to test programs that they’ve created and understand how it works and have time to reflect, evaluate and consolidate their learning. The pupils should be prepared to understand that their code isn’t always going to work first time and be taught to debug through trail and error as part of the learning process and encouraged to discover “what will happen if I do this?” Mistakes in programming should be seen as normal. Programmers will make mistakes.

Opportunities should be given to pupils to share their finished programs. Giving the opportunity for pupils to create something for a specific audience is a crucial part of the learning process and gives the pupils rea

l pride in their work and makes it matter.


Below I’ve included Lesson 2 using the Hopscotch app:


  • Design and write programs that accomplish specific goals, including controlling or simulating physical systems; solve problems by decomposing them into smaller parts.
  • Use sequence, selection, and repetition in programs; work with variables and various forms of input and output; generate appropriate inputs and predicted outputs to test programs.
  • Use logical reasoning to explain how a simple algorithm works and to detect and correct errors in algorithms and programs.


Recap on the previous lesson:

  • What did the pupils learn?
  • Did they find it easy/hard?
  • How successful were their codes?
  • Did they have to de-bug their code? Did they de-bug their code successfully?


The previous lesson focused on using the Motion and Lines blocks but their code included a lot of repetition i.e. to draw the square.


Explain that there is a more efficient way to program and reduce the number of steps involved in their script and ways to write cleaner programs using repeat blocks.



1) Watch the video tutorial


2) Challenge: Move your monster from the bottom left of the screen to the top right of the screen using only vertical and horizontal movements (stair movement) On the right is a possible solution to the problem.


3) Once the task has been completed encourage the pupils to experiment with the blocks of code. Below are examples of challenges that the children could be set:

  • What happens if you drop the random block into your script? Does the same thing happen next time you press play?
  • Move the random block in Operator to different part of your script. What happens?
  • Can you start you monster in a different position on the screen?
  • Using the Looks blocks can you get your monster to gradually get bigger/smaller?
  • What happens when you change the opacity/change costume?
  • In Controls use the wait block in your script. What happens?


4) Give the pupils an opportunity to be more creative with what they’ve learnt so far.


5) Ask the pupils to share and evaluate their code:

  • Did they take risks?
  • Did their code work?
  • Did they need to debug their code?
  • Can they explain their code?
  • Could they teach someone else their code?


6) Ask the pupils to take screenshots of their finished code in the editor and again once the code has been played. The screenshots could be combined using an app such as Strip Designer and used for assessment:



If you’d wish to leave a comment, share your opinion or have any questions regarding this blog post I’d be happy to get back in touch.


About the authorDavid Andrews has a reputation as one of the country’s leading educational practitioners in the field of technology in the classroom. His work ( has influenced classroom practice around the world. Alongside his colleague (Chris Williams) they are committed to a belief and vision that technology should be used to transform teaching and learning, rather than simply enhance it and that teachers and pupils need to embrace technology to respond to the ever changing demands of the 21st Century. Mr Andrews Online are working with the National Association of Head Teachers ‘Transforming Teaching & Learning using Mobile Technology’ & ‘Developing Cross-Curricular Writing with Integrated Technology’ and National Literacy Trust ‘How to be outstanding in the new curriculum’ and Focus Education ‘Teaching the new Computing curriculum with iPads’.