The surprising thing about Ada was her determination to learn mathematics to the point where she could make some contribution to the subject. She asked Babbage for help in finding an advanced tutor and eventually De Morgan, Professor of Mathematics at London University served the purpose. You might remember De Morgan's laws if you have ever had to study Boolean logic so presumably Ada had to suffer the same course that trainee programmers have had to put up with ever since!
Ada seems to have achieved a fair level of competence with mathematics, probably best described as a gifted amateur but she certainly had talent. She understood advanced algebra, geometry and, most importantly for the study of the difference engine, the theory of finite differences.
At this stage it is clear that she intended to study areas of mathematics relevant to the computing engines that Babbage was working on. Her passion for the analytical engine grew as she learned more and more about it. She attended a course of lectures on it and eventually came to understand its working better than Babbage.
This isn't as strange an occurrence as it might sound because it is often the case that someone learning the structure of a machine will ask more questions about its operation than the inventor has thought to ask. She made her first contribution to the furtherment of the machine by translating a paper (in French) by the Italian engineer Menabrea, "Sketch of the Analytical engine invented by Charles Babbage Esq".
Babbage asked why she didn't write it herself as she certainly knew enough not to have need to translate something. In fact the translated paper was far less important than the copious notes that she wrote following it - the notes were three times longer than the original paper.
The annotations clearly demonstrate that she had made the leap of imagination necessary to see that the program, the software, was as important as the machine. The machine is merely the vehicle for the idea embodied in the program. She gives details of how to program the calculation of the Bernoulli numbers and how the machine can be made to do much more. She wrote:
"The Analytical engine weaves algebraical patterns just as the Jacquard loom weaves flowers and leaves".
(The Jacquard loom use punch cards to control the weaving.)
Forseeing the future
As well as the down-to-earth stuff of computing the Bernoulli numbers, Ada also took her turn in speculating just how far the computer would one day go. Indeed she is credited with the first use of the argument that is often referred to as "Lady Lovelace's objection". She wrote:
"The Analytical Engine has no pretensions whatever to ordinate anything. It can do whatever we know how to order it to perform".
This is basically an argument about the impossibility of artificial intelligence and computers only being able to do what they are told. A discussion of this would take us into deep water but it isn't as clear cut as Ada would have us believe. Ada and Babbage may actually have had the key to a large part of AI in their heads because they invented the notion of self modification -
"the Analytical engine may act on things other than number".
It might just be that they were both very well aware of the prospect of mechanical intelligence but were worried about upsetting the religious establishment in the way that Darwin did with the Origin of Species. There may even have been a connection between Mary Shelly's writing of the Frankenstein story and Ada. However, as well as recognising Ada as the first person to publish computer programs, we can also credit her with being the first person to appreciate the potential of the computer.
Music and programming
One of the skills that Ada had that may have helped understand programming was music. She played the harp and so was familiar with the idea of a written set of instructions, i.e. musical notation, that could be executed, i.e. played.
She also composed music and this is not only a mathematical exercise but one that is very close to the psychological mechanism needed to program. Later she suggested that the Analytical engine could be used to compose music, so giving us the first glimpse of a program generating new software.
Ada supported Babbage through his long and difficult struggle with the authorities to build the Analytical Engine. When most had written him and his invention off as a huge waste of money Ada carried on making notes, refining the design and lobbying support among her influential friends.
A strange twist in the story will endear her even more to all true programmers - she invented a "system" for betting on horses. Babbage went along with the idea and they both seem to have thought the Analytical engine would help them with the necessary sums. Just like modern programmer suffering the same delusion, Ada lost a great deal of money, suffered at the hands of a blackmailer and eventually had to pawn some of the family jewels to put things to rights.
The final chapter in Ada's story is also strange.
She died at the early age of 36 after spending much of her life in the grip of illness of one kind or another. It may be fairer to say that she was in the grip of medication given the type of treatment she was prescribed. It may even be that her rather conceited over-confidence was due to the laudanum (opium) and brandy she was so often prescribed!
After Ada's death Babbage carried on trying to complete the Analytical engine but we all know that he was unsuccessful in his attempt. To add insult to injury, Ada's notes on the machine were read by others and in 1834 Georg Scheutz, a Swedish engineer, built a difference engine and actually sold a production model! Ada's publicity for Babbage's ideas didn't always have the desired effect.
Ada's children were also mathematically inclined and carried on the family tradition, on the female side, of a passion for science. For this reason it is particularly fitting that Ada Lovelace was chosen for the campaign, ongoing on the Finding Ada website, to raise awareness of the achievements of women in science, technology, engineering and maths that means that Ada Lovelace Day is celebrated around the world.
The US Department of Defense naming of its huge and powerful language Ada after Ada Countess of Lovelace is also a fitting tribute.
Claude Shannon is a little-known character in the history of computing. Even those people who do know Shannon's name think of him as nothing but a theoretician - the inventor of something obscure call [ ... ]
Edsger Dijkstra was one of the first people to worry about what a program should be and he elevated the act of programming to both an art and a science. If you only know one Dijkstra quote it should b [ ... ]