Curiosity often breeds innovation, which was precisely the case with Grace Murray Hopper. As a child, she would often dismantle household electronics to see how they worked—a habit that forced her mother to limit Grace to taking apart just one alarm clock. Her interest in machines and how they functioned served her well as she applied her knowledge of mathematics and physics to develop the first computers, and then to advance computer programming.

Hopper is often claimed to have coined the phrase “debugging” to refer to identifying issues in computer code.

A programmer is born

Hopper transitioned from dismantling household electronics to dismantling complex equations and theories. She chose to study mathematics and physics at Vassar College, and eventually obtained her masters and PhD in mathematics from Yale University. During her PhD, she did double-duty as a student and professor, teaching math at Vassar College during much of her PhD. She would remain on as a professor of mathematics there for over ten years.

Her transition from mathematician to programmer in 1944 was made possible through military service in the Navy Reserves. Hopper first attempted to enroll in the Navy during World War II. However, at the age of 34, standing at 5’6” and only 105 pounds, in 1940 she was considered too old and too small for active military duty—and her role as a professor of mathematics was also deemed too important to the war effort for her to leave. But Hopper was determined to serve her country, and four years later—after successfully obtaining a leave of absence as a professor and special exemption from the weight requirement, she enlisted in the Navy Reserve.

It's likely that without her fierce desire to join the military, Hopper would have remained as a professor of mathematics, and not had the opportunity to work on computers.

Hopper’s first assignment placed her at Harvard, where she began work on the first Mark I computer for the Bureau of Ships Computation Project. The excitement (and no doubt challenge) of programming the world’s first computers led Hopper to turn down a full professorship from Vassar to remain working at Harvard and their Computation Lab. This decision established her incredible career trajectory.

“Debugging”

U.S. Naval Historical Center via Wikimedia Commons.

In 1947, as Hopper was working on the Mark II computer at Harvard, her team discovered a moth stuck in a relay, a type of electric switch. This impeded the operation of the relay, and therefore the function of the computer itself. The remains of the moth can still be seen in the team’s log at the Smithsonian. Hopper is often claimed to have coined the phrase “debugging” to refer to identifying issues in computer code. While it's a charming story, the phrase “debugging” was not used in any of the team's usage logs, and in fact, “bug” had already been in use in the engineering field for quite some time. However, it is technically true that with the moth, Hopper found the first "computer bug."

Teaching computers English

Hopper was dedicated to computer programming, and was determined to make computers easier to use. As anyone who has dabbled in computer programming can tell you, it can be hard to learn the correct commands. With the early computers Hopper was working with, it was even trickier—commands were structured as complex symbols and numbers, and even simple programming required extraordinary technical knowledge. One of Hopper’s most notable accomplishments was to aid the transition of programming to something more people-friendly, through the creation of the first compiler. She also developed the first coding language, which she based primarily on English words.

“It’s much easier for people to write an English statement than it is to use symbols. So I decided data processors ought to be able to write their programs in English, and the computers would translate them into machine code.”

Initially, her idea to incorporate English into programming was criticized. Many people pointed out the obvious—computers can’t understand English. However, Hopper was adamant, stating, “It’s much easier for people to write an English statement than it is to use symbols. So I decided data processors ought to be able to write their programs in English, and the computers would translate them into machine code.”

To do so, Hopper invented the first compiler, a program that translates computer code from one programming language to another. Often, this involves taking a high-level language—for example, using English words and phrases as a set of instructions—and then translates those to a low-level computing program, one rich in symbols and numbers, that a computer can understand. Having a compiler allows computers to “understand” English, and helps programmers more easily communicate with the machines they build. Hopper hoped that programming languages that relied on English would help the average user be able to access them.

Matteo Farinella

It's a simple idea, but a revolutionary one, and eventually would lead to the creation of many programming languages—user-friendly inputs that can be translated by the computer to machine-friendly outputs. Hopper herself was responsible for one main language, known as COBOL (Common Business-Oriented Language), earning her the nickname “Grandma COBOL.” The program was developed in 1959, mainly for business and administrative systems to organize large information sets, and still remains the most ubiquitous programming language used in business (though now it’s mainly used to maintain older systems). COBOL's widespread use can likely be attributed to the fact that Hopper developed and validated the COBOL software and its compiler counterpart for the entire Navy during her tenure as director of the Navy Programming Languages Group.

Hopper's influence and stature in the Navy was highly praised—she left Navy service with the rank of Rear Admiral, at a time when few women achieved such a high status. Her career in the Navy Reserves spanned more than 42 years, although she never was allowed into the full Navy. She eventually became the oldest active-duty commissioned officer in the US Navy when she was 79 years, eight months, and five days.

“Amazing Grace”

Even though her official teaching career ended in 1943, Hopper was in demand as a speaker and consultant throughout her life. She was energetic and engaging, and fondly remembered for one particular demonstration, involving wires to simulate nanoseconds and data processing. As she so frequently was asked, “Why does satellite communication take so long?” Grace used a spool of wire to show how far light could travel in one nanosecond, and to explained how long data takes to reach a satellite (spoiler—it’s a long time), which was why initially Internet speeds were so slow. Luckily for us, we've graduated from using dial-up and old copper phone lines to fancy fiber optic cables dedicated solely to Internet services, which can transmit our digital data faster. Today, Hopper would have to update her demonstration for the modern age.

Hopper's ideology and founding principles shaped computer science as we know it today. She was truly amazing.

Hopper’s life successfully intertwined both military service and academic prowess, with that dash of chance that discoveries often carry. It's likely that without her fierce desire to join the military, Hopper would have remained as a professor of mathematics, and not had the opportunity to work on computers. Given her natural curiosity, this would have no doubt still led to important innovations, but her contributions to programming would have been missed. Hopper's abundance of accomplishments earned her the nickname “Amazing Grace,” along with many awards (including a post-humous Presidential Medal Freedom from Barack Obama). She was a pioneering woman in the field of computer programming and the Navy Reserves—both areas notoriously dominated by men. But Hopper's ideology and founding principles shaped computer science as we know it today. She was truly amazing.