Ada Lovelace, née Augusta Ada Byron, was born #OTD in 1815. A mathematician and the first published computer programmer, she offered a prescient vision of what computing would become. Portrait: Margaret Sarah Carpenter (1836)
Her mother, worried that Lord Byron's poetic temperament might be familial, insisted that Ada be tutored in math, science, and logic. Those things, she reasoned, might counter Ada’s volatile inheritance.
Ada was tutored by the renowned mathematician and astronomer Mary Sommerville, “the Queen of Nineteenth Century Science,” who was nominated for membership in the Royal Astronomical Society at the same time as Caroline Herschel.
Somerville introduced Ada to Charles Babbage, the Lucasian Professor at Cambridge, in 1833.
Babbage demonstrated part of his new Difference Engine for the young Ada, and she was fascinated. Their long correspondence would eventually become full-fledged collaboration.
The next year, Babbage drew up plans for his new "Analytical Engine." But the Difference Engine itself wasn't complete, and Parliament was not inclined to support a second project with the first yet unfinished.
Still, Babbage’s plans generated interest among mathematicians.
Italian mathematician Louis Menebrea published a treatise on the Analytical Engine in 1842, but he wrote it in French. Babbage asked Lovelace to prepare a translation and expand on Menebrea's article. After all, she understood the Engine as well as anyone.
The article Ada produced was nearly four times as long as Menebrea's original, with a voluminous "Notes" section full of wildly original ideas that foresaw much of modern computing. When it was published in September 1843 she was only 27 years old.
Babbage had sketched out routines for the Engine before, some recorded in his notes. And Menebrea had previously published what Lovelace called "diagrams of development" for simple routines involving the successive application of elementary operations.
In Note G, Lovelace gives a complete description of a routine for calculating Bernoulli Numbers. Unlike Menebrea's simple routines, the instructions she lays out involve loops and branching.
@mcnees It was Charles Wheatstone, not Babbage, who suggested that she translate the Menebrea memoire, when she expressed a desire to emulate Somerville as a translator
Her table, included in the previous post, provides "a complete simultaneous view of all the successive changes" in the components of the engine.
It is probably not right to call that a "computer program," if you mean instructions prepared for the machine. That would have been something like punch cards that controlled the behavior of the engine's mechanical components.
It's more like a step-by-step log of the program as it runs, detailing the inputs and outputs at each step of the routine.
It isn't quite clear how much of this routine was devised (as opposed to described) by Lovelace. It seems like Babbage had significant input.
In Babbage's memoir, he states that Lovelace did the work that went into the Notes sections. The exception, he says, was "algebraic working out... relating to the numbers of Bernoulli number."
However, he also says "This she sent back to me for an amendment, having detected a grave mistake which I had made in the process."
I do not know if "algebraic working out" refers to the algebra appearing in the text of the note, or the details of the routine. In any case, in Babbage's memoir he recalls the Notes as largely Lovelace's work.
The content of these Notes, each one signed "A.A.L.", is why many people refer to Lovelace as the "first computer programmer."
Whether or not you agree with that appellation, the contents of the Notes bear more resemblance to modern notions of programming than what appeared previously.
One argument for referring to Lovelace as the "first computer programmer" is that the routine presented in Note G has an important feature in common with just about every subsequent computer program: a bug.
Operation 4 is listed in the manuscript as the division ²V₅ / ²V₄. It should have read ²V₄ / ²V₅.
However, this was likely a typo during typesetting rather than a bug in the original code. Still, a familiar problem for anyone who every typed code from a magazine into a computer.
Besides Note G, and perhaps of equal importance, Ada imagined how the Analytical Engine might act on abstract mathematical symbols or other non-numerical systems that follow mathematical rules.
In Note A she describes the germinal idea that modern symbolic computation systems began to realize well over 100 years later.
@mcnees Babbage demonstrated several programs for the Analytical Engine during the conference in Turin on which the Menebea Memoire is based so Lovelace is in absolutely no way the “first computer programmer”
Like I said: There are varying opinions about Lovelace's precise role in the development of routines for the Engine.
Babbage wrote and demonstrated instructions for his machine. Likewise, he envisioned applications beyond simple numerical calculations. Should Lovelace's writing in the Notes be viewed as expansions on those existing ideas? Are the routines she presented the work of a collaborator, or that of a protege based on guidance from a mentor?
But independent of the answers to those questions, I think one must recognize the presentation in the Notes as groundbreaking. Indeed, Babbage himself praised Lovelace's work. Her Note G is undeniably a foundational moment in the history of programming.