Do you want to learn about coding? Free book offer!

Screen Shot 2017-06-18 at 13.35.32

Three years ago I had great fun teaching some primary school children how to use Scratch and take their first steps towards being computer programmers of the future.

At the time there was a lot of optimism about changes to the English curriculum and a return to a more rigorous teaching of computing in schools.

Today, though, there is a pretty predictable warning that things aren’t going to plan – like so much else in the last seven years good intentions were not backed up by the money needed to make the policy really work.

Back then I decided I was going to write a “book” on how to code – my principal audience being teachers who suddenly found themselves with the requirement to teaching basic coding … but had a change of job, couldn’t continue the teaching and nothing much happened.

But, having had another, err, change of job (to currently no job – have a look here if you want to hire me), I’m now determined to finish it and so I am also looking for anyone willing to read it through.

I don’t intend to charge for it, so it’s not a commercial operation, but I would be interested in hearing from anybody who has an interest in learning to code/learning more about computing but who is not an experienced programmer – crudely put, if you think the “book” stinks then I probably won’t make much more of an effort with it, if you think it is good or getting there then I’ll keep working on it, trying to make it e-reader compatible and so on.

Let me know in the comments or directly: adrianmcmenamin at Google’s email service.


Three steps forward, but one step back?

The new English ICT/computer science curriculum promises to be a huge step forward and, in my experience, a chance to teach children something for which their enthusiasm promises to be close to unlimited.

One thing puzzles me, though. Speaking about it today the education secretary, Michael Gove – who deserves some praise for listening to the arguments of the professionals on this issue emphasised that, from the age of 11 children will be taught “at least two” programming languages.


Go to university where, generally, they are training you to be a professional programmer, and they still only teach you one at a time. Why do we expect children at 11 to learn at least two?

The Art of Scratch, Code Club and the ICT curriculum

Scratch Project

Regular readers will know I have something of a small obsession with Conway’s Game of Life – the classic “game for no players” based on cellular automata, and so, naturally enough, when I decided that I really had to write my own Scratch program from, err, scratch to sharpen up my skills for teaching children via Code Club, that is what I chose to write – the (not very sophisticated) results can be seen above.

My first conclusion is that Scratch is a truly awful tool for most programming tasks. I know it is not meant to be a general programming tool, but I quickly discovered that it is hobbled even when it comes to doing those things that one assumes, at first glance, it is set up to do – like drawing on the screen. Scratch actually has very, very limited functionality/expressive power when it comes to drawing graphics – being only able to handle pre-provided sprites (as first class objects) and using a pen which marks out one pixel at a time – thus one cannot (at least easily) find a way to draw anything beyond dots and lines on the screen in response to events.

If you run the above program using the Flash player provided by the Scratch site you will probably see one of the big downsides of that as outlines of the old crosses are left on the screen (the Java player does not have this problem but it is very slow in comparison).

From a teaching point of view I also find Scratch’s message-based system less helpful than an imperative GOSUB like approach: the children I work with, after many weeks, are still struggling with the idea that messages should drive actions (probably we should blame their instructor!) – I know this event-based style is more common in the real world, but I think teaching the idea of problem decomposition via subroutines or functions is probably more important educationally.

Yesterday I went to the first London Hackntalk and gave an impromptu (and so unprepared) and brief talk on my thoughts about teaching children to program – my experience with Code Club makes me rather less starry-eyed about mass programming education. There were a few responses from the audience which suggested I had not really got my point – that we would struggle to fully replace an ICT curriculum based on usage skills with one based on programming – as the audience continually suggested ways to get motivated and engaged kids into programming (rather than make it a mass participation thing), but one point that was made by a member of the audience was very acute – given what our children see computers do in games that cost many millions to develop, how realistic is it to expect all or many of them to put lots of effort into toy programs that chug out the sort of graphics you can see above? I think that is a really difficult issue we have to consider when overhauling the curriculum and I am not sure the enthusiasts of radical change (of which I was and still am one) have thought it through fully.

(I did also encourage them to be Code Club instructors and was a bit disappointed to see that I appeared to be the only one – we urgently need to teach more programming and so these problems of the early days of the overhaul should not obscure the need for change.)

Proposals for a new English ICT curriculum

This morning’s Times carries an full page report – on page 3 no less (subscription required) – of the British Computer Society’s (BCS) proposals, on behalf of the Education Department, for a new ICT curriculum.

In fact the newspaper report seems have been injected with more than a little bit of spin – The Times says that pupils should, by the age of 11 (ie Key Stage 2), be able to build a mobile phone app – but the draft programme for the curriculum (thankfully) says no such thing. It states pupils should be able to:

