University of Wales Swansea
Department of Computer Science

History of Computation

Prof. J. V. Tucker

October 2002




Computer science is about computers and computations. It is concerned with:

  1. data;
  2. algorithms for calculation and mechanisation;
  3. programming languages for expressing algorithms; and
  4. machines for implementing programs.

It is a modern subject whose origins lie in the development of electronic computers and their means of programming in the 1940s. Its history has been shaped by earlier fields including electrical engineering, mathematics, and philosophy, and the computing needs of science, engineering and medicine, and of the commercial and industrial world.

I see the history of computer science as a small but crucial part of the history of computation and, more broadly, the history of mechanisation. From ancient to modern times there has been a search for algorithms, notations, mechanical devices for calculating in order to solve intellectual and manual problems arising in the world's work. Methods for recording and using large amounts of data have been needed in many societies in history.

The purpose of this course is to explore the history of computation. This is a vast and complex subject that plays a part in the life and times of most societies at most times. We will focus on the history of computation in Europe and North America, starting with ancient Greece. The course is designed to provide a rounded history of computer science. Among the special features will be: a search for the origins of concepts, methods and technologies; examination of historical context; examination of process of development; emphasis on data, algorithms and software, rather than hardware.

I first taught this course in the academic year 1995-96.


Educational Aims

The Swansea Computer Science Education is defined by nine Aims, recorded in the Handbook. This course will serve the following:

Primary Aims: Aims 3, 7, 8 and 9
Secondary Aims: Aims 2 and 5.

Teaching and Learning

I see the course as both an adventure and an experiment. Each year I would like the course to be a collaborative intellectual effort in exploring the history of computation. I am interested in the history of computation but I am not yet an expert. Students on the course must take an active role in discovering the subject themselves and in communicating ideas, information and questions. I expect that each generation of students who take the course will help improve the range and depth of historical detail and understanding the course is able to provide for the next generation.

The course runs over the Michaelmas and Lent Terms. The first term will consist of 10 formal lectures and directed reading on the following:

Computation in the ancient Greek world.
Life and work of Charles Babbage.
Algebra and origins of programming in the 19th century.
History of logic and foundations of mathematics.
Development of programming languages 1945-70.
History of data types.
Reasoning about programs.

Notice I lecture about rather specific topics. My purpose is to introduce different kinds of historical subjects and ways of studying them.  I certainly consider these subjects to be fundamental historically, but I have chosen them because I like them.  Notice, too, I will not lecture on hardware development. There is a good literature on hardware developments that allows the subject to be studied through reading and course work.

During the first term, students are expected to find a subject to study in depth. I have plenty of  suggestions and I am open to all sorts of proposals for topics. Thus, students taking this course will be free to study almost any subject of their choice from the historical point of view.

On choosing a topic, students prepare a short (2-4 pages) description of their subject which must include a provisional list of chapter headings and a list of sources. Once I have approved the proposal the student's main task is to investigate and educate him or herself in the subject and meet the conditions of assessment (see below).

In the second term, the class continues to meet and students give lectures on their subjects.

Reading Lists and Electronic Resources

I will issue a series of general and special reading lists as the course progresses. These will range from a First Introductory Reading List, designed to give an overview of the subject at the beginning of the course, to a highly detailed list on Ancient Computation.

There are many electronic resources and a convenient starting point is the link to the Virtual Museum of Computing. Beware of errors in some of the material accessed by these means.


In summary, there is one form of assessment which is as follows:

100% Dissertation. Students must write one dissertation analysing a topic to do with computation. The dissertation must be completed before the summer examinations begin. There may be a viva.

Students must also prepare a lecture, and supporting materials, on their subject and deliver their lecture and answer questions from the audience in the Second Teaching Block.

A list of suggested titles for dissertations will be provided but students are welcome to propose their own.


Historical Pitfalls

Right from the start, you must beware that the historical analysis of technical subjects is beset by three temptations:

  1. The wish to reconstruct the past as a clearly recognisable path leading to the present.
  2. The wish to find and create heroic figures whose achievements more or less define the story.
  3. The wish to separate the work from the life and times of the society in which it took place.

The first temptation is well known to all historians and is called teleological history. The second and third are particular curses of writers on the history of technical subjects (like physics and mathematics).

All three are temptations to be selective, to be blind to the complexity and messiness of scientific work, to the slowness of scientific understanding, to the immense amount of work, by many people, that is necessary to produce a high quality and useful subject in science and engineering. To simplify in this way can lead to a history that is so misleading as to be almost worthless. A distorted history can distort our picture of the present and future. I am sure this course will reveal the difficulties involved in attempting to avoid these temptations in the history of computation.