Most people discussing the importance of teaching computing in schools think only of three (related) reasons: 1. not enough good school leavers choose to study computer science at university 2. industry is desperately short of good programmers/computer systems engineers. 3. computing products are very important for the economy and for our quality of life. Some people add a fourth (also related) reason: 4. designing and testing working computer programs can be challenging and great fun. What they nearly all miss is the need to teach scientific (not just numerical!) computational thinking (including (a) designing, building, testing, debugging, analysing and comparing working computer programs and (b) using such systems to model and explain natural information processing systems, e.g. minds, brains, ecosystems, and social systems.) This need is desperate for many disciplines, and in the long run just as important as producing new computing engineers. But the education required is subtly different. So choices about programming languages, syllabus structures, tasks, projects and modes of assessment should not be restricted to what serves aims (1) to (3) (or 4) above.
NOTE ADDED 12 Jan 2012 I recently discovered that Paul Nurse, a biologist who is the current President of the Royal Society, has been presenting ideas closely related to this note: e.g. claiming that major future progress in the biological sciences will depend on understanding uses and management of information in biological systems, from cells upwards, e.g. in his 2010 Royal Society lecture on "Great ideas in Biology" http://royalsociety.org/royalsociety.tv/
Revised and Updated: 12 Jan 2012 After Michael Gove's speech on Digital Literacy:
http://www.guardian.co.uk/education/2012/jan/11/digital-literacy-michael-gove-speech
A partial index of discussion notes is in
http://www.cs.bham.ac.uk/research/projects/cogaff/misc/AREADME.html
NOTE: UKCRC is the UK Computing Research Committee http://www.ukcrc.org.uk/ One of its achievements, providing part of the background to my comments, was setting up the Computing Grand Challenges Initiative (led by Prof Tony Hoare, and Prof Robin Milner, in 2002): htp://www.ukcrc.org.uk/grand-challenge/ The inspiration behind that initiative has been lost sight of in recent discussions of requirements for computing education in schools. See for example: Grand Challenge 1: In Vivo - in Silico: The Virtual Worm, Weed and Bug Breathing Life into the Biological DataMountain A GRAND CHALLENGE FOR COMPUTATIONAL SYSTEMS BIOLOGY Grand Challenge 5: Architecture of Brain and Mind Grand Challenge 7: Journeys in Non-Classical Computation Those are not primarily concerned with building useful systems. Their aims are deeper: more like the aims of theoretical physics, or theoretical biology.
Date of original message: Sat, 27 Aug 2011 17:21:22 +0100 From: Aaron SlomanSubject: Re: MacTaggart lecture by Eric Schmidt in Edinburgh To: UKCRC (UK Computing Research Council) Mailing list A member of the UKCRC mailing list recommended this link: http://www.guardian.co.uk/media/interactive/2011/aug/26/eric-schmidt-mactaggart-lecture-full-text Yes, it's a great read. Eric Schmidt came quite close (on page 8) to making the point that computing is not just about useful technology but also includes science. But he seemed not to notice how important the educational need for computational thinking is in a range of scientific and other research disciplines. It's a great pity that most people talking about computing education in schools focus only on the technological, economic, and social importance of applications and not on the deep and growing significance of computational concepts, techniques and methods in the many areas of science and knowledge (pure and applied) concerned with naturally occurring information processing systems, varying in scale from cells and microbes to ecosystems or cultural and socio-economic systems. This point was emphasised recently by the president of the Royal Society, as noted above. But he did not draw out the educational implications. There are also deep computational ideas, not encountered by people who merely learn to use computers, that are directly relevant to some of the oldest problems in philosophy, for example problems about the nature of causation, about the relationships between mind and matter, and about how mathematical discoveries differ from discoveries in the empirical sciences. I have a growing, somewhat disorganised, collection of papers and presentations illustrating these points here: http://www.cs.bham.ac.uk/research/projects/cogaff/talks/ http://www.cs.bham.ac.uk/research/projects/cogaff/ Alas, most of the people who do research, teaching and learning in areas (e.g. biology, psychology, animal cognition, education, child development, social sciences, philosophy, and others) that require the ability to think deeply about complex information processing systems have used computers (e.g. for preparing documents, accessing the web, using email, using databases) but have had little or no experience of building working systems of any kind. I.e. they have not learnt how to specify requirements and goals, produce designs, then build, test, debug, criticise, extend, analyse, explain and compare designs. So they lack the intellectual resources required for formulating good explanatory hypotheses in their fields. In that sense they cannot be competent at their jobs, and are restricted to scratching the surface (e.g. often merely doing experiments, collecting data and running statistical packages to find out what correlates with what, but never understanding how anything actually works, or can go wrong, or might be improved). Building powerful explanatory theories requires more than the ability to use natural language and draw flow-charts and other diagrams. It also requires more than the mathematics developed for use by physicists, e.g. differential and integral calculus. In particular it requires the ability to model processes in which complex structures (e.g. molecules or thoughts) are assembled, modified and interact with other structures. But the incompetence is invisible because it is nearly universal. The problem is also invisible to those who do have the required competences (e.g. people on computing mailing lists, teachers of computing in schools, and the very bright computer scientists and engineers in industry) because their interest (and most of their knowledge) is focused elsewhere: on how to make computers do something newer, better, faster, more reliably, more securely, more lucratively, or whatever. Most of them are not at all interested in studying or explaining the development and operation of natural information processing systems (e.g. animal minds). Unless there is a major change in the priorities of computing education in schools, so as to include education of students who go into disciplines other than computer science and computer engineering, the nation will go on producing inadequately educated students, teachers and researchers studying such information processing systems, e.g. in developmental, clinical, social psychology, in neuroscience and psychiatry, in various fields of biology, in linguistics, in philosophy, in social science, in education[*], and in many non-computing areas of science and engineering -- whose understanding of ways of thinking about information processing systems falls far short of what they need to do their jobs well. [*](Human learning/development is one of the most important and complex forms of information processing in our lives, but we hand over responsibility for guiding learning to people who are not at all equipped to understand information processing systems of any kind -- though fortunately there are a few who have important educational talents despite their ignorance, thanks in part to biological and cultural evolution.) If we continue to focus on how to improve computer science courses in schools, focusing on CS courses that are mainly concerned with how to build useful applications, courses that are not aimed at or taken by the majority of very bright learners whose main interests lie outside computer science, we risk missing a major opportunity to educate our nation for the future. Not because everyone needs to learn to build and/or use tools, but because everyone needs to learn some of the new ways to think about both natural and artificial information-processing systems. These ways of thinking have been developed since Alan Turing did his seminal work in 1936, and many of them arise out of his work. What we should be doing is injecting hands-on experience -- of specifying, designing, implementing, testing, analysing, evaluating, comparing, and extending information processing systems of various types, and various levels of complexity -- into many non-computing educational trajectories, including mathematics, science, philosophy, language, and many others. The focus should be on doing something interesting and directly relevant to the subject, rather than insisting on all students trying to build something that is practically useful, evaluated in terms of its actual or potential usefulness, or its entertainment value. Having fun programming can help learning, but it's not enough for deep learning. If we don't redirect the teaching of computing in this way (not excluding building useful applications, but offering alternatives for those with other interests) then we'll miss the opportunity to fire up a lot more of the very bright students -- some of whom might, as a result, consider computer science degrees and careers, while others go on to become ground-breaking researchers and teachers in other areas of human endeavour, including other sciences, humanities, the arts, medicine, and education. After all, a learner is a self-extending information processing system, and if we don't understand the implications of that we cannot design good learning and teaching systems -- except by luck. If learning to think about such matters becomes as wide spread as learning to understand and manipulate numbers, then maybe even some future politicians will develop a better understanding of the problems they are trying to solve and how to test and evaluate proposed solutions, instead of being hoodwinked by captains of industry who promise the moon, or wishful-thinkers who are sure they know what governments should do because the results will be so valuable (for them). Unfortunately, most computer scientists discussing computing at school focus only on how to get more pupils interested in and prepared for degrees in computing and careers in computing -- a disastrously narrow focus. Also most of the computing researchers publish mainly in places where they will be read by their same-discipline peers and gain prestige for the national research evaluation exercise, instead of using open access multidisciplinary journals where there's more chance of cross fertilisation of other disciplines. Of course, all my generalisations have some exceptions, but the general pattern (including the misguided exclusive focus in recent discussions on improving computer science teaching) is disastrous both for computer science and for many other areas of learning, pure and applied. I don't know if there are any countries that understand this, but if there are and they apply their understanding to reorganising school curricula in a wide range of disciplines, the resulting difference could be very striking after a few decades. [Yes: I know the existing teachers in other disciplines will argue that they are already short of time to teach enough of what they think is important (though in some areas, e.g. mathematics, the importance of computing is already recognised by exceptional teachers). Even a few philosophy teachers are beginning to understand the revolution. Yes: there is a deep chicken and egg problem if nearly all school computing teachers have not had the education required even to understand the problem let alone contribute the required teaching. There are ways of solving these problems -- but not at a stroke. Some draft suggestions are here: http://www.cs.bham.ac.uk/research/projects/cogaff/09.html#908 Teaching AI and Philosophy at School? http://www.cs.bham.ac.uk/research/projects/cogaff/misc/alevel-ai.html A possible Artificial Intelligence/Cognitive Science GCE/A-level Syllabus Some examples of introductions to 'Thinky' programming can be found here: http://tinyurl.com/thinky-ex With a small collection of illustrative video tutorials (to be extended) here: http://tinyurl.com/PopVidTut Some example presentations on research overlaps between Computing/AI/Robotics and both philosophy and the study of biological intelligence and its evolution and development can be found here: http://www.cs.bham.ac.uk/research/projects/cogaff/talks/ See also Darwin Among The Machines: The Evolution Of Global Intelligence, George B. Dyson, Addison-Wesley, 1997, Marvin Minsky on the One Laptop Per Child (OLPC) project http://www.cs.bham.ac.uk/research/projects/cogaff/misc/minsky-olpc.html ]
Maintained by
Aaron Sloman
School of Computer Science
The University of Birmingham