Write programs to accomplish given goals; solve problems by decomposing them into smaller parts; recognize that there may be more than one algorithm to solve a single problem; detect and fix errors in algorithms and programs.

Which is much more sensible.

(The Times also states that KS4 – A level – pupils should be able to build their own languages, presumably meaning some teaching of compilers and related CS concepts such as automata, but again I can see no reference to that.)

Today’s, discredited, ICT curriculum concentrates on what the BCS calls “digital literacy” – basic skills at manipulating “office” products. It has cemented Microsoft’s monopoly position, stripped the UK of its historical lead in teaching kids programming skills and stifled innovation and, frankly, seen schools waste money.

The new programme appears much better but given the tendency of existing software and hardware providers to demand their products and paradigms are included in any curriculum then ideas that kids should be taught to build mobile phone apps or anything similar should be resisted – do we really think that today’s shared memory, lock-controlled, programming model is going to be that relevant in a decade’s time? I do not but can see why many companies with billions invested in existing technologies and models would want to resist the disruption that many-core technologies will bring.

Computing stands on the edge of another revolution:

As multicore chips scale to larger numbers of cores, systems are becoming increasingly complex and difficult to program. Parallel architectures expose more of the system resources to the software and ask programmers to manage them. In addition … programmers are forced to optimize for both performance and energy; a task that’s nearly impossible without knowing the exact hardware and environment in which an application will run. As machines scale to hundreds of cores, it will no longer be possible for the average programmer to understand and manage all of the constraints placed upon them.

(From Eric Lau et al’s paper “Multicore performance optimization using partner cores”, in Proceedings of the 3rd USENIX conference on Hot Topics in Parallelism, USENIX, May 2011)

Even we do not agree with every idea expressed in the above comment, the basic argument is sound – all your programming are belong to us. A new ICT curriculum must be flexible enough to respond to the huge changes that are coming and resist any attempts at technology lock-in. Previous stories about the ICT rethink are littered with corporate name dropping, and the government (any government, frankly) are always too keen for corporate endorsement. So we need to beware.

The BCS programme looks like a promising start, if it can manage to avoid falling into populist traps like the one it seems to have set itself in the Times this morning.

Computer science in English schools: the debate rages on

World cup England
World cup England (Photo credit: @Doug88888)

In recent months a new consensus has emerged about teaching ICT (information and communications technology) in England’s schools: namely that it has been sent up a blind alley where kids are taught little more than how to manipulate Microsoft’s “Office” products.

That recognition is a good thing, though the way in which the government were finally roused into action – by a speech from a Google bigwig – was not so edifying. If the previous Labour government had a distressing and disappointing attitude of worshipping the ground Bill Gates trod upon, the Conservative wing of the coalition seems mesmerised by Google (not least because of some very strong personal and financial ties between Google and leading Conservatives).

But recognising there is a problem and fixing it are two very different things. The proposals from the Education Secretary, Michael Gove, seen contradictory at best: on the one hand he’s said we need a new curriculum, on the other he’s seemingly refused to do anything to establish one. The revelation last week that he’s axed the bit of his department that might create such a curriculum did not inspire confidence.

But the pressure for change is still mounting. In tomorrow’s Observer John Naughton, author of the celebrated A Brief History of the Future: Origins of the Internet – launches his manifesto for ICT (as it’s a manifesto I have copied it in full, but you should really also read his article here):

1. We welcome the clear signs that the government is alert to the deficiencies in the teaching of information and communications technology (ICT) in the national curriculum, and the indications you and your ministerial colleagues have made that it will be withdrawn and reviewed. We welcome your willingness to institute a public consultation on this matter and the various responses you have already made to submissions from a wide spectrum of interested parties.

2. However, we are concerned that the various rationales currently being offered for radical overhaul of the ICT curriculum are short-sighted and limited. They give too much emphasis to the special pleading of particular institutions and industries (universities and software companies, for example), or frame the need for better teaching in purely economic terms as being good for “UK plc”. These are significant reasons, but they are not the most important justification, which is that in a world shaped and dependent on networking technology, an understanding of computing is essential for informed citizenship.

3. We believe every child should have the opportunity to learn computer science, from primary school up to and including further education. We teach elementary physics to every child, not primarily to train physicists but because each of them lives in a world governed by physical systems. In the same way, every child should learn some computer science from an early age because they live in a world in which computation is ubiquitous. A crucial minority will go on to become the engineers and entrepreneurs who drive the digital economy, so there is a complementary economic motivation for transforming the curriculum.

4. Our emphasis on computer science implies a recognition that this is a serious academic discipline in its own right and not (as many people mistakenly believe) merely acquiring skills in the use of constantly outdated information appliances and shrink-wrapped software. Your BETT speech makes this point clearly, but the message has not yet been received by many headteachers.

