Exact step-by-step description of a method for solving a problem. The term is mostly used in programming, but it is not limited to computers, cooking recipes are algorithms for example.

They may include sequences (actions), selections (conditions - if X is true do action Y) and iterations (repetition). In programming and other fields that require complex algorithms, these steps are further combined into subroutines (smaller sequences), macros (bundled commands) or switch statements (selections with more than two possibilites).

Algorithms make use of variables - possibly changing values. Algorithms also may be expressed in other mediums than text, such as a flowchart.

Fractal, Cellular automaton