In between our programming lessons, we will be covering the history of computer science, starting from its very beginnings and working our way forward. In this case, we're going back to the 1830s and '40s, and one Augusta Ada King-Noel, Countess of Lovelace, daughter of George, Lord Byron. We know her better nowadays as simply Ada Lovelace.
[Alfred Edward Chalon, Portrait of Ada Lovelace in Watercolor, 1840]
During this time, the term "computer" referred to someone who made computations, that is, someone hired to take numbers and perform arithmetic on them to solve mathematical problems. Most of the operations were simple, like addition, subtraction, multiplication and division, but they could solve quite complicated problems if done correctly.
Charles Babbage was famous for his design for a Difference Engine, the world's first mechanical computer. He made many prototypes of it and of later machines, often dismantling them to make a new one with a better design. Some time around 1833, Lovelace met Babbage, and after some time talking together, Babbage invited Lovelace to see one of his prototypes. She was fascinated with it, and became fast friends with Babbage, visiting often in the following years.
Her study eventually led her to write notes on the brand new study of computer science (so new that it wouldn't have a name for over a hundred years). She wrote a fair sized amount of material on the subject, with one section being particularly famous from its publication alongside her translation of an Italian article by Luigi Menabrea, "Sketch of the analytical engine invented by Charles Babbage, Esq.", published in 1842. She labeled her notes in order from A to G, and published them alongside her English translation of Menabrea's work.
[Bruno Barral, Photograph of Analytical Engine of Charles Babbage, exhibit at London Science Museum, May 2009]
In these notes, she write at length about the possibilities of a mechanical computer like Babbage's (the current one being named the Analytical Engine), including how it could handle general symbols rather than just numbers, and before it would ever be called "programming," she also published the first program ever, designed for that computer. This program, written and diagrammed in her Note G, computed the Bernoulli numbers. These likely won't be of much interest to the reader, but they are of great importance to mathematicians, so they made a good example for the purpose of the book.
While certainly not the first computer program ever made, and definitely not the first she wrote, this is the first program ever published. Thus, while Babbage is credited with the first mechanical computer, Ada Lovelace is credited with founding the practice of programming.
It's notable that she wrote her programs, including the one in Note G, without any physical computer to test them on. She, Babbage, and others of the day worked out the theory of mechanical computation on paper. While Babbage would never construct one of his Analytical Engines or his other mechanical computers and reveal them to the world in working order, we at least know one of the designs works. The Difference Engine has been constructed multiple times, first being the Difference Engine No. 2 constructed by the Science Museum in London, completed in 1991.
Images sourced from Wikimedia Commons.
Biography.com Editors, Ada Lovelace Biography.com, A&E Television Networks (March 20, 2017), Retrieved from http://www.biography.com/people/ada-lovelace-20825323 on May 19, 2017.
L. F. Menabrea of Turin, Ada Augusta Countess of Lovelace, Sketch of The Analytical Engine Invented by Charles Babbage, Bibliothèque Universelle de Genève, October, 1842, No. 82, Retrieved from https://www.fourmilab.ch/babbage/sketch.html on May 19, 2017.
After reading the above history (or reviewing again now), ask yourself the following questions about what you read, and make sure you know how to answer correctly.
What was Charles Babbage's important invention?
What was Babbage's first such device?
To what did the word "computer" typically refer in the early 19th century?
What was Ada Lovelace's primary contribution to computer science?
In which of Ada's translation notes on "Sketch of the analytical engine invented by Charles Babbage, Esq." did her computer instructions appear?
What did those instructions calculate?
When was a complete Difference Engine first constructed?
How did Ada test her programs?