Kathleen Booth

Jason Priddy
9 min readMay 6, 2019

Programmers Assemble!

Pioneering work on the ENIAC, love the determination on their faces, so hard working!

This is Part 2 in a series of articles dedicated to women of computer programming. See list below for the other articles in this series:

Part 1: Ada Lovelace the “Mother of Modern Computer Programming”

Next on our list is the amazing Kathleen Booth. She is an early pioneer in computer programming, and began working with computers just as the concept of storing programs on the computer itself had taken hold.

During the 1940s the first general purpose computers, such as the ENIAC (Electronic Numerical Integrator And Computer), were not designed to store programs internally. To program them, it was necessary to manually alter thousands of cables and switches, which could takes days and was extremely error prone.

She was one of the first to work on this new concept of “software”, and seeing the need, invented assembly language to make programming the computer more human friendly. Prior to this, it was a laborious process of either entering machine code into the computer, (the 1s and 0s the computer architecture can understand and execute) via physical switches and cables, or punching holes into cards, and then feeding the cards into the computer. This also required memorizing sequences of 1s and 0s, for instructions of the computer program.

There are many more contributions she made to early computing, so please sit back, relax and read on!

You can hear her now “this just will not do!”

The Early Years

Kathleen Booth was born Kathleen H.V. Britten on the 9th of July, 1922, in Stourbridge, Worcestershire, England. She received her B.Sc in Mathematics from the University of London in 1944, and her Ph.D in Applied Mathematics in 1950 at the same institution. At the time, there weren’t degrees in computing, as the field was still in its infancy. After university, she became a Junior Scientific Officer at the Royal Aircraft Establishment, a British research establishment, from 1944 to 1946.

In 1946 she began working as both a research assistant at Birkbeck College, where she later became a lecturer and Research Fellow, and as a Research Scientist at the British Rubber Producer’s Research Association (BRPRA). It was during her time at BRPRA when she met, and later married in 1950, Andrew Donald Booth, an Electrical Engineer, Physicist and Computer Scientist.

Building the ARC & ARC2

In 1946, Andrew began work on a computer called the Automatic Relay Computer (ARC), an early electro-mechanical computer. Relays were the precursors to the more efficient transistor. They were basically electric switches used to perform logical operations such as addition, subtraction, etc. It contained components which involved using an electrical signal to create mechanical movement and vice versa, so was classified as an electro-mechanical computer.

The ARC was built in Welwyn Garden City, in close proximity to the BRPRA facility. Upon meeting Andrew at BRPRA, Katheen and another research assistant, Xenia Sweeting, assisted work on the ARC. They in fact, constructed most of the machine, which means Kathleen also had a deep understanding of hardware. The design used 600 relays and 100 vacuum tubes. Vacuum tubes controlled the flow of the electric current through the computer.

Working on the ARC circa 1946, serious business!

The following year, 1947, Andrew and Kathleen (as his research assistant), traveled to the United States. This was via funding from the Rockefeller Foundation at BRPRA. The trip was a six month US tour based at the Institute for Advanced Study, in Princeton, New Jersey. It was at the Institute where they met the preeminent mathematician, physicist, computer scientist and polymath of the 20th century, John Von Neumann.

It was with Von Neumann where they discussed the concept of the “Von Neumann architecture” he had conceived. This concept was first published in Von Neumann’s First Draft of a Report on the EDVAC, published on June 30th, 1945. The EDVAC was the first computer to use the Von Neumann architecture. This was a design architecture consisting of the following constituents:

  1. A Processing Unit responsible for carrying out the instructions of a computer program.
  2. A Control Unit responsible for coordinating the movement of instructions to the Processing Unit and Memory, as well as the input and output devices.
  3. Memory as mentioned in number two, which stores the data (information) as well as the instructions for that data to be processed by the Processing Unit.
  4. A Mass Storage device to store a larger amount of persistent data (data that will remain when power is lost to the computer).
  5. Lastly, as mentioned in number two, an Input and Output mechanism for the transfer of information into, and out of, the computer.

After hearing about this seminal idea of a “stored-program computer”, Andrew decided to redesign the ARC, dubbed the ARC2, to incorporate this architecture. Memory was at the heart of Von Neumann’s architecture, so this prompted Andrew to create the world’s first rotating electronic storage device, to store persistent data. It was a cylindrical drum, rather than the circular discs we know and love today. It also utilized 800 relays vs 600, which allowed for more processing power, about 33% more, effectively. The computer officially came online on May 12th, 1948.

Building More Machines

Between 1947 and 1953, the Booth’s and their very small team, built two more computers aside from the ARC/ARC2.

The first was an experimental fully electronic computer named the Simple Electronic Computer (SEC), a redesign of the ARC2. Fully electronic required no mechanical moving parts (aside from the drum drive mentioned previously), thus relied solely on electricity and electric current.

The second, was the APE(X)C (All-Purpose Electronic (X) Computer). The X in the name was a placeholder for any sponsor that would pay to have one built. The first was sponsored by the British Rayon Research Association in 1951.

Andrew was the primary builder of these machines, and Kathleen performed all of the programming!

Assembly Language & Asynchronous Programming

In 1947, the Booth’s published two reports about the ARC2. The first was General considerations in the design of an all-purpose electronic digital computer, published in August 1947. It described what was required for a Von Neumann Architecture, including different options for memory.

Furthermore, the precursor to her invention of “assembly language”, was described in this report, in which she termed Contracted Notation. This was the first step towards abstract thinking about programming computers, without needed to program the explicit 1s and 0s, or machine code instructions.

