Big question: what computer skills should be taught in schools?

The recent announcement that Britain's national school curriculum will soon include a computer science course that teaches coding has been met with much excitement. Our panel of experts discuss how they’d like to see the course put together

Anna Dahlstrom

As with any teaching curricula it has to be revised to ensure it meets the needs and current levels of the children it’s educating. Enormous development has taken place since we went to school and for many the skills that are being taught today are too basic and too unchallenging, leaving the children bored.

Of course there is a need to ensure that those children who, for example, don’t have access to a computer at home still get the basic education they need. But the decision to replace ICT with computer science is one I’m very pleased to see. Programming stimulates logical thinking and teaching children to create something of their own, whether that is a simple game or a 2D model, is very inspiring. Not everyone will, or should, go off to work in digital but done rightly it will teach children that they can create something from nothing using a language that was previously unknown to them.

There are a number of aspects to be ironed out but as much as I think this will be rewarding for the children, I believe the same will go for the teachers and it will hopefully foster change and creativity across generations.

Anna is a freelance user experience designer

Anna Debenham

There needs to be continued teaching of some basic knowledge. There’s a belief that every child instinctively knows how to use technology, but there are still one million children in the UK who don’t have access to a computer at home.

Many schools do the job of scanning for viruses, blocking fraudulent sites and making file backups, but this doesn’t prepare the student for real life. Teaching how to spot a phishing scam or how to communicate securely online should be taught as standard for when they’re outside of this safety net.

Some topics I’d like to see explored in the lessons include open source software, Creative Commons, and the importance of usability, accessibility and interface design. Realistically, teachers who don’t already know a programming language won’t have enough time or confidence to teach it from September, so software such as Scratch will be popular because it teaches the concepts of programming in a visual way.

Technology has progressed beyond the desktop computer, and so should lessons. Students should have the opportunity to tinker with mobiles and tablets and also learn some hardware skills. I imagine Arduino boards and Lego Mindstorms will go down well.

Anna is a freelance frontend developer

Lorna Mitchell

The most important thing for me is that kids should realise there is code behind all the various devices they use, and that they can write their own content for some platforms. Every child should have that lightbulb moment of writing code to make something happen! I’m sure I can’t be the only person who wasted their lunch break at school writing a ‘guess the number’ game on her graphical calculator (complete with ASCII art, of course) – we must present something similar to today's children if we can. From the Logo Turtle to the Raspberry Pi, to the Arduino: let them see and begin to try things out themselves.

The big problem of course is the staffing; it’s all very well changing the curriculum but what about the teachers (whom I’m sure are all perfectly good at what they do!) who are suddenly being presented with new content that they know nothing of? There’s a huge appetite from the industry to help them and the kids, and I hope someone can find some way of joining these two things up – I know I'd pitch in if I knew how I could help.

Lorna is a freelance software consultant

Gavin Elliott

Our industry should be rejoicing right now that this has finally happened. It is long overdue. I did one of those ‘ICT Courses’ and it was a glorified ‘this is how you use a word processor’ course. We have some great web educators in the UK and I’d be delighted for these to be called on to help create the coding courses from a point of view of ‘what the industry needs’.

I do think, however, that this change to the curriculum could be two-pronged, and a student should have the option of which route to go down. There should be a core level that is taught to everyone, then diversify it into a heavier coding course or more design/coding related one.

Let’s hope that these courses are put together thinking forwards rather than back: skills should be taught with today in mind. I’d also like to see the courses iterated on heavily to make sure they’re up to date with the industry.

Gavin is organising The Industry Conference for 2012

Chris Coyier

Teaching coding to kids is a good idea from my perspective. Coding teaches logic, problem solving, math, abstract thinking... all good things for people of any age to learn. I’m sure a gardener could probably make a pretty good case of how gardening should be taught in schools too, so I admit my own bias here, but us in tech can also point out the explosive growth of tech in the lives of people worldwide. Schools get a double bang for teaching coding: a learning tool that is also real-world relevant.

