Computer Scientist Edsger Dijkstra shaped his field from both an engineering and a theoretical perspective. Today, he is best known as the inventor of structured programming, a master of tongue-in-cheek commentary, and a former owner of a Volkswagen van dubbed “the Touring Machine.” Despite what he might have said about object oriented programming, Dijkstra is always a part of Flatiron School lectures.
Dijkstra is well known nowadays as the inventor of structured programming—in which programs flow from top to bottom following a hierarchical model. As the terminology implies, this invention has made code more structured, and, more specifically, clearer, faster, better organized, and higher quality.
That structured programming is one of Dijkstra’s central contributions makes sense given his advocacy for simplicity above all and his critical perspective on programming languages. This perspective is summed up nicely in a short, tongue-in-cheek essay called “How do we tell truths that might hurt?” that Dijkstra published in 1975.
The essay is centered on aphoristic “truths” about programming. Most of these “truths” are blunt and biting. For example, “The use of COBOL cripples the mind.” Apart from his harsher truths, one statement resonates in particular:
The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities.
Dijkstra saw the programming languages available in the 70’s as flawed. His work toward improving them was in service not only of faster programs, but also of a more rigorous, innovative approach to programming. As we interpret it: using inadequate tools is damaging not only to programs but also to a programmer’s ability to think of elegant solutions to complex problems—an overarching theme in Dijkstra’s work. As he once said:
“If 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, ‘Dijkstra would not have liked this,’ well that would be enough immortality for me.”
Read more Code History Lessons. Edsger Dijkstra art by Flatiron alum Mitch Boyer.
More specifically, she made it possible for computers to process words when she invented the first compiler—a set of instructions that translated symbolic mathematical code into machine language. Although a later version of her compiler was widely adopted, Hopper’s new technology was initially a hard sell. As she put it, “I had a running compiler and nobody would touch it… they carefully told me computers could only do arithmetic. They could not do programs”
A few years later, Hopper developed the FLOW-MATIC language. It was not only the first compiler-based language but also the first English-like processing language. It originated from Hopper’s belief that data-processing problems could be expressed in English keywords rather than numbers or machine code. Hopper and a team of experts later extended the FLOW-MATIC into COBOL (Common Business-Oriented Language)—a language that is still around and ubiquitous today.
2. She won the first Computer Sciences Man of the Year Award.
The Data Processing Management Association was likely better at data processing management than they were at naming awards. In 1969, Hopper was the first person (and the first woman) to win their Computer Sciences Man of the Year Award. The following year, she won another award for “her pioneering work and leadership… in the development and acceptance of English-language, problem-oriented programming” and for her work in educating and training people for careers in computer science.
3. She was the best Letterman guest ever.
4. She did not coin the term “bug.” She did catch an actual bug.
People often credit Hopper with coining the terms “debugging” and “bug” to describe a glitch in a computer program. This is actually not true—the term dates back at least to the 1800s when Thomas Edison used it. To her credit, Hopper did stop an actual bug from breaking a computer. When her team had to remove a moth from the Mark II Computer, they at the very least gave new meaning to the word “debugging.” Hopper saved the moth with a note, “first actual case of bug being found.”
Hopper didn’t coin “debugging,” but she might have come up with the popular saying, “it’s easier to ask for forgiveness than it is to ask for permission” when she started public speaking and lecturing on the early days of computing. Even if she didn’t, the saying still seems appropriate. She was one of the first women in the U.S. to get a PhD in mathematics in a time when computer programming had only just become possible. She may have had to ask for some forgiveness to make such an enormous impact on the military, education, and computer science.
Read more Code History Lessons. Grace Hopper art by Flatiron Instructor Mitch Boyer.
The quote above is from Alan Turing's essay, "Computing Machinery and Intelligence" (the one where he introduces the Turing Test). It might seem like an overarching statement about technology, but it's actually about building a theoretical basis for artificial intelligence back when AI was just fantasy.
As the "father" of theoretical computer science, Olympic-quality long-distance runner, extraordinary genius, and tragic hero, Turing (1912-1954) packed a lot into his 42 years. Because so much of we do wouldn't have been possible without him, he makes a regular appearance in programming lectures at Flatiron School. Here are three things you should know:
1. He helped make computer science a thing
He formalized concepts we use every day like, "algorithm" and "computation" with the Turing machine—a beautifully simple, totally hypothetical device that explores the possibilities of computation.
The Turing machine, or "universal computing machine," held its program on an infinite piece of tape and was capable of solving any algorithm. This set the groundwork for him (and others) to make the conceptual leap from impossible tape to using the computer's own memory to hold the program.
2. He dropped math "bombes" in World War II
After moving to Bletchley Park (a house where Britain kept its codebreakers during WWII that was as ugly as it sounds), he gathered fast intelligence for the British Army. Thanks to him, much of the content in coded messages sent by the German army were swiftly passed along to allied forces...and he didn't do it by just sitting there crunching numbers like an airplane passenger playing Sudoku.
The German military's cipher machine, appropriately named Enigma, was the source of the code. Turing initially developed and produced the prototype of the anti-Enigma "bombe"—an electro-mechanical device used to mechanize codebreaking that looked a lot like a backgammon board. The bombe cracked about two messages per minute (around 84,000 messages in total), including those used by the U-boats that threatened Britain's food supply. It's estimated that Bletchley Park's operation shortened the war in Europe by as many as two to four years. Read more about how Turing saved lives with math in WWII here and here.
3. He beat everyone to artificial intelligence
In the same decade Isaac Asimov's Three Laws of Robotics set rules for the thinking robots of science fiction, Turing founded the field of artificial intelligence and came up with a theoretical basis for it.
In 1950, he proposed a test to figure out whether or not machines could think, now widely known as the Turing test. It's kind of like reverse Captcha. And it implied that if we could write programs that were close enough to human cognition that they passed the Turing test, they wouldn't be programs anymore. They would be actual minds. At the time, this all seemed like Asimov fancy (probably even to Turing). And it's still not a very good way to actually determine whether or not a computer can think (although Eugene Goostman fooled a few folks). But it has inspired and challenged AI research from the start.
We get now that Turing's arrest and subsequent suicide were part of an enormously shameful chapter of recent history. His sexuality became public by a fluke—and because homosexuality was still considered a crime in Britain, he was arrested under the same law as Oscar Wilde 60 years before (along with about 75,000 other men throughout Britain's history). Although the world has recently showered him with accolades, it doesn't really erase the inhuman treatment he received in life. So here's a hard question: would the people who persecuted Turing pass his test?
In 1833, the cutting edge of computing looked something like this. This machine, called the Analytical Engine, was a mechanical computing device invented (but never actually built) by “the father of the computer” Charles Babbage. Had Babbage ever built the Engine, it would have been possible to “program” it to tabulate functions with punched, operational cards similar to the ones used in the 1940s to program some of the first modern computers.
Evidence of Lovelace’s role in computing history exists largely in correspondences with Babbage and in very thorough notes on a translation of a lecture on the Analytical Engine. In these annotations she was kind enough to include a description of an algorithm to calculate Bernoulli numbers. So, if the Analytical Engine was the first general-purpose computer, her notes were the first description of software, and she was the very first programmer.
2. She was the math-whiz daughter of a famous poet
Specifically, she was the only legitimate daughter of Lord Byron—original bad boy of poetry and owner of a very fine turban.
People often credit Lovelace’s numbers-heavy education to her mother’s objectively awful relationship with Byron. Actually, Lady Byron loved mathematics even before she was left with such a terrible impression of poets. She felt this supposedly opposite discipline would encourage mental stability and ward off wantonness. In retrospect, it seems like this wasn’t the most successful parenting strategy. Lovelace grew into a brilliant but incredibly complicated adult.
3. The U.S. Department of Defense named a programming language after her
The DoD developed a programming language called Ada (after Lovelace) in the 1970s. In 2014, Ada is not exactly a hot new trend in technology. It is, however, a reliable language still used by the military and in projects where safety is absolutely crucial, like air traffic control and transportation software. So remember to think of Ada Lovelace "the enchantress of numbers" while you are getting on the subway or enjoying a tiny bag of pretzels on a flight.
Though widely considered the world’s first programmer, Lovelace’s contribution hasn’t been the most celebrated or well understood—and it certainly doesn’t seem like much when it’s described as notes on a translation of Babbage’s lecture. Just think of it this way: in a moment where computers are omnipresent, it’s easy to take for granted how impossible it must have been not only to understand the Analytical Engine but to imagine its possibility.