In England Computer Science is now a statutory subject, a model that other countries seem keen to follow. According to CAS, since this came into effect the Department for Education in England has been contacted by delegations from Sweden, Japan, Poland, Hungary, Belgium, Germany, Switzerland, Slovenia, Denmark, Malaysia and the United States where formal computer science education is lacking, as summed up by this startling statistic.
Coding through play
You would expect that states where the software industry is predominant would be among the minority that had accorded CS a place in formal education. In the case of California only 311 schools teach the subject. This has lead to the establishment of After School clubs that introduce 3rd to 12 graders to computer science.
ThoughtSTEM, which now offer a California-wide service, was founded by three UCSD PhD students in 2012. In this video Dr Sarah Guthals explains how what seems like playing a video game can be a valuable educational experience.
Incorporating code across the curriculum
In almost half of US states (24 out of 50) CS doesn't count towards high school graduation - which is a big disincentive to either learning or teaching it. Massachusetts is one of these 24, but it is also the state in which you'll find Beaver Country Day School which has taken the unusual step of incorporating coding into all of the classes taught to Middle School and Upper School students, an initiative it calls The Coded Curriculum.
Rather than teach programming or computer science the idea is to integrate a coding element into all the subjects that are taught at the school. In this video teachers and pupils explain the experience and the benefits of treating coding as a normal tool to solve problems and be creative:
Rob MacDonald, who with Beaver's Head of School Peter Hutton was responsible for introducing the initiative explained to IProgrammer that rather than provide a formal introduction to a specific programming language the approach that had been adopted sets out to enable students to gain experience with the big ideas of coding:
we want to expose students to algorithmic thinking and give them tools that would allow them to experiment. We want to tap into the curiosity that’s inherent in our students. We don’t want to bog them down with syntax that will inevitably become obsolete. I’m grateful that my own teachers didn’t see fluency with Fortran or Pascal as the end goal. They understood that if I developed logical reasoning and got comfortable using technology to solve problems, I could probably pick up any language without much trouble.
We’ve been drawn to PencilCode because it’s so accessible and also because it scales up nicely and serves as a great bridge to more sophisticated languages.
PencilCode is a resource that is free to use and is well supported. Its creator David Bau has produced a primer for using it, and teachers and pupils at Beaver School have come up with projects that demonstrate its versatility in the classroom. One of the supplied samples is a Lady Macbeth chatbot - what would Shakespeare have done with today's technology!
Block-based languages like Pencil code seem to be the preferred route to introducing kids to computer science. Google's Blocky is another implementation that has gained a following and Scratch, by virtue of having been around for longer, is probably the best known. Of course there is also App Inventor which applies block programming to creating Android apps.
Raspberry Pi, the micro:bit and IoT
Scratch is one of the languages implemented for the Raspberry Pi as is Python. However, once you introduce the Raspberry Pi into the classroom environment the emphasis changes from web-based activities to more hardware oriented, app based ones.
In the UK the AstroPi competition challenged school pupils to come up with apps and experiments based on the Raspberry Pi and a special add-on board of sensors that will be taken aboard the International Space Station. The contest is now closed and when British astronaut Tim Peake starts his 6-month mission on the ISS in November he'll be using the winning apps to send data back to the classrooms for analysis.
Again in the UK, this term Year 7 pupils are going to have the opportunity to get their hands on the BBC micro:bit, a pocket sized, programmable device that, according to Sinead Rocks, Head of BBC Learning has been designed:
to encourage children to move away from seeing laptops and tablets as ‘devices you can do things on’ to ‘devices you can use to make other things happen’ - a concept that has arguably been lost to many as so many types of technology have become ever more intuitive and easy to use.
It is up to schools to apply for the devices, so while our earlier news report suggested that around 1 million pupils might be involved, this is probably an upper limit. How this is going to fit into the Computer Science curriculumhasn't been made clear, but it will be lost opportunity if it isn't devoted some classroom time.
Help for teachers with the micro:bit has recently been announced by Microsoft, one of the many partners involved in the project. It has produced free-to-download materials designed for classroom use. Creative Coding Through Games And Apps aims to encourage students to explore computer science by teaching them to program and publish real apps and games. It also takes into account the fact that many teachers do not have app-development experience and tries to help them keep one step ahead of the students as they learn how to code using Touch Develop, the programming language from Microsoft Research that works on any device that has a modern Internet browser.
This is the type of input that is going to be necessary if the micro:bit is going to live up to its potential of giving much needed impetus to bringing coding into mainstream education.
If you think that coding isn't worth teaching to everyone you have a too narrow view of what the word "coding" means. It is possible to spend an entire working life in programming and not really understand its wider significance. Learning the use of coding to solve problems provides an education in effective thought. You may be intelligent, and you may be able to see the broad outline of a solution to some problem but programming makes you very clear about the exact connection between where you are and where you want to be. It provides a way of thinking that doesn't leave any scope for vague intentions. It also provides a testing ground where failure teaches you as much as success and students who take Computer Science even see their performance in other subjects improve.