The world's first programmer, a century before the computer age.
Explore the machines she worked on — and the algorithm she wrote.
10 December 1815 — 27 November 1852
↓ scroll to explore
Section 1
The Difference Engine
Charles Babbage designed the Difference Engine in 1822 to compute mathematical tables by the method of finite differences — subtracting away all the hard multiplication until only addition remains. Ada first met Babbage in 1833. Watch the gears turn and see how it builds a polynomial table step by step.
Polynomial: f(n) = An² + Bn + C
A = 1
B = 1
C = 0
Formula: f(n) = n² + n
Difference Table
n
f(n)
Δ¹
Δ²
How it works
The engine holds register values. Each step, it adds differences upward:
Δ² stays constant → added to Δ¹ → added to f(n). Pure addition, no multiplication needed — exactly what gears can do!
Section 2
The Analytical Engine
The Analytical Engine (1837) was Babbage's second, far more ambitious machine — the first design for a general-purpose computer. Ada translated Menabrea's memoir and added her famous Notes, nearly tripling the length. Click each component to learn what it does.
Click a component above
The Analytical Engine had three major parts working together. Click Card Reader, The Mill, or The Store to explore each one.
Punch Card Simulator
Babbage's engine used Jacquard-loom punch cards for instructions. Click cells to punch/un-punch holes.
Each column encodes an operation digit (0–9). The decoded value shows below.
Punch some holes to see the decoded value…
Section 3
Note G — The First Algorithm
In her 1843 "Note G," Ada described an algorithm to compute Bernoulli numbers on the Analytical Engine — the first published computer algorithm. She used variables (V₁, V₂…), loops, and conditionals — exactly how we program today. Step through it below.
Ada's algorithm initialises variables, then loops — computing each Bernoulli number from the previous ones. Press Step to walk through it.
What makes Note G historic?
LOOP
Ada used a conditional loop — the algorithm repeats until a stopping condition is met. First use of iteration in computing history.
VARIABLES
She named storage locations V₁…Vₙ, exactly analogous to variables in modern programming languages.
SUBROUTINE
Ada noted the engine could repeat a series of cards — the conceptual ancestor of subroutines and functions.
NOTATION
She invented symbolic notation for the engine's operations — a true programming language, 100 years early.
Section 4
The Engine Could Compose Music
Ada's most visionary leap: she saw that a machine moving symbols need not be limited to numbers. If the relations of pitches and harmony could be expressed as symbols, the Engine "might compose elaborate and scientific pieces of music of any degree of complexity." A century before synthesizers, she imagined the computer as a musical instrument. Here — let the engine actually play.
“Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony… were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.”
— Ada Lovelace, Note A, 1843
Audio starts on your click — nothing plays until you press a key or a melody.
Press G below to hear Ada's note — a clean 392 Hz.
Play the engine — one octave (C major)
Click a key, or use your keyboard row A S D F G H J K. The golden ★ G is the very note — 392 Hz.
Every sound here is generated live by your browser's Web Audio API — pure oscillators with a gentle attack/decay envelope, no audio files. It is, in a small way, exactly what Ada foresaw: a computing engine, turning symbols into music.
Section 5
Ada & Babbage — Timeline
A century before ENIAC, two visionaries sketched the blueprint for all computers.