Chris is a web designer working at Wufoo

Jonathan Smiley

Students today need to learn how computers work, and programming is a good way to learn not only that but also logic, math, and problem solving.

The upcoming changes may be scuttled by minimal teacher training, or poorly thought out curricula, but I’m in favor of any education we can provide about programming. Even if their ‘programming’ just means HTML.

Jonathan is a design lead at ZURB

Andy Budd

I think the first thing to get clear is that this course shouldn’t be designed to teach people to become web designers, mobile designers or games developers. Instead it’s to teach young people how the technology that touches every aspect of their life is created. The goal of this would be to give them agency in the world and turn them from mere operators or consumers into potential makers. As such the courses should focus on core skills rather than specific languages or industry applications.

The main thing I’d like to see taught is a basic understanding of computer programming. This can be done using online tools such as Scratch, or by teaching pupils to program the Arduino. Pupils could also be taught basic web skills like HTML/CSS and JavaScript or they could even start with pseudocode. The actual mechanism is less important than the logic and problem solving skills they would pick up along the way. So it’s really about finding ways to engage and motivate individuals to keep at it.

Andy is managing director of Clearleft

Joe Leech

One of the biggest issues facing any curriculum being developed that includes coding is sheer pace of change in our industry. Approaches and frameworks come and go. One moment we’re coding in XHTML and then the tide changes and it’s HTML5.

I’d like to see a robust foundation with the ability to change elements of the curriculum based on current industry best practice. We’re used to turning on a dime I really hope schools can keep up.

Joe is user experience director at cxpartners

Aral Balkan

I couldn’t be happier to hear of the government’s plans to replace ICT in schools with a curriculum that teaches coding. The ICT curriculum was a national disgrace – teaching kids secretarial skills instead of digital fluency – and I am happy to see it go. Computer programming is the new literacy. Under the ICT curriculum, we were raising a generation of kids who were, effectively, illiterate in so far as the modern world is concerned.

People usually mistake being a ‘digital native’ (that is, being brought up surrounded by and consuming digital technology) with being digitally literate or fluent. It’s true that kids in the UK today are born into being digital consumers but this doesn’t mean that they will automatically graduate into being digital creators. Just as a kid may learn to speak English without ever learning to read or write English if she is not taught it at school, so too with computer literacy. Stated like that, teaching kids programming is teaching them to read and write in the language of computing. This is a key skill today and will be even more so in the future.

There is real potential here to replace ICT with a curriculum that will inspire a whole generation of digitally fluent creators. There is opportunity to make the curriculum fun and empowering at the same time. Programming is fun. And a child’s first introduction to computing is a key moment. It can be made dull and boring (such as teaching them Microsoft Office products, such as spreadsheets – which is what the ICT curriculum was doing), or it can be made magical (like getting them to make a game).

This is a topic that I am hugely passionate about and I’ve seen the difference that this can make first hand.

While planning the Brighton Digital Festival, we made a conscious decision to focus on computer education. As part of the festival programme, we set up an Education track and as part of that track, Anna Debenham and myself visited two local schools to teach the kids one-hour sessions in programming and hacking the web. You should have seen the excitement in their eyes when I was teaching them Scratch – a visual programming tool – when they first made a cartoon cat chase the mouse pointer on their screens. It was magical. They made a thing. They made a cool thing. They will never forget that moment and some of them will be inspired to take up computing in the future. It was amazing to watch a group of students who were rather dreading yet another ICT class not want to leave at room at the end of the hour because they wanted to work on their game more.

We’re at a key point in history. The shape of the computing curriculum will, to a large degree, determine the future of computing in the UK and the role that the next generations will play on the world stage. The decisions we make today will determine whether the UK plays second fiddle in technology to countries like India and China or whether we have a shot at leading the way.

Programming is fun. The programming curriculum should be fun. And we should start teaching kids how to make games and code from the youngest ages. And we must stay away from the mistakes of the past.

