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 video explains 'algorithms' in relation to the Digital Technologies curriculum.
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.
How to teach it
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.
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 make a paper prototype of an eco-calculator to demonstrate human impact on the environment and suggest changes in behaviour. This is an unplugged learning sequence with opportunities to extend learning through the development of a Scratch quiz.
In this sequence students plan, create and edit a program that asks maths questions that are harder or easier depending on user performance.
In this sequence students implement a digital solution for a maths quiz. They test and assess how well it works.
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'.
This sequence integrates science as students grow a plant from seed, capture each step and decision as an algorithmic process and record data for future learning.
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.
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).
For the classroom
This problem-solving game teaches about identifying the problem and the decisions and sequence of steps to solve it.
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
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)