“Effective algorithms make assumptions, show a bias toward simple solutions, trade off the costs of error against the cost of delay, and take chances.”
– Brian Christian and Tom Griffiths, Algorithms to Live By (2016)
An algorithm is a process or formula for calculating answers, sorting data and automating tasks. Algorithmic thinking, then, is the construction of an algorithm, or step-by-step process for solving a problem and similar problems. This solution, by definition, should be replicable by humans or computers.
Algorithmic thinking is a derivative of computer science and the process to develop code and program applications. This approach automates the problem-solving process by creating a series of systematic, logical steps that intake a defined set of inputs and produce a defined set of outputs based on these.
In other words, algorithmic thinking is not solving for a specific answer; instead, it solves how to build a sequential, complete, and replicable process that has an end point – an algorithm. Designing an algorithm helps students to both communicate and interpret clear instructions for a predictable, reliable output. This is the crux of computational thinking.
And like computational thinking and its other elements we’ve discussed, algorithms are something we experience regularly in our lives.
Examples of Algorithmic Thinking in Everyday Life
If you’re an amateur chef or a frozen meal aficionado, you follow recipes and directions for preparing food, and that’s an algorithm.
When you’re feeling groovy and bust out in a dance routine – maybe the Cha Cha Slide, the Macarena, or Flossing – you are also following a routine that emulates an algorithm while simultaneously being really cool.
Outlining a process for checking out books in a school library or instructions for cleaning up at the end of the day are examples of algorithmic thinking and letting your inner computer scientist shine in everyday life.
Examples of Algorithms in Curriculum
Beginning to develop students’ algorithmic prowess, however, does not require formal practice with coding or even access to technology. Have students map directions for a peer to navigate a maze, create visual flowcharts for tasks, or develop a coded language.
To get started, here are ideas for incorporating algorithmic thinking in curriculum for multiple different subjects.
- English Language Arts: Students map a flow chart detailing steps for determining whether to use a colon or dash in a sentence.
- Mathematics: In a word problem, students develop a step-by-step process for how they answered a question that can then be applied to similar problems.
- Science: Students articulate how to classify elements in the periodic table.
- Social Studies: Students describe a sequence of smaller events in history that precipitated a much larger event.
- Languages: Students apply new vocabulary and practice speaking skills to direct another student to perform a task, whether it’s ordering coffee at a café or navigating from one point in a classroom to another.
- Arts: Students create instructions for drawing a picture that another student then has to use to recreate the image.
Examples of Algorithms in Computer Science
These are obviously more elementary examples; algorithms – especially those used in coding – are often far more intricate and complex. To contextualize algorithms in computer science and programming, below are two examples.
Standardized Testing and Algorithms
Coding enables the adaptive technology often leveraged in classrooms today.
For example, the shift to computer-based standardized tests has led to the advent of adaptive assessments that pick questions based on student ability as determined by correct and incorrect answers given.
If students select the correct answer to a question, then the next question is moderately more difficult. But if they answer wrong, then the assessment offers a moderately easier question. This occurs through an iterative algorithm that starts with a pool of questions. After an answer, the pool is adjusted accordingly. This repeats continuously.
The Omnipotent Google and Algorithms
Google’s search results are determined (in part) by the PageRank algorithm, which assigns a webpage’s importance based on the number of sites linking to it. So, if we google “What are examples of algorithmic thinking?”’ we can bet that the chosen pages have some of the most links to them for the topic “What are examples of algorithmic thinking?” It’s still more complicated than this, of course; if you are interested, this article goes into the intricacies of the PageRank algorithm.
There are over 1.5 billion websites with billions more pages to count, but thanks to algorithmic thinking we can type just about anything into Google and expect to be delivered a curated list of resources in under a second. This right here is the power of algorithmic thinking.
“The Google algorithm was a significant development. I’ve had thank-you emails from people whose lives have been saved by information on a medical website or who have found the love of their life on a dating website.” Tim Berners-Lee
In whatever way it’s approached in the classroom, algorithmic thinking encourages students to communicate clearly and logically. Students learn to persevere throughout its multiple iterations, challenges, and solutions.
To arrive at an algorithm (especially as algorithms advance in complexity), they must apply computational thinking and practice metacognition as they do so. In this process, students become more adept critical thinkers, eloquent communicators, and curious problem solvers that ask bold questions and flourish in ambiguity and uncertainty.