It would be a fundamental mistake to tie the new curriculum into any one proprietary technology or vendor. One of the biggest problems in tech education in the UK is the huge amount of lobbying power that large multinational corporations such as Microsoft have. Instead, the new computing curriculum should be based on non-proprietary, open technologies.

Kids should be learning Scratch on Linux then graduating to other open technologies such as Python.

It’s important to focus on teaching first principles, and key concepts, not any one software package or product. Once the fundamentals are in place, and once a person is digitally fluent, they can easily migrate their knowledge to other technologies and products if they need to.

We need to teach kids the basics, in as open and fun a manner as possible.

Aral is a designer, developer, professional speaker, teacher, and author of the Feathers iPhone app

Chris Mills

This is a big step forward for the web industry and ICT in general if done right, but there is always a danger of the government screwing up anything they touch. We need to make sure that this is developed in association with real industry people, and with connections with other disciplines in mind.

Coding is important, yes. But it’s also important to recognise when coding is not the best way to solve a problem, and something else might be better (eg CSS versus JavaScript in our industry)

And usability/accessibility/interaction design is vital. Coding on its own tends to lead to a load of crazy programs that no one else can use. And the importance of good oral and written communication is vital. Basic maths is also really important as a precursor to coding, as is planning and designing systems, whether this manifests as prototyping, systems design, or whatever.

I also think that the ICT basics shouldn’t be forgotten about – word processing, responsible web usage, hardware and software troubleshooting, and so on. This is still a vital part and should not be forgotten, but it is also not the be-all and end-all.

Chris educates on open standards for Opera

Leisa Reichelt

I’m not the right person to define a precise technical skill set for kids. But as a mother of two, I’d really like to see my boys being able to start making things with code by the time they’re about eight years old.

So my interest is in them getting started with this sooner rather than later, and having the tools/skills to be able to make interesting things, not just learn for the sake of it.

Keeping the focus on making gives us a chance to capture their imagination and get them excited about the amazing things they could do if they knew more, which is the ultimate atmosphere for learning, right?

Leisa is a freelance user experience consultant

Trent Walton

I think everyone, regardless of profession, would benefit from knowing basic HTML and even a little bit of CSS. Whereas Microsoft Publisher would have sufficed for any communications or marketing department employee 10+ years ago, clients we work with who can handle basic <p> or <img> tags (and not go cross-eyed when viewing source) get more accomplished and more out of the project.

If we are to draw talent to our field, there should be a large practical application component. So much of the joy I derive from coding is the rewarding see-how-I-made-this-thing-work experience. Keeping current requires the embrace of a learn-by-doing approach, and the sooner we can instill that in both students and ourselves, the better we'll be for it.

Trent is founder of Paravel

Margaret Manning

Fundamentally, any course that tries to teach programming will need to have a real-world application in order to mean something to the individual. By making the outputs of the course relevant, kids will engage and when they engage, they learn and apply those skills elsewhere. Crucially, they need to learn to use programming creatively, as an expressive tool that drives insights and innovation.

Personally I would like to see them working with simple scripting tools that make it easy to see real visual results (for example, use a game engine to develop a simple platformer) or use easy-to-program microcontrollers such as the Arduino and show them how to make real things, driving the imagination and showing tangible results. The great thing about a programming-oriented course is that it can be project-driven and really inspire young minds if given the right tools.

Margaret Manning is CEO of Reading Room

Shane Mielke

The most important skill to learn is creative problem solving and flexibility. Anyone can be taught the basics of coding, organisation and syntax. A true coder is continually challenged with using that knowledge in developing unique custom solutions, collaborating with other developers’ individual styles, working with designers who create unique design and functional situations and chasing/fixing bugs.

In all of these scenarios the solutions are always unique and come from outside of the basic documented help areas and standardised sample code of any programming language. A course like this would need to not only cover basic techniques and solutions, but also place the students in unique situations where success comes from creatively solving a problem or challenge.

Shane is designer and creative director at 2Advanced