5. We welcome your declaration that the Department for Education will henceforth not attempt to “micro-manage” curricula from Whitehall but instead will encourage universities and other institutions to develop high-quality qualifications and curricula in this area.

6. We believe the proper role of government in this context is to frame high-level policy goals in such a way that a wide variety of providers and concerned institutions are incentivised to do what is in the long-term interests of our children and the society they will inherit. An excellent precedent for this has in fact been set by your department in the preface to the National Plan for Music Education, which states: “High-quality music education enables lifelong participation in, and enjoyment of, music, as well as underpinning excellence and professionalism for those who choose not to pursue a career in music. Children from all backgrounds and every part of the UK should have the opportunity to learn a musical instrument; to make music with others; to learn to sing; and to have the opportunity to progress to the next level of excellence.” Substituting “computing” for “music” in this declaration would provide a good illustration of what we have in mind as a goal for transforming the teaching of computing in schools. Without clear leadership of this sort, there is a danger schools will see the withdrawal of the programme of study for ICT in England as a reason for their school to withdraw from the subject in favour of English baccalaureate subjects.

7. Like you, we are encouraged by the astonishing level of public interest in the Raspberry Pi project, which can bring affordable, programmable computers within the reach of every child. But understanding how an individual machine works is only part of the story. We are rapidly moving from a world where the PC was the computer to one where “the network is the computer”. The evolution of “cloud computing” means that the world wide web is morphing into the “world wide computer” and the teaching of computer science needs to take that on board.

8. In considering how the transformation of the curriculum can be achieved, we urge you to harness a resource that has hitherto been relatively under-utilised – school governors. It would be very helpful if you could put the government’s weight behind the strategic information pack on Teaching Computer Science in Schools prepared by the Computing at School group, which has been sent to every head teacher of a state-maintained secondary school in England to ensure that this document is shared with the governors of these schools.

9. We recognise that a key obstacle to achieving the necessary transformation of the computing curriculum is the shortage of skilled and enthusiastic teachers. The government has already recognised an analogous problem with regard to mathematics teachers and we recommend similar initiatives be undertaken with respect to computer science. We need to a) encourage more qualified professionals to become ICT teachers and b) offer a national programme of continuing professional development (CPD) to enhance the teachers’ skills. It is unreasonable to expect a national CPD programme to appear out of thin air from “the community”: your department must have a role in resourcing it.

10. We recognise that teaching of computer science will inevitably start from a very low base in most UK schools. To incentivise them to adopt a rigorous discipline, computer science GCSEs must be added to the English baccalaureate. Without such incentives, take-up of a new subject whose GCSE grades will be more maths-like than ICT-like will be low. Like it or not, headteachers are driven by the measures that you create.

11. In summary, we have a once-in-a-lifetime opportunity to prepare our children to play a full part in the world they will inherit. Doing so will yield economic and social benefits – and ensure they will be on the right side of the “program or be programmed” choice that faces every citizen in a networked world.


Two cheers for Gove?

English: Michael Gove speaking at the Conserva...
Image via Wikipedia

Michael Gove is to make a speech today in which he is going to lambast the existing ICT curriculum in English schools and promise a revolutionary new start.

Sounds like a good thing, and certainly he appears to have identified the cretinous nature of the current curriculum and its chaining to Microsoft’s proprietary software. So far, so good.

But is he going to replace it with anything better? The gushing nature of much of the speech is worrying as it suggests someone just reading out a script rather than any deeper level of engagement: “we could have 11-year-olds able to write simple 2D computer animations using an MIT tool called Scratch. By 16, they could have an understanding of formal logic previously covered only in university courses and be writing their own apps for smartphones.”

But I think we should be generous to him – only a few weeks ago he appeared to reveal his true lack of interest and enthusiasm for science and mathematics when he defined higher learning almost exclusively in terms of the arts and humanities: he has a lot of catching up to do in a field he plainly knows little or nothing about (as his odd comments about Alan Turing in the speech suggest – would love it if someone asked him why he appears to rate Turing’s contribution as more fundamental than that of Alonzo Church).

What worries me is this bit: “By withdrawing the programme of study, we’re giving schools and teachers freedom over what and how to teach; revolutionising ICT as we know it.”

For me that just signals that many pupils are going to be taught nothing (no change from the position recently revealed by OFSTED) but that the government will have shifted the blame on to the schools.

Where are the teachers of formal logic going to come from? Who is going to teach kids Java, C# or Objective-C to make these smart phone apps? Schools already struggle to find maths and science teachers and nothing this government is doing, beyond overseeing a general increase in graduate unemployment, is likely to encourage graduates in these fields to look to teaching as a career. Teachers’ pay is being frozen and their pension rights eroded after all.

