An algorithm is a finite set of instructions that accomplish a specific task. It can be written in natural language, diagrams or pseudocode. Every algorithm can be built from sequencing, selection and iteration. A variable holds one value at a time, assignment changes that value, and the variable keeps the most recent value assigned. An expression evaluates to a single value in a set order of operations.