Algorithm Definition and Uses An algorithm is a style of unambiguous procedural description. It focuses on precisely specified outcomes and step descriptions which often include tests on the status of related procedure variables. Simple algorithms (e.g. for operational procedures, route directions and fault-finding) are sometimes represented graphically using a flow chart (http://www.managers-net.com/flowcharting.html). For example, the algorithm shown represents a procedure for making a cup of instant coffee. The precision required for algorithms can make them a useful template for computer programs. However, most cooking recipes would be difficult to represent as algorithms because of the judgemental elements that are usually included (e.g. ‘cook till brown’) Most of the many hundreds of algorithms in use today are much more involved than this and are used for the specialised calculations and decision-taking involved in Computer Systems, Mathematics and Astronomy. They are usually presented as complex mathematical formulae using advanced expressions in addition to the associated computer program listings. Examples include Name of Algorithm Blowfish1 Soundex2 Shell Sort3 PageRank4 Purpose Developed by Encrypting digital data. Indexing names by their phonetic sound. Sorting digital data Used by Google to assess the value of website references. Bruce Schneier Robert Russell & Margaret Odell Donald Shell Larry Page & Sergey Brin Background In the distant past algorithms were always in narrative form Algorithm for making a cup of coffee and used to record and communicate the procedures needed to perform various types of calculation. Some of the earliest attributable examples of such texts are in the work of 9th century Persian academic, Mohammed ibn-Musa al-Khwarizmi5 (ca 780-850). Al-Khwarizmi studied at the Bayt al-Hikma (House of Wisdom) college which formed part of the royal court in Baghdad. With the Islamic “Caliphate” at that time stretching from the Indus to the Iberian peninsula, Muslim culture and science was then viewed with suspicion and hostility in the Christian West. It would therefore 1 Description Blowfish Cipher, Bruce Schneier (1993) http://www.schneier.com/paper-blowfish-fse.html The Story of Soundex, Gjenvick Gjønvik Archives http://www.gjenvick.com/Students/TheStoryOfSoundex.html 3 A High-Speed Sorting Procedure, Donald Shell, Proceedings of the Association for Computing Machinery (1959) http://penguin.ewu.edu/cscd300/Topic/AdvSorting/p30-shell.pdf 4 What Is PageRank and How Do I Use It?, Marziah Karch, http://google.about.com/od/searchengineoptimization/a/pagerankexplain.htm 5 Al-Khwarizmi: The Father of Algebra, Dr. Ibrahim B. Syed (2011) http://www.onislam.net/english/readingislam/research-studies/islamic-history/454243-al-khwarizmi-the-father-of-algebra.html 2 be 400 years before al-Khwarizmi’s was translated from the Arabic into Latin and made available in Europe. His original Arabic treatise “On the Calculation with Hindu Numerals” is thought to have been written in about 825. The medieval Latin translation was entitled “Algoritmi de numero Indorum” and led to the term "algorithm" which was a Latinised version of al_Khwarizmi’s name. His later work “The Compendious Book on Calculation by Completion and Balancing" was published in 830. It provided perhaps the earliest known explanation of simultaneous equations and its Arabic title “al-Kitab al-mukhtasar fi hisab al-jabr wa'l-muqabala” led to the term “algebra” becoming popular.