An algorithm is a series of ordered steps that are required to solve a problem. In order to work, algorithms need to have their steps in the right order.
Algorithms are everywhere in our daily lives. At their simplest level, algorithms exist as a series of instructions that enable us to solve simple problems; for example, recipes or getting ready for the day. Algorithms can also be more complex. For example, some of the largest corporations use algorithms to guide our internet browsing, airports use them to program flight paths and the health sector uses them to find donor–patient matches.
Step-by-step procedures required to solve a problem. For example, to find the largest number in a list of positive numbers:
An algorithm may be described in many ways. Flowcharts are often useful in visualising an algorithm.
Learn more about it
This 5-minute video explores the making of a Vegemite sandwich and other processes to explain algorithms.
This 6-minute video explores some of the criteria and complexities of creating an algorithm that solves problems efficiently.
This chapter covers problems where it's easy to tell the computer what to do – by writing a program – but the computer can't do what we want because it takes far too long. Find out about what is meant by tractable and intractable problems. Learn about complexity, why it is an important concept and how it relates to algorithms.
This resource provides information for teachers about various topics including algorithms.
How to teach it
Students follow and describe a series of steps to program a floor robot. Plan a route to program a robot to follow a path and write a sequence of steps (algorithm).
This lesson sequence intentionally uses a visual based programming tool to introduce designing and validating algorithms. Those students who complete this task can move to code the result in any text-based language with which they are familiar.
Students design a sequence of steps for others to follow. They convey their instructions to peers and evaluate the work of others to determine if the outcome was successful.
In pairs, explore giving and following a sequence of steps and decisions to build a LEGO® toy.
Create a model using snap blocks 1 block high and create a code so someone else can build your model.
This sequence provides a gentle introduction to the skill of decomposition by having students develop discrete modules that together serve a single need: a maths teacher asks for a program that can be used to demonstrate aspects of maths. This sequence can be used in conjunction with 'Comparing and selecting appropriate algorithms'.
Algorithms are a key concept in Digital Technologies. They help us follow, describe and represent a sequence of steps and decisions needed to solve problems. This resource explores some idea for following algorithms including the smiley face biscuit visual algorithm challenge.
One challenge in teaching object-oriented principles is finding a suitable programming language. Many of these languages are too complex and their environments too confusing. This lesson sequence offers a choice of one of two approaches in an attempt to address this problem.
In this lesson, students are presented with the challenging problem of measuring a volume of water using containers that are not the exact measurement size. Students will decompose a complex problem into discrete steps, design an algorithm for solving the problem, and evaluate solution efficiencies and optimization in a simulation.
Students create a storyboard to plan a ‘choose your own adventure' story, where the reader is provided with a number of decisions that lead to alternative endings.
For the classroom
This game will give you an idea of how different algorithms for the same problem can have wildly different efficiencies.
What other schools are doing
Understanding algorithms through baking
Follow, describe and represent a sequence of steps and decisions (algorithms) needed to solve simple problems (ACTDIP004)
Define simple problems, and describe and follow a sequence of steps and decisions (algorithms) needed to solve them (ACTDIP010)
Implement simple digital solutions as visual programs with algorithms involving branching (decisions) and user input (ACTDIP011)
Design, modify and follow simple algorithms involving sequences of steps, branching, and iteration (repetition) (ACTDIP019)
Design algorithms represented diagrammatically and in English, and trace algorithms to predict ACTDIP029)
Design algorithms represented diagrammatically and in structured English and validate algorithms and programs through tracing and test cases (ACTDIP040)
Implement modular programs, applying selected algorithms and data structures including using an object-oriented programming language (ACTDIP041)