So why computing? Why not ICT?
In the early days of computers and computing, users has no choice but to create their own programs and algorithms. Computers would only do what you could tell it. Software companies such as IBM, Microsoft and Apple began to produce home computers that could be used by anyone. With this came the development of software designed to fulfil a single purpose. The early spreadsheets and word processors allowed for time-consuming tasks such as bookkeeping to be automated.
I was lucky enough to be at school as the first computers were making their way into school. We were expose d to computer games such as “granny’s Garden”, which was one of the first educational games. However, we were also encouraged to explore the power of programming in basic or logo. As I made my way through school, the technology advanced and the focus shifted away from the programming aspects to more functional office skills to prepare us for the modern workplace.
In last 15 years as a teacher, I have seen a large push towards ICT and digital literacy (the ability to use computers to create using commercially available software). Children have been encouraged to use word processors, paint packages and the internet to produce pieces of work. This has led to some fantastic work being created, but it has also created a generation of consumers who are happy to work within the constraints of the software they use.
We now face a skills gap of those people who are able to look beyond the system constraints and ask “what if?”. Industry needs people who can create software and hardware, people who can code the websites that we use every day. We also need people who can work to keep us safe from the ever-growing threat of cyber-crime and cyber terrorism.
In response to this, Michael Gove announced an entirely new computing curriculum as part of his New National Curriculum (2014).
“Our school system has not prepared children for this new world. Millions have left school over the past decade without even the basics they need for a decent job. And the current curriculum cannot prepare British students to work at the very forefront of technological change.” Michael Gove
With many large businesses supporting the coding initiative, it will become more and more embedded in our school curriculum. Barclays’s Bank have released their own coding resources, The BBC has created and released a ‘microbit’ programmable device that will allow children to create their own LED display sequences.
The hour of code initiative has massive support in the United States with internet giants such as Mark Zuckerberg showing his support. App makers Rovio have allowed their characters to be used in the exercises as a way to hook the children’s interest.
“This is a really exciting time to be a pupil at primary school. The opportunities that advances in technology will bring to your pupils as they grow up are hard to imagine. The curiosity, creativity and courage that you nurture in them now should endure as they move on through education and into adult life. To exploit fully the opportunities that current and future technology offers them, pupils will draw on the understanding of computing you provide them with, as well as confidence gained through working on a range of meaningful projects throughout their primary education.” Computing at school.
With the new curriculum, we hope to inspire the next Gates, Zuckerberg or Jobs. The children who are taking their first tentative steps into writing code today may be the innovators of the future. Technology has advanced greatly in my lifetime from the very first home computers to an age where even your home heating can be controlled from your phone. Through the teaching of computing, we can equip the tools to empower the children to advance our lives ever further.
What does coding in school actually look like?
With coding, there is more than meets the eye. It is easy to assume children can jump straight into creating their complex games and programs. However, before they can, there are certain skills that pupils need to learn:
Children must know what an algorithm is and begin to create their own to achieve simple tasks. Whether this is assembling blocks in Scratch, selecting logical code statements in Kodu or if they are feeling brave, writing their own instruction in Logo.
Alongside this, children must be taught to debug their algorithms when the outcome is different from what was expected. This is an excellent way for children to demonstrate a knowledge of what each part of their algorithm should achieve. This is the computing equivalent of checking a piece of writing when complete and making changes to ensure it best achieves the brief set.
Repeats are essential in ensuring algorithms as efficient as possible. Repeats allow for sections of code that need to be used over and over again to be assimilated in to a much shorter and therefor efficient algorithm. This is particularly useful in scratch where you want something be always the case rather than happening a single time.
Understand the difference between inputs and outputs:
Children need to be aware of the differences between inputs (keyboards/sensors/mouse) and outputs (sounds/movements/led/motors). They need to understand that an algorithm turns an input into an output. Without an input to start the algorithm, running it cannot achieve the desired output.
Use Logical arguments:
Logical arguments can be thought of as maths. Computers make excellent calculators and they understand add (+), subtract (-), multiply (x) and divide (/). They also understand the concept of equivalence (=) and inequality (< or>). Using these within algorithms create incredibly useful possibilities. For example when a score is greater than 1000 you win, or if lives reach zero then trigger game over.
Following on from logical arguments variable allow for sections of code to be changed without the need for human interaction. Think of this as the idea of adding one to the score each time pacman eats a dot. Think also as time as a variable where any form of countdown is used. There will be a section of code that changes the variable ‘time’ to reduce by one. Once the children start to use variables, they can create more complicated games and programs.
Selection is a useful tool in writing algorithms where you need to create different outputs based on the input that is given. For example, we wanted to create an algorithm that changed the name of the shape said by the character depending on the number of sides we input. Having a list of shape names allows us to select the correct item from the list. If the number of side a shape has is inputted as three, we could select the third item on our list, which we had prearranged to be a triangle.
Subroutines allow for programs that are more complex. A Subroutine is a separate algorithm that can be triggered from the main algorithm. When we talk of programs and certainly in real life examples, programs are collections of algorithms that are triggered as needed by other sections of code. Subroutines allow us to trigger two or more algorithms at once.
Once children are aware of the above concepts, they can start to reverse engineer other algorithms to understand how they work. They can remix and improve the programs.
Coding is more than clicking blocks better and hoping for the best. It has rules that form the basis of learning as arithmetic does in maths, or grammar does in English. With a sound knowledge of these concepts, children are free to be creative and create the next generation of apps, programs and games.