Page 2 of 2
So Samuel sat down and started to write a program safe in the knowledge that it had all be done before - only it hadn't. Shannon had just talked about it all in the most general of terms and hadn't got anywhere near a computer. Samuel's idea was partly motivated by the fact that the world championships was to be held in a neighbouring town. The idea was presumably that they would produce a computer that would win.
Samuel made a trip to Chicago to talk to Shannon where he discovered the terrible truth. Undaunted, he decided that Checkers had been a good choice after all and set about the programming:
"I started writing a program for a machine that did not exist, using a set of computer instructions that I dreamed up as they were needed."
He soon realised that the small demonstration machine was going to be as complex as the real thing and running out of money was inevitable. At the start of 1949 his unhappiness at having to run a valve laboratory he had no interest in and not being able to pursue computers drove him to seek a new job at a better salary. By the spring of 1949 he moved to IBM at Ploughkeepsie with a one-year engineering contract at $20,000 per annum. Samuel commented that this was four times his salary at Bell and "moving around seems to pay".
His work with IBM seems to have been very strange. He was assigned to work with the team producing what was to be the IBM 701 - a fairly large machine - but he seems to have spent most of his time as a roving consultant giving advice where and when it was needed. He was eventually put in charge of a pure research effort after persuading the Watsons that IBM needed to do pure research and not just product development.
Even though he had tried to get away from valves much of the work that he did at this time still centred on valves. He was asked to look into the valve manufacturing plant that IBM had set up and to improve the performance of the Williams CRT storage tube. Eventually, though, he did manage to move over to more general computing problems. One day he found himself talking with Nathaniel Rochester, one of the chief designers of the 701, about the word size that should be used - 32 or 36 bits. He started to ask himself which would be better for his checkers playing program and, to find out, he started to write it again but using the instruction set of the unfinished 701.
Samuel was the first person to do any serious programming on the 701 and as such had no system utilities to call on. In particular he had no assembler
and had to write everything using the op codes and addresses. This made the task even more difficult than you might judge it from today's point of view but remember Checkers was also the first Artificial Intelligence (AI) program. He became obsessed with the problem.
"I became so intrigued with this general problem of writing a program that would appear to exhibit intelligence that it was to occupy my thoughts during almost every free moment for the entire duration of my employment by IBM and indeed for some years beyond."
Eventually the 701 was built and it incorporated some changes to the instruction set suggested by Samuel as the result of his work. Being the first really large non-numerical program it influenced the instruction set of all subsequent IBM machines. But he was frightened that the machine might never be completed or that it might be radically changed and so he wrote the checkers program as a set of small self-contained modules loaded by a central module - a sort of primitive operating system. He got it all to run on the first experimental model of the 701.
The IBM 701 - the machine that ran the first checkers program.
Later when the machine was in production he wrote a disassembler to convert his code to assembler rather than have to start from scratch. The disassembler became quite a popular system tool! He also invented the technique of hash coding for storage which John Backus used in the first Fortran compiler.
The checkers program was developed over the years. The first running version was completed for the 701 in 1954 but it wasn't until 1955 that Samuel managed to implement a really effective learning scheme. The following year he appeared on TV with it where they pitted an expert against a 701.
He got computer time to develop the checkers program by using it to test the next generation of IBM's machines, the 704, as they left the production line:
"It wasn't until the 704 was developed that I got a lot of machine time. There were lots of machines on the factory floor ... and from midnight to the next morning they just sat there not being used. They let me go in and start my checkers program that I had fixed so that it would run continuously. I had as many as four machines working through the night playing checkers with themselves and accumulating statistics on their different playing schemes. This went on for several months, and they were glad to do it for it was a good way to test the machines"
Despite the TV appearance the whole thing was very low key and he published nothing on his amazing program until 1959. The reason was that IBM did not want to stir up trouble with the unions over the idea that the "electronic brain" might be just around the corner - with the consequent loss of jobs. He eventually persuaded IBM to start the IBM Journal of Research and Development and later published the first academic account of machine learning, "Some Studies of Machine Learning Using the Game of Checkers".
In 1966 he retired from IBM but he wasn't ready to give up work. He went to Stanford University as a research associate and then professor. The work that he did carried on his interests in AI. He worked on speech recognition using Fourier transforms and, of course, on his checker program. It became so good that it could beat all comers - until some one invented a better computer program that beat it.
At this point he gave up his work developing it but not programming in general He seems to have done a remarkable amount of actual programming for someone at so late a stage in their career! He worked on a Pascal version of TeX with Donald Knuth and wrote a text editor and worked on the SAIL operating system. He also wrote a number of introductory texts on computing and on TeX.
He even got into video games! A company called Video Brain wanted to build a $500 games machine and Samuel was to provide the checkers program for it. He packed the game down from 40K to only 4K. Then he wrote an even better game of Othello. By the time he was working on his third game Atari had the market to itself and Video Brain gave up on games machines. He was approached by Atari and by Apple to convert his games but he turned them both down.
Programming must have been a passion for Samuel as much as his checkers program. He programmed long after age forced him to give up research. He last logged on to the Stanford computer on February 2, 1990 and his home computer was used until he died in July of that year.