Programming is the necessary practical exercise that helps to develop the important mental skills of Computational Thinking. Most of us will not become professional software developers, any more than we all become historians, chemists or linguists. Nevertheless, some knowledge of those disciplines is necessary to make sense of the world around us, and in the increasingly complex and interconnected systems of the modern world anyone who wishes to ride the new wave of automation that may increasingly affect a wide range of professional jobs will need deeper appreciation of computational thinking skills.
The term “Computation Thinking” came into public discussion in 2006, when Jeanette Wing, a professor of computer science at Carnegie Mellon University, wrote an influential article (Wing, 2006) suggesting that the new methods of problem solving required to handle the unprecedented complexities of constructing computer-based system were in fact important generic thinking skills, and of value to almost everyone who needs to deal with complicated situations – whether they involved a computer or not.
These ideas had already been bubbling around for a couple of decades, since Seymour Papert, an MIT mathematician and computer scientist, first described the components of a systematic process of problem solving that involves such features as information representation, modelling, decomposition, abstraction, generalisation and algorithms (Papert, 1980). All computer science and software engineering students have to master these at an advanced level in order to analyse and provide computational solutions to the complex problems presented by modern science and industry. Management consultancies soon began to appreciate that similar analytical approaches helped them to understand and diagnose the increasingly complicated business world of multi-nationals. It is now generally accepted that the computer scientists had created a new and stable body of abstract knowledge, distinct from other related disciplines such as mathematics and electronic engineering. This is one definition found on the Web:
No doubt some are prepared to argue that “computational thinking” is, in part, merely a relabeling of well-known generic thinking skills. There is, indeed, an element of truth in this: when faced with novel problems, at some level we all analyse, abstract, generalise, decompose etc. and we exercise and grow such skills each time a challenge is overcome. Until the advent of computer science, however, the problem solving techniques were never studied systematically and taught as a discipline in itself. Even in logical and problem-oriented disciplines such as mathematics, students were expected to acquire such skills largely intuitively and partly by example. Unfortunately, it is now clear that those who are not taught systematically often have large gaps in their conceptual understanding.
With their educational background maths graduates could, of course, pick up some of the skills very quickly, particularly in translating complex mathematical algorithms into programs. However, in other areas, such as sophisticated ways of representing information, they had little grasp of what they did not know and in later years of my employment part of my professional role was ensuring that they did not stumble outside their area of competence and unintentionally create hidden problems for the future. The issue has grown acute in recent years because of the explosion in data volumes. Our increasingly detailed simulations of nuclear reactor behaviour could generate tens of Gigabytes of data over a few days, which would need to be searched and analysed in order to answer questions such as “is this plant modification safe?” – and this is the low end of the scale. At CERN they might generate this amount of data every ten seconds. Many technical fields (not excepting biology – especially genomics) have similar problems of trying to find a few significant items in enormous databases. (Some of these might exceed in size the sum total of written human knowledge up until the last century.) Unless the information is carefully organised it is likely to be lost forever – and discoveries could be missed. Here again is a common definition:
Data only becomes information when it is organised in such a way that it represent meaning. Even then, there are good and bad ways of organisation information so you can quickly access what you need when you need it. Not many people find these skills intuitive and few are likely to have previously encountered the fundamental concepts.
By about 2008/2009 A-level enrolments in computing related areas, applications to study computer science at universities were on a severe downward trend and recruitment to UK companies providing software and IT services was causing considerable concern. This is an important sector in the UK economy with World renown – a major foreign earner and a fundamental enabler for much of the other economic activity within the country. Although this situation has somewhat recovered in the last few years, demand has also increased, and there are still severe skill shortages.
What had gone wrong? Industry and professional institutions were pressing government for action, and many fingers were pointing at the education system. That may be an oversimplified diagnosis, but when the Royal Society was pressed to perform an in-depth investigation (Furber,S, 2012), the inquiry team remarked on the surprising consistency of the views coming from industry, professional bodies, universities, secondary teachers and also parents and pupils. Most considered the existing ICT curriculum as only partially successful: it had certainly promoted digital literacy but had also signally failed to motivate pupils towards computer science and IT careers. (Some would claim it did exactly the opposite.) Although digital literacy is important, technology changes rapidly, so much that is learned at school is out of date by the time pupils are establishing a career. It can be argued that over-emphasis in teaching such volatile knowledge is not the best use of school teaching time. In contrast, the computer science fundamental body of knowledge is extremely stable and capable of returning a life-long benefit (in this it is similar to subjects such as maths, science and English).
The problem was particularly acute with girls. Female A-level enrolments in Computing in 2011 were only 8% of the total; some degree courses, especially at elite institutions, had fewer than 5% of females.
I think that this gender imbalance matters for several reasons. This employment sector represents one in twenty UK jobs and includes a high proportion of well-paid professional jobs, so locking girls out of this career path is clearly unfair. In addition, many other well-paid roles, such as my own in nuclear engineering, involved extensive use of computing at a high technical level, although they would not be counted within the computing sector. Furthermore, the lack of a female viewpoint may well be having a detrimental effect on the industry, whose customers are, after all, 50% female. In fact, those women who do choose this path often do very well, because a crucial part of supplying IT/Computing services is an understanding of how changing a computer system changes the way people are likely to interact with each other. I have recently had the experience of trying to explain a SMART TV user interface to my mother-in-law. (It is quite difficult to find any other type of TV these days!) I am convinced that the interface was designed by young men who grew up playing video games, because there seem to be so many built-in assumptions about “the way things should work”. I do wonder whether a female engineer would have thought a little more about the older people who have been exposed to different experiences.
Is it really so important for students who will never need to write a computer program in their professional lives to understand something of the process?
There are several good reasons. Firstly, computational thinking stands as a distinct discipline, alongside such subjects as maths and science, and like these is now a fundamental underpinning of our modern lives. Our understanding of the World is greatly diminished if we have no knowledge of its foundations, and it potentially leads to poor judgements from those who will eventually be leaders of society. For example, commercial and technological incentives are pushing us towards a World in which all our critical infrastructures are increasingly interconnected. Has their education really prepared our political and industrial leaders to understand the associated risks, arising, for example, from cyber-attacks?
A second justification is also based on analogy with subjects such as maths and physics and biology. We do not expect more than a very small proportion of students to become mathematicians or physicists or doctors, but it is important to the rest of us that sufficient numbers of students are able to progress in these directions even if in small numbers. Maths, physics and biology are enabling subjects for a much wider range of careers, and computational thinking skills will increasingly be seen in this light.
A third reason is that computing technology is changing the nature of many professional roles. A corporate lawyer today, for example, is likely analyse legal contracts using expert system computer software that is better than her at picking out contradictions and ambiguities (especially in documents hundreds of pages long). She may use other systems to automatically search large legal databases for similar situations or legal precedents. The first wave of robotics affected manual jobs on production lines. A “second wave” of intelligent robotics soon seems likely to penetrate into roles previously considered exclusively human, for example medical diagnosis. This web site was inspired by the idea that visual artists and graphic designers are latching onto programming as a major tool for rapid exploration of complex visual ideas. (See, for example, the rather striking results obtained by putting the term “Generative Design” into Google Images.)
Professional success in future will go to those who can learn to ride these waves. My last project before retirement was the elimination of part of the highly skilled role of nuclear fuel cycle designer in favour of an AI (artificial intelligence) based computer system. This does not diminish the prospects of the colleagues I left behind: on the contrary, they welcome it because they are fully equipped to move up the intellectual value chain and take on roles involving greater use of strategic thinking and human judgement while leaving the more rule-based (and frankly routine) work to machines.
While I do not really think that everyone needs to learn how to write computer programs at a professional level, I do believe that our children need to gain some significant appreciation of what is supporting our mode of life. I also think that they will need to acquire the thinking skills that will make sense of the professional worlds they will have to inhabit.
- Wing, J.M., 2006. Computational Thinking. Commun ACM 49, 33–35. doi:10.1145/1118178.1118215
- Papert, S., 1980. Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, Inc., New York, NY, USA.
- Furber,S, 2012. Shut down or restart? The way forward for computing in UK Schools. London: The Royal Society.