Kathleen Booth's books

Kathleen Booth wrote two books, the first co-authored with her husband and the second a single authored work. The co-authored book ran to a second edition three years after the first edition. We gave extracts from reviews of these works and short extracts from Prefaces or Introductions. Some reviews cover a couple of books and in those cases we have changed the wording slightly to extract the information about Kathleen Booth's books.

Click on a link below to go to information on that book

Automatic digital calculators (1953) with Andrew D Booth

Automatic digital calculators (Second Edition) (1956) with Andrew D Booth

Programming for an automatic digital calculator (1958)

1. Automatic digital calculators (1953), by Andrew D Booth and Kathleen H V Booth.
1.1. From the Introduction.

Before coming to the main subject-matter of this book it seems appropriate to give a short introductory account of the general ideas current today in the field of computing machinery. This is particularly necessary in view of the wealth of technical jargon which has grown up during the past decade, and which makes it difficult for those working in the subject to remember when their remarks involve a background which is not a part of the general knowledge of the non-specialist.

Many calculations which are familiar in everyday life involve the repetition of certain cycles of operation a great number of times. For example, in evaluating the deduction of Income Tax from the wages of workers in a factory or office, the same small set of rules apply to each worker, the only difference being the amount of his or her income and the various allowances depending on such things as number of children. If a machine were set up to compute Income Tax, it would only be necessary to insert the particular data mentioned above and the operation of the machine would then be automatic. This idea of a computer performing a fixed cycle of operations a number of times on different sets of input data is known as 'iteration' and is fundamental in the operation of a modern calculator. In the scheme mentioned above, a machine was postulated which performed a fixed set of operations upon input data. The mechanism which causes the correct sequence of operations to occur is known as the 'control', and those parts of the machine which perform the actual additions, subtractions, multiplications, etc., are known as the 'arithmetic unit'.

In the simple scheme pictured above the machine was assumed to have been constructed to perform one set of operations, to solve one particular problem. Such a machine is nowadays known as a 'special purpose computer'. Computers have now been built which are capable of being set up to solve any problem amenable to treatment by the rules of arithmetic an these are called 'general purpose computers'.

It is quite possible to perform calculations upon numbers by representing them by various physical quantities and then, using some mechanical or electrical device, to generate the required answer. A familiar example of this type of calculator is the slide rule; here the numbers are converted into lengths on a logarithmic scale, and products and quotients generated by the superposition of these quantities followed by their evaluation on a suitably calibrated scale. A device which works by such physical analogy is usually known as an 'analogue computer'. Many and complex analogue computers exist and are of great beauty and elegance; they will not, however, form the subject matter of this book which is concerned with 'digital computers'. As their name implies these machines accept numbers in the form of digits and operate upon them by a process of counting. An elementary example of this type of computer with which the reader will be familiar is the cash register.

The great advantage of digital computers, over the analogue variety, lies in their potential accuracy. Thus it is extremely difficult to construct an analogue computer whose accuracy is much higher than one part in a hundred, whilst a digital machine can be extended to any accuracy required by the simple process of adding extra digits in the form of counting wheels and actuating mechanism.

The question may be asked, of what value is an accuracy of one part in ten million? In everyday life such precision is seldom, if ever, required; in mathematical calculation, however, it frequently happens that a desired small number is calculated as the difference of two large numbers so that great precision may be needed in the latter to make the former significant. (The question as to whether there exists a better mathematical method of approach to all such problems is here left open since, even if such methods exist, they may not always be the simplest from a computational point of view.)

Again, if a calculation on numbers of, say, two decimal digits involves a multiplication, in order to preserve two decimal digit precision, the resulting product has to be 'rounded off.' This means that the answer may have an error of the order of one-half in the last digit. It may be shown by a statistical process, that the sum of nn numbers, each having a probable error 12\large\frac{1}{2}\normalsize, is likely to have an error of 12n\large\frac{1}{2}\normalsize √n. Thus the sum of 40,000 two decimal digit numbers having the above probable errors, will have a probable error of about 100. If the numbers had arisen in a problem where they alternated in sign and the resulting sum was small, it is evident from the above argument that the round-off error on the sum might exceed the actual sum itself. Modern high speed digital computers perform arithmetic sequences of at least the magnitude mentioned above, and it is therefore important to maintain a high precision in the numbers used.

1.2. Review by: Montgomery Phister.
Science, New Series 120 (3110) (1954), 213-214.