Well, maybe I am being a bit too hasty: Gove loves nothing better than a good headline and so the rhetoric about letting everybody do their own thing may be just that – rhetoric. But if I am right, and this is just the government admitting there is a problem but walking away from trying to solve it then it will only make things worse.

Stephen Twigg hits the nail on the head

Stephen Twigg
Image via Wikipedia

I try to keep openly political things off here, but this response to the OFSTED report on computing in schools is so good it deserves more publicity:

Stephen Twigg MP, Labour’s Shadow Education Secretary, responding to the report from Ofsted on ICT in schools today said:

“Today’s Ofsted report on ICT in schools shows that our computer teaching is simply not up to standard. For too many pupils, computer teaching can be little more than a glorified typing course.

“The fact that the overall effectiveness of ICT teaching is only satisfactory or poor in nearly two thirds of all secondary schools in England is not good enough. We need far more rigour in ICT teaching, with higher quality training, higher standards and continual assessment of what pupils are being taught.

“The Government must look at this evidence and feed it into the review of the National Curriculum. I have written to Michael Gove to offer Labour’s support for the curriculum review so that we can attempt to build a cross party consensus.

“Pupils need to have an opportunity to understand the mechanisms and coding behind computer programmes. Learning how to type on a wordprocessor, enter data into a worksheet or design a powerpoint presentation is not sufficient.

“If the UK is to maintain its competitiveness and educate a new generation of Alan Turings we need to develop the programming skills, as well as the understanding of the links between computing, maths and science.

Notes to Editors
The report, available here: contains a number of worrying findings including:
* A fifth of ICT achievement is inadequate, despite the subject being a compulsory part of the national curriculum;
* Many teachers have “limited” knowledge of programming; and there are weaknesses in more demanding aspects of ICT such as control and data handling
* Pupils’ use of ICT in other subjects was only occasionally tracked or recorded. For those students in Key Stage 4 who were not receiving specialist ICT teaching there was no systematic record of their learning in ICT and no means for teachers or pupils to know whether they had gaps in their knowledge.
* High flyers are often neglected and the students do the same tasks over and over again; The ICT curriculum and qualification routes provided by nearly half of the secondary schools surveyed were not meeting the needs of all students, especially at Key Stage 4. In these schools a single vocational examination course was taken by all students, limiting challenge to the more able, or ICT was offered as an option to some students with others not receiving the full National Curriculum. As a result, in 30 of the 74 schools visited nearly half of the students reach the age of 16 without a sound foundation for further study or training in ICT and related subjects.
* Very few examples were seen of secondary schools engaging with local IT businesses to bring the subject alive for their students. This was a particular issue for girls, many of whom need a fuller understanding of ICT-related career and education options to inform their subject choices at 14 and 16 years of age.

The dismal state of computing education in English schools

English: Snapshot of the Commodore PET-32 micr...
Image via Wikipedia

I didn’t get my enthusiasm for computing from school – it was almost something latent: I remember being very excited to see a “microcomputer” for the first time in Brent Cross shopping centre in 1979.

But the first one I used – hopelessly – was in school, a Commodore Pet, in 1980. It turned up and a group of us – led by Physics teacher legend John Shutler – stabbed wildly at the keyboard in the hope of getting it beyond the “Ready” prompt.

There were no computing lessons in those days but there were plenty of enthusiasts for learning programming in the school. And, yes, we played games too – but games were principally a programming challenge: could we write new ones, change old ones, copy tricks from existing ones. This book – our Bible – had lots of listings but each had to be tailored for the dialect of BASIC being used.

I know this sounds like a plea for a better yesterday, but it is difficult to avoid the conclusion things have gone downhill even as schools have filled with ever more powerful machines.

Today all of that energy seems to have been drained from school computing – for my daughters it is the equivalent of a secretarial class of three decades ago – can you type a letter on a wordprocessor (always, always, Microsoft’s proprietary software), can you  type an Excel spreadsheet or create a Powerpoint presentation. I don’t think they have been taught any programming skills and certainly the link between maths and computing seems totally absent.

They are not the only ones. A new report from OFSTED, the school inspectorate, bemoans the dreadful state of computing education in our secondary schools:

  • A fifth are taught nothing, despite the subject being a compulsory part of the national curriculum;
  • Many teachers have “limited” knowledge of programming;
  • High flyers are often neglected and the students do the same tasks over and over again;
  • Qualifications are of limited use.

For what it’s worth I think much of this is because educators have been forced to dance to the tune of business – who demand school leavers can use their proprietary software suites rather than (as was the case when I entered the workplace) they provide training. The result is dismal education and disaffected pupils.