So it’s July and now we have sight of the new Computing part of the National Curriculum. On taking office, Michael Gove was determined to impose rigour on a curriculum he had argued had become flaccid and unchallenging during the new Labour years and very soon he had his sights

on the ICT curriculum. There was much evidence that work for students, particularly in Key Stage 3 when they went to Secondary school was not challenging, and at worst little more than a continual rehash of Microsoft Office skills. Of course that caricature has power as anecdotal evidence and it was not the case that ICT had become moribund in all schools. But during my time as a researcher going into schools I did see some pretty boring ICT lessons and talked to students who felt they did much more creative things with computing outside the school curriculum. So Gove sucked ICT into the maelstrom of his National Curriculum reforms, and the term ICT was ditched in favour of the more rigorous term ‘computing;. During the planning of the curriculum many bodies (including the British Computer Society and Mirandanet) gave evidence as to what should be in the new curriculum, and a concensus of such emerged that there should be more emphasis on programming and coding. So the conceptual workout provided by figuring out how to write computer programs was to replace endless dicking around with fancy fonts and Word Art. Which is probably no bad thing.

But reading the curriculum today I was struck by how the concept of rigour had rather taken hold of the thing too much, in fact it seems to have created some rather questionable ideas about what can be taught appropriately at certain ages. I reserve my comments here solely to the KS1 curriculum, with a reminder that these are children between the ages of 5 and 7.

Here is the first part of the curriculum

**Key stage 1**

** Pupils should be taught to:**

**understand what algorithms are; how they are implemented as programs on digital devices; and that programs execute by following precise and unambiguous instructions**

actually, let’s just take those first 4 words ‘understand what algorithms are’ and look in a little more detail about what is being asked of young children and their teachers here. If you set off to find a hard and fast definition of what an algorithm is, you will soon realise that a straight forward unequivocal definition is not easy to find. Computer scientists and mathematicians will argue about exactly what constitutes an algorithm and even a cursory search through literature in the material will soon have you enmeshed deep in the conceptual difficulties of computation, Turing Machines and Hilbert’s ‘decision problem’. At its most basic an Algorithm is a series of steps through which a problem can be solved (in this case by a digital computer). But an algorithm is not necessarily the same as a computer program.

Firstly you can write computer programs which solve nothing and therefore are not algorithms. Showing my age here, my first computer program (in BASIC) was the 80s classic

10 PRINT “hello world”

20 GOTO 10

This made a very pretty pattern on the screen and delighted teenage boys, and it is clearly a computer program (when you type RUN it did something). But it’s not an algorithm because it doesn’t solve a problem, and even worse it’s non-terminating, the program will run for ever until you hit the ESC key and saved the computer from its hellish loop. An algorithm has a clear set of steps and a procedure for termination (just like a good drinker, it knows when it’s had enough and stops) At the other end of the scale from my jejune tinkering with the Commodore PET in 1983, it is the case that more complex computer programs may have thousands of algorithms contained within them. Most often these are nested like Russian dolls with the output of one algorithm feeding into the input of another in myriad patterns of dizzying complexity (to us humans at least). The next time your computer screen freezes, you can be sure that somewhere in the bowels of your computer two or more algorithms have had a falling out and the consequences of this are slowing your game of angry birds to an agonising crawl.

The conceptual complexities of algorithms are fascinating but is it not too much to expect KS1 teachers to grasp these when they have to be generalists, teaching every subject in the curriculum? This is not meant as patronising towards these teachers, in fact I have nothing but admiration for their skills and I know enough about schools to realise I would probably last about 15 minutes in charge of a KS1 class. The question remains why the curriculum obsesses about teaching this notion of an algorithm to such young children and what they think will be gained from doing this. I imagine that this first part of the curriculum will scare the C++P out of many Ks1 teachers who will either ignore it completely (in which case the curriculum is poorly framed as it is asking something which cannot be done), or they may come up with a notion of what an algorithm which is not correct and therefore risk confusing children unnecessarily. I searched in vain for any government support documents or extra guidance to help explain this concept of the algorithm to teachers who will be delivering this curriculum from 2014 and could find none. That is perhaps not unsurprising for a DfE which under Gove’s custody has become extremely good at dictating terms to schools, but not so good at supporting them.

Just to be clear, I think that teaching older children (from KS2 onwards) about algorithms and computer programming is a great idea, but I see little evidence that the new curriculum takes account of what children at KS1 are able to learn (in a way which is genuinely) and what their teachers are able to teach them concerning the complexities of computing science.

I think it would have been better to have framed the KS1 curriculum to have some programming in (as it does), and omitted the notion of algorithms at this stage to avoid unnecessary complexity (coincidentally a trait of a good programmer is to do this too). This would be something along the lines of ‘Pupils should be taught to understand that computers run programs which consist of a series of precise instructions’. For me this sounds more realistic, more achievable at KS1 and avoids the unnecessary fetishisation of the concept of the algorithm.

But if you think differently, please go ahead and leave a comment.