It has been predicted that we are now entering a new phase of the Industrial Revolution wherein machines will relieve men of tedious and difficult mental labour, just as they relieved men of tedious and difficult physical labour during the first phase of the Revolution. Whether or not such a prediction is accurate, it certainly is true that there is today a great need for scientists with some knowledge of the design and use of automatic digital calculators. There is a corresponding need for a good textbook to be used as an introduction to the subject, and the authors state in the preface that they intend their book to be such a guide.

The general organisation is excellent. The first three chapters review the history of digital calculators and examine many of the machines now in existence. The following chapters, which comprise more than half of the book, list the basic electronic and mechanical components from which a computer is built and describe how the components are put together in a computing system. In the last five chapters, the authors explain how problems are prepared for solution by a computer, and mention some unusual computer applications.

However, it is difficult to recommend as a textbook one that omits so many important points and differs in so many respects from current practice. The chapters on circuit design do not even mention the importance of reliability or the steps that must be taken to insure circuit stability. The use of mathematical techniques in logical design is ignored.
In short, although this book probably covers the field better than any existing volume, it can be recommended as a textbook only if it is to be supplemented and corrected by someone who is well acquainted with the art of automatic computing.

1.3. Review by: D J W.
Science Progress (1933-) 42 (167) (1954), 512.

After a brief historical introduction the authors describe the basic parts of an automatic calculator. The function and possible construction of the parts is discussed with sufficient detail for the problems and choices which face the designer to be appreciated. The uses, advantages, and limitations of different types of circuit elements are then presented.

The factors which govern the choice of an order code are given and a problem is then solved as an example of how orders can be grouped to perform a certain task. From the detail that is given, the reader can appreciate the size of the elements into which calculations have to be reduced.

Only one present application of automatic calculators is described in much detail but the authors also delve into some possible future applications. The last chapter includes a competent discussion of machine intelligence and learning, and is followed by a useful bibliography.

The authors have presented many interesting ideas and the book may be useful to the newcomer to the subject.

1.4. Review by: Ewan Stafford Page.
Journal of the Royal Statistical Society. Series A (General) 116 (4) (1953), 464.

This book is an introduction to the design, construction, and use of automatic digital computers. In the early chapters the historical development of digital computers is described and an account given of the logical design of a computer and its main components. The engineering devices which have been or may be used for the construction of these components are discussed in more detail in Chapters 8-12. The last part of the book is devoted to an introduction to the use of machines and to the problems of coding. Some examples of programming with the two-address code of APEXC both with and without optimum coding are worked. The final chapter gives an outline of some of the less common applications of automatic computers. A classified and cross-referenced bibliography is included before name and subject indices.

As a first introduction to the subject of automatic computing, engineers will find the book easier than mathematicians; the latter will perhaps find it preferable to read the chapters on coding (Chapters 13-17) immediately after Chapter 4. This book can also be recommended to those who have used one machine and require to familiarise themselves with others; it will be found useful too by both builders and users of computers for the account it gives of each other's difficulties and requirements. Statisticians will be interested principally in the use rather than the construction of computers; from this point of view it is to be regretted that space has not been found for more examples of programming with a single address code and for a lengthier account of numerical methods peculiarly appropriate to high-speed computing.

The authors have a style that is in the main clear and easy to read but some criticisms can be made on points of detail. ...

1.5. Review by: E J W D.
Journal of the Institute of Actuaries (1886-1994) 80 (3) (1954), 430-431.

Many actuaries must by now be aware that modern automatic computers are very powerful tools and will want to know more about them. The subjects on which information is wanted can be briefly summarised as capacity, cost and reliability. This book sets out to answer the first of these questions, and, in view of the extensive developments in recent, it will fill a real need.

After an introduction dealing with the history of these machines, and giving brief particulars of existing machines, the book falls naturally into two sections. In the first the problems of the design of the machine are dealt with; both the logical and the engineering aspects are considered. This part is hard going for the layman, but is not to be neglected on that score, as design problems bulk large in the economics of the subject.

This is not the place to attempt to assess this part of the book in detail, but it is important to bear in mind that the design of the machine and its capacity for the performance of work are both dependent on the electronic engineering facilities available. This part of the book forms an essential part of the whole; its usefulness could however be considerably increased by a discussion of the reliability of the various devices described.

The remainder of the book is concerned with coding and programming, with numerous examples of varying degrees of complexity.
The authors go on to describe certain computer applications - not all numerical. These have been well chosen to illustrate the astonishing capacity of these machines and are of great interest, although here again an example from the commercial field would have been of service.