Contracted Notation, not to be confused with Expanded Notation :)

Amazingly, there is a section of note in this same report, where Kathleen’s programming prowess shines bright. Assuming she was the chief programmer for all of the machines they were building, is quite astounding. She outlines the possibility of Synchronous vs asynchronous operations, and this was in 1947! The only existing descriptions of asynchrony after this I was able to locate, were from the mid-1980s.

Ostensibly, this would allow multiple instructions in a program to be executed in parallel. Therefore the program wouldn’t be blocked from waiting for the result of the current instruction, before executing the next instruction. Effectively this would improve the program execution time, i.e. how long it takes for all instructions to be processed.

Excerpt from General considerations in the design of an all-purpose electronic digital computer, so amazing!

The second was Coding For A.R.C., published in September 1947. This report is where Kathleen first detailed her ARC2 “assembly language”, the next step from the Contracted Notation outlined in the previous report. As of writing of this article, I have been unable to locate a digital copy of this report to link here.

Assembly language sought to apply mnemonics to the machine code instructions, beginning the process of abstracting away the particular machine code instruction from the programmer. In essence, rather than having to memorize that machine code 10010110 is an instruction, instructing the computer to move data, you would simply memorize and enter the assembly language mnemonic MOV as the instruction.

She also created what’s called an assembler, which is a program used to translate assembly code into machine code. In the example given previously, that would be translating the assembly code instruction MOV into machine code instruction 10010110. British Computer scientist David Wheeler, is officially credited as the creator of the first assembler in 1948 by the IEEE Computer Society, which is quite unfortunate.

Further Programming Exploits

After the advent of assembly and the assembler, the Booths co-founded the School of Computer Science and Information Systems at Birkbeck College in 1957, along with J.C. Jennings. The following year in 1958, she wrote a book on how to program the APE(X)C computer, as well as taught a course on programming. She was a busy lady!

Machine Learning, AI & Languages, Oh My!

In 1953, the Booth’s published a book named Automatic Digital Calculators, which detailed various topics such as an introduction to computing machinery, the mechanical age of computing, the arrival of electronic techniques, and the design of a computing system. It was also in this book, that Kathleen explained the Planning and Coding style of programming.

In chapter 18, the last chapter of the book, it described many interesting applications for computing, and was quite forward thinking for the time. It was called Some Application of Computing Machines. Within this chapter topics were discussed such as:

  1. X-Ray Crystal Structure Analysis. Analyzing the molecular and atomic structure of a crystal via X-Ray Crystallography using computer computation.
  2. Computers and Linguistic Processing. Quite an interesting chapter, as computing at that point was strictly limited in scope to calculations. This led to many papers, such as one that described creating outputted text in Braille. Amazingly, there was even a practical demonstration of machine translation, from French to English, all the way back on November 11th, 1955!
Example of machine translation of text. Viva la France!

3. Games. Similar to machine language processing listed previous, playing games on computers was another novel idea, as again, the scope of computing applications up to this point were extremely limited. A short description of a simple game that would be possible, was known in England as noughts and crosses (Tic-Tac-Toe in the United States). Secondarily, they explain the possibility of more advances games, such as checkers and chess.

Shall we play a game?

4. Machine Learning and Intelligence. The last section of this chapter, discusses some of the possible implementations of artificial intelligence and machine learning. It discusses the limitations of computers being able to accurately simulate human minds, and abstract thought.

Neural Networks

Another very exciting application, and very forward thinking for the time, yet again, was the notion of an artificial neural network, (attempting to simulate an actual brain based neural network comprised of physical neurons) created via software conceived by Kathleen. It was published in something called The College Annual Report from Birkbeck College in 1958/59 edition. This report documented her development of a program, to simulate a neural network to investigate ways in which animals recognize patterns. The following year, in the 1959/60 edition, she designed a program of a neural network for recognizing characters. As of writing of this article, I have been unable to locate a digital copies of these reports to link here.

Later Life

The Booths resigned from Birkbeck College in the 1961–62 academic year. This was due to Andrew not being conferred a chair, despite the innumerable contributions to computing made by him and his team. They left the United Kingdom and decided to move to Canada. She then became a Research Fellow, Lecturer and Associate Professor at the University of Saskatchewan from 1962 to 1972. Her last position was as a Professor of Mathematics at Lakehead University from 1972, until her retirement in 1978.

After retirement, she published a paper with her son, Dr. Ian J. M. Booth, in January 1993 titled Using neural nets to identify marine mammals. Basically it was an artificial neural network. It was created to recognize the calls of individual seals, and performed well with the animals in the test set. This was based, at least partially, on her existing research from the late 1950’s and 1960s on the same subject.

Andrew passed away on the 29th of November, 2009, at the age of 91. He and Kathleen had been married for 59 years at the time of his passing. Kathleen herself passed away on the 29th of September, 2022, at the age of 100.

Her inventive mind and massively large contributions to programming have gone largely unnoticed, and it required a great deal of effort to track down the information contained within this article. Assembly language and the assembler alone, paved the way for the process of abstracting away explicit details of programming to the lowest level of the computer. It led to higher level languages such as FORTRAN and COBOL, making programming more accessible and robust. She truly was a pioneer of computing and programming!

--

--

Jason Priddy

Analogue at birth, digital by design, proud nerd, geek, and decreaser of world suck. Always looking to learn something new and interesting.