Tuesday 12 May 2015

The magic of computer coding



Is teaching computing in schools just about training programmers for the future, or is it something more? Adam Lipecz considers the liberating power of technology.



"Programming is infiltrating loads of different traditional areas, … Learning how to code allows kids to do their own thing, be creative and secure a job in an area where there will be a huge shortage."
Rachel Swidenbank, Codecademy's Head of U.K. Operations (here)

"I view computer science as a liberal art. It should be something that everybody learns, takes a year in their lives, one of the courses they take is, you know, learning how to program. Because it teaches you how to think."
Steve Jobs in 'The Lost Interview', 1995.

These are visionary people speaking from deep understanding and experience of an aspect of life, and because they feel this is something that they must stand up for.

Last September, teachers of all age groups were thrown in the deep end of teaching computer programming as a mandatory part of the new curriculum. But how confident do you feel about this subject? Could you explain to a fellow teacher why computing is important in the classroom? How can you teach it efficiently and interestingly? What tools should you use? In this article, I will shed light on some possible answers.

The importance of interaction
There was a teacher who shadowed two students over two days in order to experience what it's like to learn in schools today. She wrote of her experience: “I wish I could go back to every class of students I ever had and change a minimum of ten things”.

At one point, she describes what it's like to sit all day listening to lessons, saying: “...Students move almost never. And never is exhausting. In every class, for four long blocks, the expectation was for us to come in, take our seats, and sit down for the duration of the time. By the end of the day, I could not stop yawning and I was desperate to move or stretch. I couldn't believe how alert my host student was, because it took a lot of conscious effort for me not to get up and start doing jumping jacks in the middle of science, just to keep my mind and body from slipping into oblivion after so many hours of sitting passively.”

And as a child's body, so is their mind. If they are forced to sit, passive and motionless all day, how on earth do we dare expect their mind to be active, creative and proactive?

Kids have to be challenged in the classroom - they have to be moved. Why are virtual games and smart devices so irresistible to children? It has nothing to do with screens, buttons or ones and zeroes. First and foremost, they are interactive. They let the kids decide the path of their discovery. For every action (which they can make freely and without any fear of public retaliation), there is a reaction from which they can learn. Second, virtual games are often professional products, meaning they are visually appealing, build on core genetic impulses and operate with subconscious triggers.

This is a great opportunity which lies unused by some teachers - kids love and have grown attached to technology. With the guidance of a tutor, this can be turned to the advantage of both teacher and pupil; a perfect tool to engage and have attention advantage.

Why teach programming?
Technology is all around us - it’s here to stay - and we not only have to get kids ready to use it, but build it too. They might already be digital natives, but teaching them the principles of coding helps them grasp how technology works 'under the hood', and the ultimate goal is to explain how the building bricks of technology come together to create the world we live in.

Programming is a creative, highly interactive process, providing instant and clear feedback - a cornerstone of how kids function, and how they like to learn and discover. It promotes 4C skills (Communication, Collaboration, Critical thinking and Creativity) and helps in learning how to build efficient mental models.

But should every child learn computing? I quote Simon Peyton Jones, an honorary Professor of Computer Science at the University of Glasgow to answer this question: 

“Should every child do it? From primary school? Let me ask you this: Why do we ask every child to learn science from primary school? Not because they are all going to become physicists. It’s because science teaches us something about the world around us; and if we know nothing about the way the world around us works, we are disempowered citizens. Even when you switch on the light, you know that the light doesn’t happen by magic, it happens by electricity that comes along wires, the wires can be dangerous, the electricity comes from a power station, the power station burns fuel, it may cause global warming… all of that is underpinned by the science knowledge you gained at school, whether or not you’re a scientist.”

Computing lessons are not only to train programmers for the future. Sure, that’s also a welcome by-product, as the UK will have a shortage of 249,000 workers for technologically skilled jobs by 2020. But programming, whether a potential career route or not, is an essential asset for our newest generations. 

And that's something the government has come to realise. Just glance through the main goals of the very curriculum now mandatory in every UK school, which aims to ensure all pupils:
  • Can understand and apply the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation
  • Can analyse problems in computational terms, and have repeated practical experience of writing computer programs in order to solve such problems
  • Can evaluate and apply information technology, including new or unfamiliar technologies, analytically to solve problems
  • Are responsible, competent, confident and creative users of information and communication technology.

What can you do?
As a teacher, you are the one expected to introduce children to the digital world of computing. This responsibility of a first impression is both powerful and potentially dangerous. You can make them love or hate it. So I would like to suggest some ideas that can help you.
  • Encourage children to tell their parents about what they learn in computing lessons, and motivate parents to be interested. As Bill Mitchell at BCS says: “I suspect children will be delighted to tell parents something they don’t know about!” 
  • Be open and motivated. Speak to fellow teachers about their ideas and methods, organise meetings on this topic or join an existing movement like CoderDojo or the UK initiative Coder Club.
  • Be prepared to accept help and be lectured by people whom you never thought you would get advice from. Even from pupils.
  • Be innovative. You don’t need pricey iPads to introduce computing ideas to kids. With some clever games, like 'How to train your robot', developed by Nikos Michalakis (aka. Dr. Techniko), basic concepts can be easily taught in a fun way. Also there are affordable tools like Codie - robotic toys which work with a smartphone app, and allow children to interact and make codes in just two minutes. 
  • Do your research. There are plenty of online tools, tablets and other touch-screen based apps, as well as educational toys and packages that you can integrate into your computing lessons.
And remember, at the end, the most important player in this game is you, the teachers, who are actually in the classrooms, helping kids to reach their dreams.


By Adam Lipecz, co-founder and CEO of Codie, making robotic toys that teach the basics of programming. Find more information on Codie at: www.indiegogo.com/projects/codie-cute-personal-robot-that-makes-coding-fun