In conclusion, the authors consider the question: 'Can an automatic digital calculator be considered intelligent?' The answer to this depends of course on the meaning given to 'intelligent', and that chosen by the authors is by no means the only possible one. As the authors state, the question is essentially one for each person to answer for himself; this reviewer's opinion is that in their present or any foreseeable future form, these machines are not intelligent in any real meaning of the word - a view apparently contrary to that of the authors though it is not explicitly stated.

1.6. Review by: Richard Hamming.
Mathematical Reviews MR0057639 (15,258d).

This book is a good guide to the entire field of general purpose digital computers, covering both design and use aspects of them. On the design side, descriptions of the logical components carried as far as the usual block diagrams, but stopping short of the actual component values, give the reader a good idea of what a digital computer is and how it works. On the use side, the authors carry the reader through a number of examples of increasing complexity, and end the book with the topic of programming computers to play various games.
2. Automatic digital calculators (Second Edition) (1956), by Andrew D Booth and Kathleen H V Booth.
2.1. Review by: Maurice Vincent Wilkes.
The Mathematical Gazette 41 (337) (1957), 233.

It is a surprising fact that, although digital computers have attracted very widespread interest and much effort has been devoted to their design, the number of books dealing with the subject is still quite small. The present book is almost unique in having reached a second edition, the first edition having been published in 1952.

It is usual to discuss digital computers under the headings, "logical design", "circuit design", and "programming". The present book is addressed to those who are interested in all of these subjects, but people who wish to know how digital computers are used, without paying much attention to how they are constructed, will find their needs met by reading the three short introductory chapters followed by chapters 13-17.

For the second edition new sections dealing with transistors, matrix storage and automatic coding procedures have been written and a few extra paragraphs have been added to certain chapters. Otherwise there has been less revision of the text than might have been looked for in view of the rapid development in the subject. In several cases revision has taken the form of replacing the date 1952 where it occurred in parenthesis after some such phrase as "at the time of writing", by 1956, without change in the accompanying text. In one case (page 18) the statements made in the text were true in 1952 but are no longer so.

It is not to be expected that in a book of 250 pages an exhaustive treatment of a large and in some places controversial subject could be given. The book does, however, provide a good general introduction to the subject which leaves few aspects unmentioned. ...

2.2. Review by: Chester H Wallin.
Mathematical Tables and Other Aids to Computation 13 (68) (1959), 332-333.

This book is a non-mathematical introduction to the principles and applications of computers employing tubes and other electronic devices. It is a very general coverage of the entire digital computing field.

The first three chapters of the book are devoted to the evolution of calculating machines to the modern general-purpose electronic digital computer.

The next four chapters discuss the overall design of a computing system: the memory, control, arithmetic unit, and input-output units. Each unit is described in terms of serial, parallel, and decimal operation, along with the peculiarities of each type of operation and number system being used.

Four chapters are devoted to a general discussion of circuits and hardware which make up the logic of the different systems. The different types of storage, such as magnetic core, magnetic drum, magnetic disc, magnetic wire, mercury delay-lines, magnetostrictive delay-lines, and other types of storage, are described in terms of general operating principles.

The remaining five chapters are devoted to coding for a digital computer and digital computer applications. The definition of a code and discussion of its form and contents are described.

The book gives the reader a very good introduction to the general principles of coding, operation and application of high-speed electronic computers and computer components. Some previous background in mathematics, or a previous knowledge of computer circuitry, is required for a thorough understanding of the contents. In clear and concise terms, the authors cover the subjects in seventeen well written chapters. The book is written primarily for new workers in the field. Engineers in other fields who wish to become acquainted with the subject of computers will find the text both interesting and informative. The book lays a firm foundation for subsequent reading in the digital computer field. It is not intended, however, that the book be of use to engineers who are well informed in computing techniques and equipment. The excellent illustrations of circuitry serve well as an aid to comprehension.

2.3. Review by: Jerome Rothstein.
Science, New Series 125 (3243) (1957), 355.

This second edition of Automatic Digital Calculators has a very useful bibliography of the computer field, more than twice as long as that in the first edition, published only 2122\large\frac{1}{2}\normalsize years earlier. This tremendous activity in the computer field really requires a larger book than the present one to do it justice.

Automatic Digital Calculators is written on a slightly more technical level than Bowden's Faster Than Thought but does not go into enough of the technical details to be particularly useful to the practicing computer engineer. Its 17 chapters, comprising only 234 pages, tend to give mere glimpses of the complexities of the field. For example, chapter 16, on program design, is mainly taken up with a program for interpolation, giving the reader little feeling for the vast complexity and sophistication in programming now possible. There is little or no mention of Boolean algebra, of information theory, or of the possibilities of digital machines for automation or control purposes.

