A few weeks ago I wrote about a workshop that I ran at the primary school where I am a governor. It felt like I was doing something pretty important and I am still amazed at the response that my post had – even the Guardian picked it up and it has had over 1000 uniques so far. I just came across an article on the Guardian website called “A manifesto for teaching computer science in the 21st century” which is essentially an open letter to the government stating the case for a more thorough computer science curriculum (or one at all). There are some pretty powerful messages in there but it led me to think about how this might be achieved in practice. So, here are a few thoughts on some features a strategy to implement this might possess.

Why do it in the first place?

The last decade has seen a massive technology explosion with more and more integration in everyday life. The digital world allows connections across the world to be made with ease and information to be available any-time and anywhere. As a result of this more and more of the global economy moves online with the UK leading this charge in many ways. Learning how to operate within and contribute to this digital world is at least equally if not more powerful than learning a modern foreign language in terms of the impact on a potential career and the ability to contribute to a global society. Beyond the subject itself though there are a huge number of skills required to write software such as logic, abstraction, mathematics and higher order thinking and problem solving skills.

I like to think that a good way to evaluate an argument is to look at the opposite situation. Thinking this way, if computer science were already being taught I struggle to think of any case for withdrawing it. Finally, imagine if every child leaving school was able to write software. Our children would be poised to impact on the global digital economy, have vastly increased employment prospects and the corresponding impact on our domestic economy would be incredible. How can we possibly not do this?

Who needs to be involved?

The things I am suggesting here are pretty serious – they could potentially affect every school pupil in the UK for a long time to come so the content and structure needs to be right. For this reason there needs to be a broad involvement of experts that I think fall into four categories.

  • Academics – the people working at the highest level in the subject
  • Government – policy makers
  • Industry – the people that turn subject matter into practice
  • Teachers – real ones with real pupils
I think that only with these groups represented can a full and detailed strategy be created, evaluated and implemented effecively.

How to start?

The most important thing about starting is to actually start. This means that we need to at least begin to talk about the topic and raise awareness with teachers and pupils. I have shown that pupils in years five and six are ready and able to start learning this stuff. Actually, some kids are ready before this but we are talking about the masses here. At primary level there is an enormous skills gap to overcome before software development can become a regular subject matter. So, in many ways CPD and the availability of suitable teaching resources and guidelines could arguably have the biggest impact in the short term. I must admit that I don’t know how this goes at a secondary level but I doubt very much if many schools have a teacher that is conversant with any form of software development.

Another area that will need addressing up-front is the availability of suitable hardware and software. The Raspberry Pi project is a massive step towards this but a common (and preferably free or easily affordable) standard will need to be established.

What then?

Once there is a sufficient skill base in teaching staff there is an immediate issue of a curriculum. We can assume that no-one knows anything  so we are effectively writing a curriculum for each key-stage that starts from the beginning and at later stages will develop over time. The ultimate result of our school system is qualifications and so I think a goal for this whole process would be for computer science GCSE to be on equal billing with at least MFL and humanities subjects if not science and maths. A final goal has to be for computer science A-Levels to be available also on an equal billing as other main-stream subjects but again there will be a time lag as skills are acquired.

I have to say on A-Level computer science that I found this article stating that in CS A-Levels PHP and C# would be dropped in favour of Pascal and Java. I personally think it is an atrocity and especially for Visual Basic (an utterly vile and out-moded language) to be included shows a significant detachment between education and industry. I guess this comes back to point above about who should be involved but as a ruling principle I think that the languages chosen should reflect a balance of best practice conceptually and real world usefulness.

Summary

So, I think a strategy would look a bit like this:

  1. Involve a full and appropriate representation of individual experts
  2. Develop skills within teachers and an availability of teaching resources
  3. Work towards a relatively standard set of hardware and software tools to aid transferability
  4. Create separate curricula for key-stages two (upper), three and four that work from first principles
  5. Work towards a general availability of GCSE and A-Level qualifications