Ada Lovelace: Computer Whisperer

Writing algorithms for amazing analytical engines.

Portrait of Ada Lovelace
Ada Lovelace portrait by @s_c_r_u_b_y

The world’s first computer programmer wrote code for machines that didn’t even exist yet! Her name was Ada Lovelace, and in 1842 she designed what would later be known as the very first computer program, a hundred years before digital computers would be invented. Her work on early computing machines, precursors to the modern computers you’re using right now, pioneered the kind of logic that programmers still use today.

"Ada Lovelace’s pioneering vision paved the way for making a space for women in computer science before computer scientists even existed."

Watch the video or continue reading the transcript below!

 

Flights of Fancy


Ada was born in London, England in 1815. She was raised by her mother, Annabella Byron, who was also a mathematician. Her father was romantic poet Lord Byron, though Ada never met him as he left the family when Ada was just four months old. Her mother didn’t want her to become too imaginative and flighty like her poet father, so her education was largely focused on mathematics and other subjects that were seen as “un-poetic” at the time, such as music and French.

Portrait of Lady Byron
Lady Byron



Portrait of Lord Byron
Lord Byron

Even so, Ada did inherit some imaginative spirit from her father, but she channeled it into thinking about science and fantastical inventions, instead of literature. When she was just 13, she designed a flying machine based on studies of the anatomy of birds. She even wrote a book, which she called Flyology, which detailed the results of her experiments, though she was never able to fully get her invention off the ground.

 

Seeing the Difference

Picture of Charles Babbage
Charles Babbage

Women in the early nineteenth century rarely studied math and science, and scientists of the era were nearly all upper-class men. One such scholar was named Charles Babbage, who Ada met when she was 17. He was a math professor at the University of Cambridge who was working on a design for an invention he called the “Difference Engine.”


The Difference Engine was basically an early version of a modern calculator. It was designed to use repeated addition to compute complex polynomial functions using something called the method of differences. But instead of the electronics that modern calculators use, it would have operated using a mechanical crank that turned a huge set of metal wheels. Each wheel represented a decimal digit of a number from 0 to 9, so that a set of 20 wheels represented one 20 digit number. When one wheel turned from 9 to 0, it caused the next wheel to turn as well, automatically “carrying” the digit.

Gif of gears representing digits
Here's an example of how each gear of the gear-powered computer represents a digit in a large number.





While this seems like a very complicated way to do calculations, the Difference Engine was actually super advanced for its time. It could perform lots of calculations, temporarily store data for later use, and even print its output. And while it was definitely limited to only one type of calculation, this automatic method was way easier than doing these complex calculations by hand!





 

Steam-powered Computers


When Ada Lovelace learned about Babbage’s Difference Engine, she was hooked. With her creativity and imagination, she was able to imagine the computer-driven future that Babbage proposed. Unfortunately, the Difference Engine was never actually built due to engineering challenges. But the pair soon moved on to designing a new invention!


This one was called the “Analytical Engine.” Similar to the Difference Engine, the Analytical Engine was designed to operate using a set of metal wheels that each represented a digit of a number. The Analytical Engine was huge, designed to have hundreds of columns of gears that could each represent a 40 digit number. Because of its size, it would have to be powered by a steam engine instead of a mechanical crank, since the complex network of gears would be too much for someone to turn on their own.

Photo of Analytical Engine
An early gear-powered computer that Ada Lovelace programmed, called the Analytical Engine.

But the biggest difference of the Analytical Engine is that it was designed to be programmable. This means that it could perform many different types of calculations. To send instructions to the machine for what calculation it was supposed to do, Babbage and Lovelace imagined a way to talk to the computing machine using cards with patterns of holes punched in them.


The holes would be in precise locations on the cards that aligned with levers in the machine and caused specific wheels to turn. The patterns of holes could be designed for many different types of calculations, and multiple cards could be strung together for longer calculations. While this sounds a little silly, cards with punched holes were actually used all the way until around the 1980s for programming modern computers and storing data, so it was actually a really clever idea!

Image of punch card
Punch cards like this have been used for computer programming to communication with the machines.
 

The First Computer Program


In 1842, Ada Lovelace was tasked with translating an article about Babbage’s machine from French to English. But Lovelace did more than just transcribe Babbage’s work; she also included her own original research. The notes, details, and explanations that Ada added to the paper were twice as long as the original text. They contained detailed explanations of the machine’s operation as well as instructions on how to program it to perform a huge variety of calculations.

Image of Ada Lovelace's notes on the Analytical Engine
Ada Lovelace's algorithm to perform complex calculations with an early computer.

These instructions are the reason why Ada is often considered to be the first computer programmer. She wrote precise sequences of punched cards that could be used to instruct the Analytical Engine to perform specific calculations, and even described her work as learning a new language. This is exactly what modern computer programmers do– they communicate with computers through coding languages. But now instead of using punched cards like the Analytical Engine, modern computers can understand written code.

 

Pioneering Vision


Tragically, Ada died only nine years after her translation was published, at the age of 36. What’s more, Charles Babbage was never able to complete construction of the Analytical Engine, so Ada’s code was never implemented.

Portrait of Ada Lovelace
Thanks to Ada Lovelace for helping us learn how to talk to our amazing computing machines!

But the story is not all sad. We now live in a world completely dependent on the remarkable machines that Ada Lovelace helped us understand. And even before the construction of the first computer, Lovelace was able to recognize computer science as an important field in its own right, separate from math or engineering. Her vast imagination allowed her to see the potential for computation nearly 100 years before the first computer was even built.


Ada Lovelace’s pioneering vision paved the way for making a space for women in computer science before computer scientists even existed. So the next time you power up your laptop or your phone, I hope you take a minute to think about the young woman who helped us figure out how to talk to these amazing machines.


Credits:

Photos courtesy of Wikimedia Commons and Getty Images

Written by Ashley Cavanagh

Edited by Caroline Martin

Illustrations by Ashley Cavanagh

Portrait by IG: @s_c_r_u_b_y


Sources and additional readings:

Ada Lovelace, the First Tech Visionary from The New Yorker

Analyst, Metaphysician, and Founder of Scientific Computing from UC San Diego Supercomputer Center

What a Difference the Difference Engine Made: From Charles Babbage’s Calculator Emerged Today’s Computer from Smithsonian Magazine

The Engines by the Computer History Museum

The Analytical Engine: The Greatest Mechanical Computer Never Built from Interesting Engineering


 

Dive into the wide world of computer programming!


Build (30-45 minutes): Inspired by Ada Lovelace’s Analytical Engine, make your own system of interconnecting gears from things around the kitchen, and figure out how moving one will affect the others.


Code (1-2 hours): Explore the computer projects coded by other kids, or learn how to program your own game or animation with this free coding language for beginners.


Create (15-30 minutes): Modern computers store information in bits, which use binary, a different way to represent numbers and letters. Create your own beautiful, binary bracelet with a secret message written in the language of computers!