BTC had offered to set up a chair in Computer Engineering at Birkbeck for Booth in order to reward him but the then Chancellor and others caused the proposal to come to nothing. In disgust Booth decided to "depart from the hive of socialist mediocrity".

Within a few days he had offers of chairs from the US, Canada and New Zealand. He chose Canada and became Professor at the Western Reserve University. Booth claims to have made the right choice and certainly did a lot for engineering education in Canada - but you can't help think that this was something of a loss to the UK computer industry.

He did continue designing computers - the M3 was built at Saskatchewan University with the help of a graduate student and he worked from 1965 for ten years providing computing resources for the university.

He seems never to have forgotten his own strange route through the education system and saw it as something that should be reproduced. In 1972 he started a "bright kids" program in Ontario which allowed almost anyone to take university level courses and have them credited against a degree when they finally got round to it.

His own children were among the first to benefit. Both of them started studying at 12 and graduated when they were 16 with first class honours. He felt very strongly that people should be allowed to progress at their own rate and regarded the comprehensive education revolution going on in the UK as being an attempt to bring everyone down to the lowest common level. His only overtly political achievement was to be the only University President to be listed as an Anarchist in Who's Who.

Booth's Algorithm

As well as designing small computers Booth is also responsible for "Booth's Algorithm" which is a sneaky method for multiplying two binary numbers together.

In those early days how to perform arithmetic was a problem and they didn't have the IEEE standard for floating point calculation to consult. Multiplying two binary numbers together is fairly easy in that it can be done using nothing but shifts and adds.

Each shift multiplies the multiplicand by two and the adds accumulate the final result. You add the multiplicand to the partial product if the multiplier bit is 1 and do nothing if it is a 0.

However this simple procedure only works for positive numbers. Negative numbers are generally represented by two's complement notation. That is -X is represented in binary as the positive number 2^n-X. This automatically gives you the correct answer when you do additions and subtractions but when you multiple a pair of two's complement numbers one positive and the other negative the answer is wrong and a correction factor has to be added.

The correction factor depends on the pattern of positive and negative values. Booth came up with a simplified and more regular algorithm for working out a signed multiplication. The algorithm is:

If the multiplier bit is a 1 and the next lower order bit is a 0 subtract the multiplicand from the partial product.

If the multiplier bit is 0 and the next lower order bit is a 1 add the multiplicand to the partial product.

If the multiplier bit is the same as the next lower bit then do nothing.

You can see that this is very simple and should be easy to implement in hardware - but can you see how or why it works?

You may well never have heard of Konrad Zuse, but he has a better claim than most to be the man who invented the programmable computer in the sense of actually building one. He also could be the man w [ ... ]

It is difficult to imagine a time when programming didn't involve objects and today we expect most languages to have some aspects of object orientation, yet these ideas had to be invented. The story o [ ... ]