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:

- Note the first number as the largest.
- Look through the remaining numbers, in turn, and if a number is larger than the number found in 1, note it as the largest.
- Repeat this process until complete. The last noted number is the largest in the list.

An *algorithm* may be described in many ways. Flowcharts are often useful in visualising an *algorithm*.

Learn more about it

How to teach it

For the classroom

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 output for a given input and to identify errors (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)