If numbers are an abstract concept that allows us to understand the world through counting, then mathematics is an abstract set of rules that allows us to manipulate numbers and so better understand and regulate the world. Euclid (Greek philosopher and mathematician, active circa 300 BCE) advanced the field of geometry (literally the measurement of land) in his third-century BCE work, The Elements (a compilation of previous thinking about algebra and geometry), as a part of a rigorous system of philosophical thought.

Image: DeCSS
A portion of the DeCSS code, from Wikipedia

The Greek contributions to the field of mathematics were the notions that mathematics should be general and that mathematical statements should be proven. These proofs laid the foundation for the algorithm, building on the mathematics of the Mesopotamians, who had developed procedures for finding whole numbers.

Euclid's Elements contained methods for finding the common divisor of two numbers. This was an algorithm, a set of rules for finding the solution to a problem (a computer program is a type of algorithm, one translated into a code the computer can understand, usually through a programming language). The term "algorithm" comes from the Latin translation, algorismi, of the name of the Islamic mathematician Muhammed ibn Musa al-Kwarizmi (Persian mathematician, circa 780-850). In the ninth century, he was one of many thinkers who worked in the House of Wisdom in Baghdad and was exposed to translations of Greek works. He wrote two books— The Hindu Calculation, which introduced Hindu notions of arithmetic to the Arab world, and the Book of Restoring and Balancing, which introduced algebra to the West, and from whose title the word "algebra" is derived (from the Arabic al-jabar, restoring).

Wikipedia defines an algorithm as "a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state." This mathematical concept is the basis for modern computer programming.