An algorithm is "a step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps".

Algorithms are named after an Iranian mathematician Al-Khawarizmi. In the early 9th century, he wrote a book on arithmetic. His name, translated into Latin, was "Algorismus". The change to spelling with a 'th' is Greek, and probably influenced by the fact the book was on 'arithmetic'. (Did you know there used to be a a letter 'th' in early Anglo-Saxon alphabets?)

Algorithms are the things that let us turn big data into small data, search through data structures, encrypt information so no-one can read it and in general make up the more interesting part of computer science.

There's algorithms all over the net - contains a comprehensive collection of algorithm implementations for over seventy of the most fundamental problems in maths/computer science.

See Category:Algorithm for a list of interesting algorithms.

The course 0657.317B at TheUniversityOfWaikato comes highly recommended and is often referred to as a ComputerScienceMajor's favourite paper.

Contrast Heuristic.