Why Computing Education has Failed
and How to Fix it

Aaron Sloman
(Slightly revised version of message
posted to CPHC and UKCRC mailing lists)

Last updated: 20 Jul 2007

A related note on why European (and other) research plans will fail because of the lack of a suitable lower level education system Unjamming the education pipeline: Thoughts on educational prerequisites for an ambitious European research initiative.

Previously updated: 10 Jun 2007

It seems that the politicians and educators have screwed up much more than the teaching of computing.
Look at this lament by a disgusted teacher of physics
Some comments on his posting.

Previously updated: 20 Nov 2006

(Added comments on a letter by Mike Fourman.
A response to some comments by Peter Hodson.
See also article,1000000308,39284764,00.htm)

A message was sent to CPHC members on 17th Nov 2006 saying:

     In case you missed it, Nigel Shadbolt, in his capacity as President of the
     BCS, appeared on the Today programme this morning presenting material that
     CPHC has put together about the decline in applications for undergraduate
     places in Computer Science.  The URL is ...

In response to that I sent round the following message on 18th November:

(Apologies for poor formatting: I'll try to improve it later.)
One thing that bothers me is that nobody seems to want to expose the
main causes of the problem. This helps to make it clear how huge the
task of fixing it will be.

About 35 years ago it was clear to some people that teaching programming
could have profound educational importance in stretching minds in new
ways, including enabling kids to learn how to design, implement, test,
debug, analyse, document, compare and criticise *working* systems that
create and manipulate structures of many kinds.  Everyone could start
learning this, though not everyone would wish (or be able) to progress
far beyond the early stages. I argued that 'programming' should join the
three 'R's to form the five 'R's in a basic general education.

(Nigel was one of the people who understood that in the 1970s and helped
to launch the teaching of AI in Psychology, later killed off by the
British Psychology Society, alas.)

A few schools started doing things inspired by that idea in the late 70s
(including Marlborough college in the UK, which copied the AI teaching
stuff we developed at Sussex). Later, in the early 80s(?) the BBC micro,
in the hands of gifted teachers was an excellent tool for that purpose
(despite using BBC Basic as the programming language -- at least it had
procedures with local variables, instead of just GOTO and global

There used to be sunday morning programs on BBC2 showing some of the
amazing things being done in schools with those machines -- involving
girls as well as boys.

Then what happened?

During the next few decades people (politicians, industrialists, parents, and badly mis-informed teachers) started saying (and/or believing) that kids should learn to use computing tools they are going to need in their jobs. So schools started using PCs running windows and children had to learn to use word processors, databases, spread sheets, then later web browsers and email systems. CS academics did not bother much about what was going on in schools because they thought they could start bright students off without any prior computing training. But they did not appreciate the dreadful long term effects of their non-intervention. As a result of the change towards teaching only *use* of tools most of the bright learners decided that computing was just a collection of boring but useful tools and not a suitable subject to study at university. I first discovered that when the very bright daughter of a professor of computer science told me why she would not dream of doing CS at university. I think she thought of it as analogous to doing a degree in cooking. I've since learnt that that is a common attitude among bright schoolkids. And now a whole generation (or two?) of learners have been taught the wrong things and a huge amount of human potential has been wasted. A typical computer scientist's response is to say, 'look at these really fun mind-stretching teaching tools/environments we have developed -- lets put them into schools'. But that completely fails to address the enormity of the problem of how to get the right things taught in *thousands* of primary and secondary schools where there are very few teachers capable of doing the required kinds of teaching, and where the infrastructure for collaborative learning and teaching of computing is not available. (The emphasis in schools on *personal* computers, helped not only to support teaching with the wrong sort of content but also ruled out successful deployment of network based computing, with all the benefits of file-sharing, easy software maintenance, lower hardware costs, etc., which many of us used successfully from the mid 1970s for teaching in universities, on VMS then Unix.) A possible *partial* solution would be to set up a national (or international) education-server perhaps something like google's spreadsheet-server, on which centrally supported computing packages of many kinds could be installed, including of course compilers/interpreters for useful programming languages for teaching beginners at various levels, along with facilities for sharing files so that teachers and learners can collaborate. If user programs were run in a protective sandbox (i.e. protecting other users) and teachers and learners could all add new stuff to be used by other teachers and learners that might help to reduce the problem of lack of local expertise. (This would require a carefully designed file access control system to support sharing of various kinds, e.g. between teachers, between students in a school, or in a class, between students in different schools using the same material or developing joint projects, etc.) Likewise, if all the backing up, software maintenance, etc. were done centrally, that, along with growing patterns of mutual support, would remove a huge part of the problem of supporting good educational environments at every school, including those with no expertise. Existing networked technology in schools might be a starting point for accessing browser-based courseware, though for some things they would need to support something like ssh in an xterm window (e.g. putty on windows -- trivial if linux is already being used locally.) [I still think kids should learn to compose their own well formed programming constructs using a text editor, and not just fill slots in templates or move things around with a mouse: those strategies designed to make things 'easier' detract from the process of developing expertise in designing new structures for which there are not yet templates and may also interfere with full understanding of what's going on. A text editor running on the remote machine as part of the development environment can have useful advantages compared with a local editor combined with 'select and paste'.] Of course shared machines accessed remotely also have problems (though nowadays nothing like the old time-sharing problems: internet services depend more and more on time-sharing as the processing moves from local machines to remote servers, e.g. banking, ordering, tax forms, wikis, etc.). Apart from problems of security and access control there are also problems of limiting the ability of some users to interfere with others. Maybe google would help with some of the technology, since they must have addressed this in connection with their spreadsheets run remotely? There would still be *huge* bootstrapping problems because of the lack of suitable teachers, and the need to convince politicians, teachers, parents, industrialists, etc. that it is *stupid* to insist on teaching children to use tools that are thought to be relevant to jobs instead of teaching them new ways to think, learn, communicate, solve problems, etc. -- especially as the tools required can and do change, sometimes quickly. (They can then learn the tools later, with a much deeper understanding. We don't teach physics by getting kids to fly boeing 747s even though they come from Seattle.) The cultural bootstrapping problem (lack of relevant expertise among teachers) could be addressed partially if computing academics, PhD students, and maybe good undergraduates, all round the country were involved (voluntarily) in helping schools to learn to use the facilities, at least for the first few years, until an adequate body of expertise built up in schools, after which the level of university support could decline. Of course, it would take a generation for new graduates with a deep understanding of the issues to enter the teaching professions, with the ability to teach computing really well. But I don't see any short-cuts to undo the damage of nearly three decades. Ideally something like this should be accessible world wide, especially to support learning in developing countries. I am not recommending a single physical education server, but a virtual, networked server. Instead of setting up a new *monolithic* central facility there should be a distributed server, all accessible initially via a common web address but supported by a variety of machines in CS or education departments or other such places, offering different kinds of support for learning and teaching, and guaranteeing to provide a level of service (including both hardware management and software updates and backups!) such as we do for our own staff and students anyway. This still leaves open a lot of management issues, e.g. about how to decide who can and who cannot access the system (why exclude individual adult learners who want to learn OU style, but with a self-constructed syllabus?), what they are entitled to, whether there should or should not be charges (definitely not initially -- or it will never get off the ground), how to authenticate applicants, etc. how to develop approved curricula, etc. I estimate that it will take at least five years to get to the point where such a service is widely used in all schools, all round the country, not because of technical obstacles, but because of political, management, and social obstacles to be overcome. It is essential for anything like this to work that the *assessment* issues all be postponed until the *educational* requirements have been understood and addressed. Certification and assessment form a tail that can break the educational dog they wag. (For more on all that and some of the history see my lament here: As I point out there: it is not just a problem for the UK: the same mistake seems to have been made in many countries -- perhaps all, as far as I know. )

Michael Fourman, Head of the School of Informatics, University of Edinburgh,
was interviewed on this topic by Radio Scotland, ("Good Morning
Scotland" 06.56 17th November) and made some similar comments about the
need to introduce new ways of teaching computing. To listen to the
interview (only available for about a week after the event) go to
    [Alas no longer available].

In an email message Michael Fourman wrote:

    We are also working in Scotland to establish a School Curriculum
    that will have potential to engage bright sparks and kindle future
    interest. We have tried this before, unsuccessfully; but now hope
    that the climate is improved, and that our smaller country may have
    less inertia than the UK as a whole.
My comment on this (19 Nov 2006):
I guess the Scots are also more likely to take on board the fact that
there is no point producing a new curriculum if there will be neither
the infrastructure in schools to support it nor the teachers available
to teach it.

Perhaps Scotland can provide a model of how to address that problem,
either using the networked mechanisms I proposed, or something better.

He also stressed the need to ensure that industry hears the positive
message - that we are well-placed, in the UK, to produce tomorrow's
innovators, while at the same time ensuring that government understands
that things could be much better.

Even if they do understand the message, they are not in a position to
produce any changes quickly because you cannot undo 25-30 years of bad
management and missed opportunities in a short time.


I hope that some educators will discover that in comparison with the
obvious economic advantages of a skilled IT workforce there may actually
be some *intrinsically* worth while educational goals that have nothing
to do with current economic and industrial needs, but which can be seen
in the centuries old tradition of education that stretches minds,
including providing new powers of analysis and explanation that can lead
not only to clever and useful new inventions but also improved
understanding of existing systems (e.g. human minds, social systems,
biological mechanisms, educational processes).

The invention of writing, and then later printing, made a huge
difference to what was possible in educational processes (in addition to
having many useful technological applications).

Likewise the invention of computing could have made at least as big a
difference, but didn't (except for a tiny minority of lucky indviduals
-- and I don't just mean computer scientists) because almost everyone
got side-tracked into thinking about applications instead of what is
valuable in itself.

If we find ways to provide deep and powerful ways to enhance old
educational systems, then the applications will look after themselves,
without our having to second-guess technological developments and
requirements when we design school curricula.

Our predictions are likely to be proved wrong by the time school-leavers
are in employment, anyway.

The broader picture - added 20 Nov 2006

Peter Hodson drew my attention to the fact that there is a much broader
problem than the teaching of computer science afflicting education in
the UK. Student numbers applying for other science subjects have been
going down also.

He pointed out that in the last few years there has been a very worrying
and increased drift towards 'softer' subjects among school leavers,
following the preference for softer options recently made available at

My colleagues tell me that it is not even true any more that many of the
very brightest students want to do traditionally intellectually
challenging humanities subjects, so there is now a separate more general
problem than the CS or science problem.

The CS problem has been noticeable for much longer. E.g. after we
introduced an AI half degree around 1993 we talked to applicants for
that and for our more 'traditional' degrees. When we asked them why they
were applying, the CS/SE applicants typically talked about job
prospects, whereas the AI applicants talked about how they had started
to learn about AI (e.g. by reading magazine articles) and thought it
sounded fascinating. They had not learnt about it in schools. If CS were
taught properly in schools it too would be fascinating to bright
students, and not just a means of getting a job. The effects of that
were specially noticeable both in the rapid expansion of CS and in the
aftermath of the burst dot-com bubble about five years ago. (Not just in
the UK of course.)

But, as you say, there have been more general changes affecting the
quality of education in this country, driven partly by well-meaning but
ill-informed politicians, though there may also be more general cultural
pressures, including what looks to me like a growing addiction for junk
information, which parallels the junk food addiction problem. One
produces a loss of physical agility, the other a loss of
mental/intellectual agility.

(Peter rightly also drew attention to features of today's education
system which is aimed at underpinning a 50% participation rate in HE,
and the extent to which that has influenced the capability of the
process to stretch and challenge the brightest.

This links up with arguments about top up fees, the 50% target, and
the need for a 'joined up' strategy for higher education, discussed


Peter asked whether I have a clear vision of how to fix the general
problem --which I seemed to think I had.

That's a deep and difficult problem, and nothing I wrote was aimed at
solving that, though I have a, possibly misguided, hope that part of the
remedy could be new forms of education where the learner is more in
control, a possible result of the provision of 'education servers' as
learning environments. (This is how we used to teach AI for several
years when I was at Sussex.)

So, I can at most claim to have identified some necessary conditions for
change regarding CS (i.e. doing something about the need to support
thousands of teachers who are not currently able to deliver the sort of
new curriculum that might help to change attitudes to the subject). I
certainly cannot claim that anything I've suggested would be sufficient.
My main point was merely that the problem was now much deeper than a
need to change the school curriculum.

I hope someone has better ideas for dealing with the more general
problem and producing a sufficient solution. If not the future is very

I suspect this is connected with the view about science expressed by
Blair in a recent new scientist interview. He made it clear that until
recently he was not at all interested in science and did not think it
important, until he suddenly discoverd that it could help the economy
especially 'the private sector'. I wonder if there's any chance that his
successor will have a better understanding of these matters.

I guess we should not be surprised that someone who doesn't value
science for its own sake is so inept at distinguishing good from bad


Maintained by Aaron Sloman
School of Computer Science
The University of Birmingham