Algorithms 1: Intro to Algorithms
< Back to Building BlockWhen most people hear the word algorithm they think “Big, scary equation that only Math PhDs can understand.” This is not how algorithms should be perceived! We use algorithms every day in our lives and in the classes you teach, in any school subject!
An algorithm can be defined as a sequence of well-defined, precise steps for solving a problem.
An algorithm must terminate (come to an end) to produce an answer or final outcome. For instance, the image above is a popular example of an algorithm used in everyday life, a recipe. All recipes are algorithms since they use a sequence of precise steps that eventually terminate to produce a final outcome (a meal).
When creating an algorithm, we must consider how to ensure anyone (or as many people as possible) could reach the solution by following the steps provided. For example, the recipe above using a minimal amount of words and simple graphics to clearly define the problem, space, and constraints for which this algorithm will apply.
Reflection
Besides a recipe, list at least two examples of an algorithm in your daily life or used in your instruction with students.
In daily life, we use algorithms to describe solutions to problems and we use them to accomplish tasks. Some problems only have one possible algorithm to solve a problem such as “Subtract a number from 5 to make it 4”. However, most problems we aim to solve in the real world have multiple algorithms that can act as a solution to the problem. An example of this is directions to get from one place to another.
A computer application will execute (run or carry out a command) a program. In many ways, a program can be considered an algorithm designed for a computer to follow. In a program, the steps of an algorithm are implemented in a programming language. Algorithms and their implementations as a program need to not only terminate but produce the intended result.
In the previous steps, it was stated that the creator of an algorithm has the power to define the problem space and constraints of their algorithm. Although the goal should be to make your algorithm or program something everyone can use and understand, some fall short of this goal. Whether intentionally or unintentionally the creator of the algorithm can embed their values and biases. This systematic and repeatable computer system that creates unfair outcomes, such as privileging one arbitrary group of users over others is referred to as Algorithm Bias.
There are many unfortunate examples of algorithm bias in software today leading to inequity. This is true for individuals creating their own algorithms and for some of the largest tech companies in the world. Recognizing and making efforts to avoid algorithm bias early on is the only way to make attempts for a more equitable world with technology.
In math classes, algorithms help students learn to multiply and divide, to find the greatest common divisor (GCD), and to solve a system of linear equations. When students are prompted with a math problem, they can discover that they are using an algorithm that solves the problem they are currently working on while someone else can point out that they followed the same steps to solve a different math problem.
For students in science classes, the most common algorithms that they encounter are those based on the scientific method and the procedures that they develop to conduct an experiment. At the abstract level, experiments involve a pattern of making conjectures, deriving predictions from those conjectures, and then testing those conjectures in an experimental process. More specifically, the experimental process can involve a series of steps that are recorded so that the experiment is replicable using the algorithm.
Algorithms in ELA focus on using a sequence of logical, precise, repeatable steps to solve problems. Algorithms are useful for identifying, sorting, and categorizing objects.
In ELA, these objects may relate to grammar, genre, or plot devices. By using algorithms to identify and sort, algorithms can also help draw attention to issues that might need to be fixed (incorrect tense or passive voice) or might need to be enhanced (lack of details in a story or citations in a research paper).
Evaluating existing algorithms is also essential for current writers. Understanding how search engines present results or how social media prioritizes posts provide critical information for research and publication. Finally, readers and writers may also create algorithms to analyze literature or to create original works.
Using algorithms in social studies focuses on identifying, sorting, and categorizing geographical, social, and historical phenomena in order to analyze these phenomena from a variety of perspectives. Algorithms may also be used in social studies to create an app, program, or routine that illustrates a geographical, social, or historical concept or process.
Geographers would use algorithms to determine how to map a region accurately. Different geographers might use different algorithms to accomplish the same task. For instance, there are several different types of map projections (Mercator, Lambert cylindrical equal-area, orthographic), each uses its own algorithm.
Archeologists use algorithms to record and analyze historical sites. This might involve making a grid of an area and carefully recording what is found in each square at each depth. Computational algorithms assist archeologists with determining how fragments of artifacts might fit together and can even project what the missing pieces might look like.
Many historical research projects now use crowd-sourcing to assist with the analysis of historical documents. Amateur researchers can transcribe or analyze historical documents, a computer algorithm sorts, categorizes, and analyzes the responses of all the submissions and finds commonalities and anomalies. Trained researchers use the results of these algorithms to make decisions about the historical documents and their significance.
The use of algorithms in the Arts focuses on using a sequence of logical, precise, repeatable steps to create or analyze art. Artists might use algorithms to understand the steps one needs to follow in order to create certain artistic works. For instance, the steps to creating a ceramic bowl would form an algorithm.
Artists use algorithms to design the most efficient, productive, or safe set of steps to create certain artistic works. For instance, think about how an artist manages materials. The steps to creating a ceramic bowl, a cast sculpture, or how long to let an oil painting dry are all examples of algorithms. Similarly, certain techniques that have been developed and passed down are algorithms: how to create perspective in a painting, theories about color combinations, and layering instruments or voices of different tonal ranges in a musical score.
Algorithms are also used to interpret a work of art. By using a set of steps to analyze a painting, observers can uncover meanings of art that might not be readily apparent. Furthermore, artists might use algorithms to program a piece of digital art.
Algorithms are a part of everything we do and everything we teach. Regardless of the students and subject you are teaching, your students are creating and/or following algorithms and many of them might not even realize it. However, computational thinking occurs in a student’s mind when they are made aware of the algorithmic thinking and practice they are conducting.
Reflection
Explain in your own words a step-by-step process that you already employ in your classroom. How does it start and end? What is the problem it solves?