THIS IS NOT AN OFFICIAL DOCUMENT OF THE UNIVERSITY OF BIRMINGHAM
OR THE SCHOOL OF COMPUTER SCIENCE. NEITHER THE UNIVERSITY NOR THE
SCHOOL HAS ENDORSED THE OPINIONS EXPRESSED HERE.
Last updated: 24 Jun 2009
Installed: 23 Jun 2009
An earlier version of this was posted to the computing-at-school
It is often said that the basic things computers operate on are numbers. This is quite wrong -- they operate on bit patterns and on various mechanisms for doing things with bit patterns, including: reading them in, sending them out, copying, comparing, modifying, treating them as instructions, and feeding them through various devices which take in bit-patterns and spew out bit patterns. ("gates"). How the bit patterns are implemented in physical machinery has changed tremendously since the days of World War 2. So have the ways in which bit patterns are interpreted. Those operations on bit patterns were initially interpreted mainly as operations on numbers, but as time went on they were interpreted as operations on more and more different sorts of things: strings of text, machine instructions, databases of corporate or other information, images, music, email messages, plans, mathematical proofs, etc.... But trying to make interesting things happen in computers by directly specifying operations on bit patterns is soul-destroyingly tedious and difficult, so over the last half-century we have increasingly used computers themselves to help us move further and further away from such self-torture. That process is one of the most interesting in the history of science and engineering.
For an introduction to the notion of virtual machines (VMs) running on physical machines (PMs) see http://www.cs.bham.ac.uk/research/projects/cogaff/talks/#wpe08 Virtual Machines in Philosophy, Engineering & Biology (PDF) (Presentation at WPE 2008, London November 2008) http://www.cs.bham.ac.uk/research/projects/cogaff/09.html#vms What Cognitive Scientists Need to Know about Virtual Machines (Short conference paper for CogSci'09)
Has anyone ever tried developing a historical course at school level giving a feel for the succession of changes of level of abstraction, and power, and the increasing diversity of forms, of formalisms and the tools with which software designers and users have been able to design or interact with computers. I don't mean starting by teaching children to design electronic circuits, then teaching them to program in machine code, then to use a sequence of higher level languages, etc. I am thinking more of giving them a historical sense of the tremendous intellectual achievements and creative thinking of many kinds that increasingly rapidly changed the very nature of computers -- by designing new formalisms, compilers, interpreters, new models of computation, processors, short term and long-term storage mechanisms, operating systems, development environments, verification and testing systems, memory management systems, interface devices, network systems, file-management systems, device drivers, computer controlled manufacturing systems, etc. so that it's only slightly fanciful to say that modern computing systems differ from those in the early 1950s (or earlier) in something like the way vertebrates and other complex animals differ from the earliest micro-organisms. [Actually it is an exaggeration, but may one day cease to be.] One of the land-marks was the role of computers in putting people on the moon. Perhaps battles in evolution between biological species could be compared with battles between programming languages, operating systems, processor technologies, storage technologies, design and development methodologies, editors(!) etc. (It wasn't always the intrinsically fittest that survived.) I wonder whether, for many of school age, that kind of history would be at least as interesting as the successions of wars, royal families, political or national take-overs, revolutions, social, economic and cultural changes, etc. that filled history lessons in my young days. The material could include some of the philosophical debates about whether computers can think, understand language, be creative, see things, learn, have free will, be conscious, including perhaps Turing's Mind 1950 article, which unfortunately is often mis-quoted: he did not propose a test for intelligence or a definition of "intelligence". (http://cogprints.org/499/0/turing.htmltest) Some of the students who initially only want to know more about how we got here, might end up wanting to get more detailed technical knowledge and competence in the field.
Some of the material required, though by no means all, is in George B. Dyson's 1997 book, Darwin Among The Machines: The Evolution Of Global Intelligence http://www.amazon.co.uk/Darwin-Among-Machines-George-Dyson/dp/0140267441/ref=sr_1_3?ie=UTF8&s=books&qid=1245889197&sr=1-3
Would history teachers be interested in collaborating with computing/IT teachers? (Or vice versa?) Is this idea too fanciful for the current context in schools? Comments welcome: If anyone wishes to send suggestions for improvement, or elaborations of this idea, or criticisms, modifications, comments, etc, please do: Email A.Sloman@cs.bham.ac.uk If you don't want your comments included in this web site, please say so.
Subject: Re: [CAS] Another (very tentative) proposal - History! I don't think that your idea is too fanciful but target audiences vary with the age range in what they want to get from a Computing course. I have a mixed bunch of AS/A Level Computing students, some I don't think would want to study the history of computing as a historian would do, others might but in the main my students are interested in how the current technology works and how to apply it to things that they are interested in. I feed in the history along the way when I feel there is a need to set a context, to liven up a lesson, etc. However, I do think that the lessons drawn from the history of computing can be used to teach principles. The CSUnplugged resource by Tim Bell is principles-based. I have tried in my new A Level book to link theory and practice to principles, e.g. in the chapter on information hiding, I make a reference to the Enigma machine and I suggest that schools arrange a visit to Bletchley Park. I think your suggestion of working with history teachers is a good one, someone needs to write a reader that could be the basis for a history of computing theme that could be taught taught as part of lower school history.
School of Computer Science
The University of Birmingham