When the new Computing Curriculum came into effect in 2014, it was a much-needed revision. While the ICT Curriculum contained plenty of practical skills, much of it was also very outdated. But the challenge was not small - if ICT was like learning to drive a car, the new Computing Curriculum was akin to learning how to build one!
When the curriculum was introduced, I thought that it was a huge gamble. It could either launch future generations into programming or completely turn a generation off computing. In light of this, I feel that teachers have a huge responsibility to teach computing well and I’ve found children learn much better using creative methods. That’s why the strategies I’ve developed take a focus that is active, combining goal-orientated tasks, with first hand personal experiences and topics/themes that the students are interested in. It’s very important for students (and teachers) to realise why they are learning to code, to show them real-world applications and to help them to understand why computer science is important, now and in the future.
Practical examples include:
Algorithms: Simply put, algorithms are instructions or rules for computers. One way to teach children about this is to choose a fun, structured dance routine, which is popular with students e.g. the Macarena, and ask them to show you how it’s done. By encouraging them to break the moves down into steps (using pictures, sketches or symbols) you can teach children about algorithmic formation and delivery. This is also an easy way to engage girls in computer science.
Computational thinking: This involves ‘thinking like a computer’, i.e. in a logical, linear way. Give young children sorting bears or blocks and they will immediately arrange them by size, shape or colour. This is essentially what a database does. Using Lego bricks, an agreed shape and barrier games is an excellent way to introduce computational thinking.
Robotics: Ask a child to create a robotic algorithm and prepare for a blank stare! However, show students videos of a competition using programmable robotic mice to solve a maze and it puts things into context. Children will quickly learn what robots can do, what an algorithm is used for, and why we need to program one. Show Google self-driving cars and Amazon delivery drones for more real-life applications of robots.
Graphics: At their most fundamental level computer graphics are built using binary code. Using colour-coded graph paper in place of binary data, you can introduce the concept of simple graphics such as bitmaps and sprites. Add in a simple binary code and use Tetris shape tessellation for variation. This technique has an almost endless array of applications in art classes.
As the methods above demonstrate, computing needn’t be divorced from creativity. However, for some teachers the subject can be so daunting that creativity is the last thing on their minds. Here are some things to remember:
The most important thing I’ve learned about teaching computing is to embrace your weaknesses. When we’re responsible for a child’s learning, this can be hard. The trick is not to see it as a challenge but to see what the children can teach us. Tough though that sounds, once you take the plunge, it makes things a lot easier... and much more fun, too.
Julian, great to hear your encouraging words about computing at primary education. It's good having you on board as a CAS Master Teacher and Hub Leader. I hope you're inspiring other primary teachers in your area to "have a go" at computing. Don't forget the CAS Barefoot workshops and resources as an introduction to teaching computing concepts at primary level! @BarefootComp
Many mundane activities are algorithmic, e.g Knitting, singing "10 Green Bottles", (and "10 Sticks of Dynamite" for exception handling), and the "12 Days of Christmas". The algorithmic nature of these activities should be emphasised and form the basis of the activity to instill "algorithmic thinking". Older girls may have fun with "LabanWriter" software to compose dances
Programming and computer science is for everyone, the easiest way to learn is to do what humans do best, by making things meaningful - leave the rest to the computer.
I teach programming as a creative discipline, with a design based pedagogy, more in line with how software developers and designers actually write code.
In juniors we do it as digital story making, where the children learn to code (and teach each other) by solving the problems they encounter in expressing their creativity. This easily extends into making dynamic stories in history, geography, and science.
This solar system was made by a 12 year old boy at Digital Makers at the Guild http://teach-programming.github.io/LouisPlanets/ based on our materials hosted on project-tigr http://www.project-tigr.co.uk/
Scroll down my twitter feed, to see some of the things we get up to in school and clubs https://twitter.com/programming_uk
focal is just about any real application is DATA
I don't disagree with anything Julian says but he concentrates on HOW but WHAT is to be processed actually drives a huge amount of the former. Looking at data structure (e.g. as in Jackson) shows you the shape of the solution - irrespective of the