An algorithm is a procedure for carrying out a task which, given an initial state, will terminate in a clearly defined end-state. It can be thought of as a recipe, or a step-by-step method, so that in following the steps of the algorithm you are guaranteed to find the solution or the answer. The name is derived from a corruption of Al-Khwārizmī, the Persian astronomer and mathematician, wrote a treatise in Arabic in 825 AD, entitled: On Calculation with Hindu Numerals. This was translated into Latin in 12th century as Algoritmi de numero Indorum . The title translates as "Al-Khwārizmī on the numbers of the Indians", with Algoritmi being the translator's rendition of the original author's name in Arabic. Later writers misunderstood the title, and treated Algoritmi as a Latin plural of the neologism Algoritmus or Algorithmus, and took its meaning as 'calculation method'. In the Middle Ages there were many variants on this, such as alkorisms, algorisms, algorhythms etc.
There are two main current usages:
- In elementary education, where an 'algorithm' is used for calculation, such as the decomposition algorithm, or the equal addition method of subtraction. Many of these algorithms are, in fact derivations from methods in Al-Khwārizmī's original treatise.
- In computing, where an algorithm is the methodology which underlies a computer program. This tells the computer what specific steps to perform (in what specific order) in order to carry out a specified task, such as calculating employees’ paychecks or printing students’ report cards.