The book does provide a readable, though faintly archaic, introduction to the field. It gives a little history; a bird's-eye view of the field as a whole; simple discussions of many basic circuits, components, and techniques; and more than a glimpse of the minutiae required to formulate mathematical problems as sets of orders that the machine can follow.
3. Programming for an automatic digital calculator (1958), by Kathleen H V Booth.
3.1. From the Preface.

In spite of the considerable growth in the electronic computer population during the last decade very little published literature exists on programming and even less on programming for a two address machine; it is hoped that this account of some of the routines used on APEXC, the machine at Birkbeck College, London, will be of interest to those who have to make use of automatic digital calculators. The code of APEXC, and of the machines HEC2 and MAC, which are based on it, is extremely short and simple and is well adapted for learning the basic ideas of programming; the use of such refinements as iteration boxes and B boxes will then be obvious from the examples given. The author wishes to thank her husband for advice and encouragement ...

3.2. From the Introduction.

The years since the second World War have seen a remarkable change in the field of calculation brought about by the availability, in rapidly increasing numbers, of electronic computing machines has meant the emergence of the new technique of preparing calculations for these machines, usually known as programming. The process of organising a calculation can be divided into two parts - the mathematical formulation and the actual programming. The first of these may involve such things as the choice of a suitable finite difference relationship to replace the continuous processes of differentiation and integration, the representation of an analytic function by a power series and the estimation of errors involved in the calculation. The second consists of translating the results of the mathematical formulation into the language of the computing machine, its order code. Obviously the first stage of preparation may involve a considerable knowledge of mathematics but although both parts are often done by the same person - usually a mathematician - in fact the technique of programming can be acquired by anyone with a capacity for accurate detailed thinking, and a talent for solving puzzles. Moreover, it has been our experience that it is possible to train people to do useful programming in a matter of two weeks, although the acquiring of the more subtle tricks of the trade naturally takes longer.

3.3. Review by: D A L J.
Journal of the Institute of Actuaries (1886-1994) 84 (3) (1958), 313.

Dr Booth has ably described some programming routines for mathematical work on the APEXC two-address computing machine at Birkbeck College, London. The greater part of the text is devoted to setting out in detail both the schematic and detailed programmes for iterative processes, input and output routines and several mathematical operations including the solution of simultaneous linear equations.

Chapter 9, on mechanical translation, serves as an introduction to this subject, which can be pursued in a companion volume, The Mechanical Resolution of Linguistic Problems by A D Booth, L Brandwood and J Cleave.

Interpretative routines and floating point arithmetic are dealt with by further examples of programming, while fault finding receives some attention in the last chapter.

The APEXC has been little used for anything resembling commercial work and the actuary interested in the application of computers in the business world will find little of interest. The difference in emphasis between mathematical and commercial work is very apparent and one feature of this lies in the statement on p. 1 that people can do useful programming after two weeks' training. In commercial work, the coding itself must be regarded as a minor part of the job, the greater time and effort being taken up with the planning and flow-charting of the procedures to be programmed, for which a considerable amount of practical experience is required. This is an essential part of the programming technique and no clear mathematical definition is available.

Finally the reviewer was struck by the comment on p. 213 that 'even the most hardened programmer makes mistakes at times ' Had this referred to commercial work it would have been a masterly piece of understatement.

3.4. Review by: John W Carr III.
Mathematical Reviews MR0184369 (32 #1842).

This book gives, paradoxically, a "complete" introduction to programming for a digital computer - from a limited point of view. There are two schools of thought as to how digital computer programming should be taught: 1) as an extension of the detailed techniques used in operation of desk calculators, with emphasis on step-by-step "coding", listing of instructions one-by-one in sequence; 2) as an extension of the algebraic and notational languages of mathematics, with emphasis on the ideas of automatic translation from these languages into the detail instruction-by-instruction languages of the computer. The reviewer is biased towards the latter approach. This book is a competent exponent of the first school of thought.
The notation is somewhat different than usual and the failure to use flow diagrams makes study difficult. No discussion of automatic programming (translators and compilers) is given. Nevertheless, this book takes its place with a sequence of British programming texts that give a detailed account of the experience of a group with one particular machine. For a professional programmer or machine user who will be involved with construction of programs to be used many times, this book, despite notational difficulty, should be skimmed, and parts read in detail. For individuals more interested in "modern" techniques of getting problems solved using digital computers, it will not be as useful.

3.5. Review by: Ralph Anthony Brooker.
The Mathematical Gazette 43 (346) (1959), 306.

