Number theory
While the word "algorithm" goes back only to certain readers of al-Khwārizmī, careful descriptions of methods of solution are older than proofs: such methods (that is, algorithms) are as old as any recognisable mathematics—ancient Egyptian, Babylonian, Vedic, Chinese—whereas proofs appeared only with the Greeks of the classical period.
An interesting early case is that of what we now call the Euclidean algorithm. In its basic form (namely, as an algorithm for computing the greatest common divisor) it appears as Proposition 2 of Book VII in "Elements", together with a proof of correctness. However, in the form that is often used in number theory (namely, as an algorithm for finding integer solutions to an equation formula_78,
or, what is the same, for finding the quantities whose existence is assured by the Chinese remainder theorem) it first appears in the works of Āryabhaṭa (5th–6th century CE) as an algorithm called
"kuṭṭaka" ("pulveriser"), without a proof of correctness.
Technologies in 2001: A Space Odyssey
Clarke noted that, contrary to popular rumor, it was a complete coincidence that each of the letters of Hal's name immediately preceded those of IBM in the alphabet. The meaning of HAL has been given both as "Heuristically programmed ALgorithmic computer" and as "Heuristic ALgorithmic computer". The former appears in Clarke's novel of "2001" and the latter in his sequel novel "2010". In computer science, a heuristic is a programmable procedure not necessarily based on fixed rules, producing informed guesses often using trial-and-error. The results can be false such as in predictions of stock market, sports scores, or the weather. Sometimes this can entail selecting on-the-fly one of several methods to solve a problem based on previous experience. On the other hand, an algorithm is a programmable procedure that produces reproducible results using invariant established methods (such as computing square roots).
A heuristic approach that usually works within a tolerable margin of error may be preferred over a perfect algorithm that requires a long time to run.