We are like dwarfs on the shoulders of giants, so that we can see more than they, and things at a greater distance, not by virtue of any sharpness of sight on our part, or any physical distinction, but because we are carried high and raised up by their giant size. The phrase "
Standing on the shoulders of giants" is attributed to the French philosopher Bernard of Chartres. Although he lived in the 12th century, the truth in his words became more evident with time. "On the Shoulders of Giants" will be my series of articles about the giants of computer science and information technology. We all know the names of Bill Gates, Steve Jobs, Larry Ellison, John Carmack, Anders Hejlsberg (Hallowed be His name), Sergei Brin, Larry Page and many others. While they are undoubtedly giants of IT these series will focus on the older generation of pioneers on whose shoulders the aforementioned were standing. These giants are so ancient that they did not even refer to themselves as computer scientists because computer science was non-existent at the time. Instead they called themselves mathematicians and physicists. That being said I may one day get to the point to write an article about some of the people listed above.
Each part will tell the story of a computer scientist and sum up his works from my point of view. The articles will not include more information than what you can read on Wikipedia and find using Google but it will be formatted as a story and will sum up more than one Wikipedia article. What is more people do not go looking for information about someone if they have never heard of him. In short I will read Wikipedia for you in the form of a fairytale. Note that I cannot promise that I will have the time or the inspiration to write more articles so part 0 may happen to be the last.
Part 0 tells the story of the most powerful (in my opinion) of the giants. The father of computer science –
Alan Turing.
Alan Turing was born on June 23rd 1912 in England. He started going to school at the age of 6 and even then it was evident to his teachers that he was going to become a giant as he was mentally taller than all of his classmates. At the age of 14 he moved to Sherborne School (yeah, I have not heard of this school either) but his first day coincided with a big strike in England so there was no transport. However no strike can stop a real giant and the young Turing rode his bicycle more than 97 km in two days in order to get to school in time. However the teachers in this school obviously were dwarven racists that could not accept giants in their ranks. They considered education to be a study of the classics and insisted that Turing became "educated" instead of "scientific specialist". Of course he resisted the teachers' ambitions to make a dwarf out of him. At the age of 16 he got familiar with the work of Einstein and what is more he was able to infer that Einstein was questioning Newton's laws of motion which was not explicit in the text. Note that at the time the work of Newton was still accepted as a holy truth in the Physics community and the few that dared to question it were laughed upon.
Turing was gay. More on this later. In school he met his first love Christopher Morcom, a fellow student of his. However Christopher died before they finished school and this is when Turing fell from grace. He became atheist and adopted the belief that everything can be explained by science. Every dark cloud has a silver lining I guess.
He graduated King's College in Cambridge with a distinguished degree in 1934. In 1936 he submitted a paper that contained what is probably his greatest contribution to science. He became an accomplished giant. He gave to the world an idea more powerful than the most powerful supercomputer.
The Turing Machine – a concept so simple and beautiful and yet universal. A concept that practically defines what a computer is and is in the foundations of computer science as we know it. Formally the Turing Machine is defined as several sets of states, a set of symbols, a transition function, etc. However this mathematical definition is not easy to grok and I am sure that anyone who is interested can look it up. Luckily for us mortals, there is a much simpler analogy. The
mechanical representation of a Turing Machine is an infinite tape with cells that can hold a finite predefined set of symbols (also known as an alphabet), a head that can read and write one symbol at a time and move one cell left or right, a state register that can hold one state of a finite predefined set of states, a finite predefined table of transitions (the algorithm). Given the current state of the machine (from the state register) and the symbol that is currently under the head the table can uniquely identify an instruction that can do the following actions in a sequence – write a symbol in the current cell, move the head (one step left, right or not move it), write a new or the same state in the state register. One of the symbols in the alphabet is a special blank symbol and the tape is assumed to be filled with it initially. One of the states is an initial state that is present in the state register when the machine starts. If no instruction is present in the table for the current situation the machine is said to "halt" (i.e. it has completed the calculation). So basically we have a tape with cells (much like the memory of a modern computer except that it cannot be accessed randomly), a head, a special place to remember the state (this is somewhat similar to the register in modern processors that is called "program counter") and an algorithm that ALWAYS has instructions that look like this:
In state 42, if the symbol seen is 0, write a 1, move the head to the left and change the state to 15;
And that is all. Turing managed to prove that this simple concept can carry ANY computation. A
Universal Turing Machines is a Turing Machine with instructions and a set of symbols designed in such a way that the symbols can be placed at the beginning of the tape to represent any other Turing Machine. Turing proved that such Turing Machine is possible to construct. This concept is similar to the Von Neumann computer model that modern computers belong to. The main idea of this model is that the program is stored in the memory where the data is. This is an absolutely fundamental discovery. It means that any computer that can possibly be constructed is at most equivalent to a Universal Turing Machine and that it can be simulated on a Universal Turing Machine. Also any computer that can simulate something as simple as a Turing Machine can simulate ANY other computer. Most important of all - anything that anyone can prove for a Turing Machine applies to ANY computer. Most proofs in computer science are done against this simple model.
From 1936 to 1938 he was studying under the supervision of another giant whose name was
Alonzo Church. Probably I am gonna tell you about him at some point in the future. In 1938 Turing obtained a PhD degree. This was also the time when he started studying cryptology.
During the Second World War Turing worked on various projects for breaking the German cyphers most notably the famous German encryption machine
Enigma. His greatest achievement was the improvement of a Polish decryption machine called Bomba. The machine that Turing created was called Bombe and was the main method for decrypting German messages during WW2. I do not understand the details of how Enigma or Bombe worked but one of the people who worked with Turing described his idea:
"He had the idea that you could use, in effect, a theorem in logic which sounds to the untrained ear rather absurd; namely that from a contradiction, you can deduce everything"
Basically the idea was that the message was going to contain some string like some preposition for example that most messages had. The longer the string the better. Then the machine was going to try different encryption keys and discard the ones that caused a contradiction. What was left were very few keys that could be verified manually. Over two hundred of these machines were produced until the end of the war. He worked on several other positions related to cryptography including the decryption of another German device and a method for encrypting voice communication which was not used in the war. For his work he was awarded the Order of the British Empire.
After the war he went on to work on two of the earliest computers the
ACE and the
Manchester Mark 1. At that time he started working on a more abstract
paper that was published in 1950 and dealt with the philosophical problems of Artificial Intelligence. This paper contained the infamous
Turing test which is supposed to define if a machine is intelligent. The basic idea of the test is that a human communicates with a human and a machine through a neutral communication channel like typewritten text so that the machine does not need a voice or human appearance to be considered intelligent. If the judge is not able to guess who the machine is in a significant percent of the test cases this means that the machine is intelligent. Turing went on to describe the possible objections to his test and gave answers to them. One example is the theological objection. According to some, thinking is a function of man's immortal soul. God has given souls to people only so machines cannot think. Turing answers this by pointing out that it will definitely be in God's infinite power to give a soul to a machine much similar to how he gives soul to flesh and bone. The fact that humans create the machine does not matter because humans create children but God still gives them a soul. There are several more arguments to which Turing gives clever answers.
Due to his giant size Turing was able to see far in the future and predicted that in the year 2000 machines with 10^9 bits of memory (about 119MB) would fool 30% of the judges in a 5 minute Turing test. Considering how fast hardware evolves it is a very accurate prediction. Furthermore he predicted machine learning and that by the year 2000 the phrase "thinking machine" would not be considered an oxymoron.
While passing the Turing test is not a goal of modern AI research, the term has been extended in meaning in general speech so today a Turing test is any test designed to tell machines from humans. We all have seen the twisted numbers we are required to enter on some websites to prove we are human. They are called
CAPTCHA – Completely Automated Public Turing test to tell Computers and Humans Apart. I guess the
Voight-Kampff test in Blade Runner is a kind of Turing test as well.
In 1948 Turing began writing a program to play chess for a non-existing computer. In 1952 he played a game of chess where he simulated the program taking about half an hour per move against a colleague of his. The game was recorded and Turing lost. However the program won against the wife of another colleague. Women cannot play chess and white men cannot jump.
Turing also worked in the field of mathematical biology. I guess this is what evolved in today's hot science – bio-informatics. As if all these things do not make him remarkable enough Turing was an accomplished long-distance runner. He was able to run a marathon distance just for 10 minutes more than the world champion at the time. There are no limits to the giants.
However this is not your regular fairytale but more of an Andersen tale. There is rarely a happy end in real life. Remember when I told you that Turing was gay? In 1952 he had a sexual relationship with some small and insignificant dwarf who envied Turing's giant size. He helped burglars enter his house. Turing reported the crime to the police and in the course of the investigation admitted sexual relationship with the dwarf. At the time homosexuality was illegal in the UK and officially considered a mental sickness. He never admitted that he did something wrong because humans cannot judge giants and as a result was convicted. He was given a choice – either go to prison or be chemically castrated through a hormonal therapy. He chose the latter. As a result of the therapy his breasts started to grow. He was insulted by the disrespect people had shown and decided at the age of almost 42 it was time for him to leave this world of small people. Probably he had found the answer to life, the Universe and everything. On 7th of June 1954 he ate an apple treated with cyanide. The half eaten apple was found beside him. He was recreating a scene from his favourite movie
Snow White and the Seven Dwarfs. This is how the giant who did more for winning WW2 than a whole regiment of soldiers was practically killed by the ungrateful people he had helped.
Soon people discovered how great his heritage was and recognised his contributions. In 1966 the Association for Computing Machinery started giving the
Turing Award which is considered to be the Nobel Prize in computing science. There is a statue (not giant) of him in Manchester and the University of Manchester has an Alan Turing Institute. Many universities have honoured him by naming buildings, prizes, scholarships after him. There is also a
Turing programming language.