The First Programmer – Ada Lovelace
The first programmer was Ada Augusta (1815-1852), Countess of Lovelace. Dating back to the mid-1800s, she is credited with being the first to write instructions for the first computer program. Our field begins with her. Let’s meet Ada Augusta.In 1832, Ada met Charles Babbage, the inventor of a proposed mechanical computer called the Analytical Engine. Although his designs were far too advanced to build in their time, their work set the stage for today’s computer and computing. The Analytical Engine included concepts for integrated and stored memory, arithmetic processing (which today is known as the arithmetic logic unit or ALU), central processing, serial operations, and the input of both numbers and instructions including looping, branching, iteration, and more.
Ada began working with Babbage, translating and documenting his designs. She described how codes could be used to represent letters, symbols, and numbers. She theorized a process of looping and iteration. You can thank her for concepting a staple in WordPress: the Loop.
Ada is credited with publishing the first algorithm in 1843: the Bernoulli number algorithm. During a translation of memoirs, she provided a step-by-step description of how the Analytical Engine could compute the Numbers of Bernoulli.
What is an Algorithm?
An algorithm is a recipe; a sequence of steps which solves a problem. Algorithms are the cornerstone of computing. Imagine you need to compute the average number of comments based upon geographic location. How would you do this? You would list the steps in order along with some conditional checks to let you know if you are done. These steps are an algorithm as they tell you how to solve the problem of computing the average number of comments.
Baking a cake is another example of using an algorithm. Think about the recipe. Gather your ingredients. Add some measurement of flour. Combine the dry ingredients. Add x amount of butter and combine with three eggs. Beat the wet mixture for x amount of time until fully integrated (a little geek speak had to mix in here.) Bake for x amount of time. This recipe is an algorithm, as it tells you how to solve the problem of baking a cake.
You will learn much more about algorithms in Introduction to Computation and Programming.
What was the role of the programmer?
During the period spanning the early part of the twentieth century, programs were fed into a machine on a punch card. The machines then executed the tasks on these cards. Instructions were very basic. There was no stored memory from which to pull information or detailed instructions. Instead, the programmer painstakingly created simple tasks that were then transformed into punch cards.
The punch card approach begin in the late eighteenth century when Joseph Jacquard input tasks via a series of holes on a punch card and then fed those cards into a weaving loom. The loom was not a computing device. However, the process of tasks via holes on a punch card was born. His design allowed the machines to adapt and reconfigure specific threads and colors. Similar to Jacquard’s Loom, the Analytical Engine also included the punch card design for inputting tasks into the mechanical computing machine. In the latter part of the 1800’s, William Burroughs incorporated the punch card into his mechanical adding machine. Dr. Herman Hollerith added the functionality of recording information on the punch cards to capture census information. He then fed those cards into his machine to tally and sort the results, thereby revolutionizing the census process. Hollerith went on to form the company IBM.
During these pre-computing years, the role of the computation evolved from simple tasks on a punch card to the storing of information and then feeding the information into the mechanical device. We saw advancements in computational thought by Ada Lovelace and the beginning steps towards what would come in the Early Days of Software.
Don’t repeat yourself. Don’t repeat yourself. Don’t repeat yourself.
Total Lab Runtime: 01:07:56