As the size of software systems increases, the **algorithms** and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system the software architecture presents a new set of design problems. This level of design has been addressed in a number of ways including informal diagrams and descriptive terms, module interconnection languages, templates and frameworks for systems that serve the needs of specific domains, and formal models of component integration mechanisms.

— David Garlan and Mary Shaw (1993). "An introduction to software architecture."

If I ask another professor what he teaches in the introductory programming course, whether he answers proudly "Pascal" or diffidently "FORTRAN," I know that he is teaching a grammar, a set of semantic rules, and some finished **algorithms**, leaving the students to discover, on their own, some process of design.

— Robert Floyd (1979) "The Paradigms of Programming" 1978 Turing Award Lecture.

Mathematics my foot! **algorithms** are mathematics too, and often more interesting and definitely more useful.

— The Narrow-Minded and Ignorant Referee's Report [and Zeilberger's Response] of Zeilberger's Paper "Automaric CounTilings" that was rejected by Helene Barcelo and the Members of the Advisory Board [that includes(!) Enumeration Expert Mireille Bousquet-Melou] of the Journal of Combinatorial Theory-Series A. [1]

**algorithms** existed for at least five thousand years, but people did not know that they were algorithmizing. Then came Turing (and Post and Church and Markov and others) and formalized the notion.

—

**algorithms** are the computational content of proofs.

— Robert Harper, Benjamin C. Pierce et al.