Programming for an electronic computer cannot be taught in the abstract, and any book on programming must use the order code of some particular machine, either real or hypothetical. This book opts for the former alternative and refer respectively to the EDSAC(I) at the University Mathematical Laboratory, Cambridge, and the APEXC at Birkbeck College, London. Both these machines are one level storage machines, although of very different type, the EDSAC being a more or less conventional one-address code machine with Mercury delay-line storage, while the APEXC is a magnetic drum machine employing a "1 + 1" address code.

Dr Booth's book is closely tied to the APEXC; it contains a great deal of new (and much needed) material about the numerical processes underlying many of the EDSAC programmes. The author includes a chapter on language translation which is intended to be read in conjunction with "The Mechanical Resolution of Linguistic Problems" by A D Booth, L Brandwood, and J P Cleave.

3.6. Review by: Bernard Benjamin.
Journal of the Royal Statistical Society. Series A (General) 121 (4) (1958), 486-487.

This manual is comparatively short. It proceeds to introduce the practical mechanics and logic of programming with reference to APEXC (the computer at Birkbeck College). The fact that the exposition is tied to a particular computer is not a handicap because the gain in simplicity of treatment is greater than any loss of comprehensiveness. Every step is carefully explained beginning with the rudiments of "language" and the simplest form of programme and passing on to reiterative processes and more complicated procedures. Chapters are included on subroutines, non-arithmetic programmes (e.g. ordering), matrix operations, simultaneous linear equations, mechanical translation, and fault finding and automatic programming. Granted that for the serious student there is no substitute for actually playing with programmes, there is still a need for initial basic reading on the subject. This lucidly written book fills that need excellently.

3.7. Review by: C B T.
Mathematical Tables and Other Aids to Computation 13 (66) (1959), 136-138.

The value of this book lies in its provision of many examples of codes for common operations using the automatic computer APEXC. Generally, these operations are applicable to other computers. There are several major weaknesses, however, from the point of view of the reviewer. Most important is lack of precision of language and symbolism. Next in importance is lack of an adequate bibliography or reference to methods other than those recommended for the particular machine; this paucity of references has an irritating impact on the reviewer also in that he finds no credit to many of the early workers in the field. A third weakness lies in the completely pervading reference to the APEXC machine, which is not typical of most of the machines presently available throughout the world. The book is a good coding manual for the APEXC machine, but it falls short of being a well rounded work on coding and its logic.
... we have an instructive collection of codes available, and this collection should be valuable to anyone working with a new computer, anyone who has access to a computing centre with similar codes not carefully explained, or anyone who wishes to see the current practice of explaining and printing codes. In general, this presentation is good.

Now, without belabouring the point, some of the less agreeable features of the book should be mentioned. The book is really more a collection of codes than a book on programming, so it may be misnamed.

No mention is made of the underlying logical principles of coding; however, these have not been presented successfully anywhere else. Still, the inductive process in coding (or the use of difference equations or recursive relations) is not stressed at all.

There is minimal mention of the work of others. This is important in that the reader is not given clues as to other places to look for information. There seems to be reason to believe that the author is unaware of much pertinent literature; her complete ignoring of the work of others in machine translation makes this chapter almost useless, even though (as she admits) her group is a leading centre in this work.

3.8. Review by: Jerome Rothstein.
Science, New Series 129 (3364) (1959), 1669.

It is a good thing that this title reads "Programming for an Automatic Digital Calculator" rather than "Programming for Digital Calculators," for the reader will find the discussion limited to the APEXC, a computer at Birkbeck College, London.

The mathematical level of the exposition is fairly elementary. One can believe the author's statement, "the technique for programming can be acquired by anyone with a capacity for accurate detailed thinking, and a talent for solving puzzles. Moreover, it has been our experience that it is possible to train people to do useful programming in a matter of two weeks, although the acquiring of the more subtle tricks of the trade naturally takes longer." One can also say that the book will be invaluable to anyone faced with the problem of programming an APEXC computer. The relevant functional organisation of the machine, detailed descriptions of various routines (such as division, square root, matrix operations, and the solving of simultaneous linear equations), and fault-finding are discussed at length. Glimpses are also provided of more exotic topics, such as mechanical translation and automatic programming.

The book is not likely to have wide appeal for computer programmers or engineers for the following reasons: general problems of logical programming are not discussed; only the more elementary routines are considered; and much of the detailed discussion bears only on the Birkbeck machine. An experienced programmer, who can translate the discussion into a form applicable to his own machine, may find useful hints and kinks.

Last Updated February 2023