Computing Science and the Western Tradition
What is meant by the terms computing science and software engineering? For that matter, what do we mean by science and engineering more generally? How are these two disciplines related, and how do they fit in to the broader tradition of western thought? Is there something unique about computing science that sets it apart from the other sciences? In this essay I attempt to present my views on these topics, and to show the unique beauty of computing science.
Jerusalem and Athens — Paradigm Shifts in the Ancient World
The foundations of Western Civilization may be viewed as resting atop two pillars, Jerusalem and Athens, named for the cities of the ancient world which gave birth to their cardinal ideas. From Jerusalem we inherit the concept of ethical monotheism, while Athens gave rise to philosophy and the tradition of reason. Both discoveries were paradigm shifts in their own right, and the harmony and tension between them forms the basis of Western thought, the understanding of which is necessary to truly appreciate the intellectual tradition we are a part of.
Jerusalem — The Separation of the Divine from Nature
Anybody who has been seriously engaged in scientific work of any kind, realizes that over the entrance to the gates of the temple of science are written the words: ‘Ye must have faith.’ — Max Planck
Gen 1:1: “In the beginning, G-d created the heavens and the earth.” The first verse of the Hebrew Bible is perhaps the most important in terms of its profound ramifications. Prior to the revelation of Gen 1:1, ancient religions anthropomorphized the natural world in the forms of various deities. Thunderbolts were explained through the wrath of Zeus; storms at sea were caused by Poseidon; diseases were seen as the displeasure of Apollo, etc. This anthropomorphic view of the natural world had the consequence of rendering it subject to the whims of gods with human qualities, and therefore unknowable. The Abrahamic faiths changed that view. By making the assertion that “G-d created the heavens and the earth,” the Hebrew Bible removes the divine from nature. Furthermore, making the natural world a created thing, makes it subject to laws, and not the whims of specific deities. Further verses emphasizes that man was created in the image of the divine, which implies that we ourselves are capable of understanding and discovering what these laws are.
Another verse of interest to our discussion is Gen 2:19: “And out of the ground the Lord G-d formed every beast of the field, and every fowl of the air; and brought them unto Adam to see what he would call them: and whatsoever Adam called every living creature, that was the name thereof.” Here, Adam is tasked with naming the animals. Names have power, and in order to name something, one must have a deep understanding of its nature. Naming requires the ability to see distinctions, to discriminate between important and unimportant differences between objects. In essence, Adam was tasked with solving an instance of the classification problem, specifically a taxonomic classification of the animal kingdom. Another consequence of this verse is an understanding that the scientific endeavor is a calling, and given a divine imprimatur.
Athens — Reason and the Birth of Philosophy
Man is the only animal capable of reasoning, though many others possess the faculty of memory and instruction in common with him. — Aristotle
The laws of nature are but the mathematical thoughts of God. — Euclid1
Having introduced the pillar of Jerusalem, we now turn our attention Athens. From Athens, as from Jerusalem, we have inherited much, but of interest to us here is a paradigm shift in the ancient world that was sparked by a discovery of Pythagoras. Prior to the Pythagoreans, the ancients had a particular understanding of how mathematics related to the natural world. The natural world was seen as being comprised of infinitesimal and indivisible particles called atoms, and numbers were seen as corresponding to sequences of such. This tight coupling of the physical and mathematical world informed the aim of the study of mathematics, namely as a means of achieving physical ends (e.g., building a temple, keeping commercial records, etc.).
This view of mathematics changed forever with the discovery of the Pythagorean theorem, which states that: “For a right triangle with legs $A$ and $B$, and hypotenuse $C$, $A^{2} + B^{2} = C^{2}$.” What Pythagoras and his disciples did was to examine the consequences of this theorem when presented with the a right triangle triangle whose legs each have a length of $1$. In this case, it was discovered that $C = \sqrt{2}$, an irrational number, and consequently cannot correspond to the length of some sequence of atoms. This discovery divorced the mathematical domain from the physical one, and from then on the Greeks studied mathematics for the sake of understanding, giving rise to philosophy2.
The Western Scientific Tradition
In questions of science, the authority of a thousand is not worth the humble reasoning of a single individual. — Galileo Galilei
Reason conjoined with ethical monotheism carried the West through to the Renaissance, where yet another revolutionary idea was given form by Galileo Galilei (along with Copernicus, Kepler, and others) shaping what we understand by science in the Western tradition.
Prior to Galileo and his peers, scientific reasoning and argument was tied to an almost sacred respect for the word of authority. Whether it stemmed from the Church or the writings of the ancients, certain fundamental premises about the nature of the world were taken as a given. Galileo changed this forever by challenging the Aristotelian models of gravity and geocentrism. His emphasis on the reason and capability of individuals to ascertain truth, lead to the notion of independent reason as being central to the scientific endeavor, which is beautifully captured by the motto of the Royal Society of London in Latin as “nullius in verba”, (on the word of no one). This spirit of intellectual individualism merged with the Greek and Jerusalemite ideals to form an understanding of science as the effort to discover the kinds and laws of nature through the faculties of independent reason.
This view of the nature of science gives us a lens through which we can understand what is meant by engineering. It is true that an understanding of the kinds and laws of nature is a beautiful and worthwhile endeavor in its own right. The understanding of a thing also gives us power over it, and the application of this power towards noble and creative ends is at the core of what we mean by the term engineering. More precisely, engineering is the application of scientific principles to the design of technology.
With this definition in mind, it becomes apparent that each branch of engineering is paired with a sister science. Mechanical and electrical engineering for example are paired with the sister science of physics; chemical engineering with chemistry; petroleum engineering with geology; and so on. A notable exception to this pattern however is computer science (referred to here in this essay as computing science). This leads to a natural question: “Why is this so?”
The Nature of Computing Science
Computer Science is no more about computers than astronomy is about telescopes. — Edsger Wybe Dijkstra
The genesis of computing science as a scientific discipline predates the invention of the modern notion of a computer, and can be traced back to a particular problem posed by the mathematician David Hilbert in 1928. This problem, known as the Entscheidungsproblem, is formulated as follows: “Construct a mechanical procedure which given an arbitrary first order formula will determine whether or not it is a tautology.” Note that Hilbert in his formulation presumes that the notion of mechanical procedure is well-defined; and furthermore that such a procedure necessarily exists.
It was shown by Alan Turing in 1936 with the publication of his seminal paper “On Computable Numbers, with an Application to the Entscheidungsproblem” that these presumptions were unfounded. Turing’s attempts to understand what was precisely meant by the term mechanical procedure led to the discovery of a mathematical object known as a Turing machine which underlies the definition of an algorithm3. Furthermore, it led to the discovery that the Entscheidungsproblem is undecidable (which in layman’s terms means that no algorithm exists to solve the problem in question).
Turing’s work (and that of his contemporaries) sparked a revolution on many fronts. It also created a new scientific frontier centered on revealing the kinds and laws of algorithms to the faculties of independent reason. The advent of the modern computer in 1945 introduced another set of questions centered on how to best encode algorithms into programs to be executed. This speaks to the idea that computing science has a dual nature, in that it is both a scientific and engineering discipline. Furthermore, questions that were explored by Turing and his intellectual descendants had profound impacts on other fields such as linguistics, biology, physics, and logic, to name but a few. As an example, consider just one question that computing science concerns itself with: “How can we define infinite sets by a finite means?” This question was addressed in part by Turing, Church, and Post and is tied to questions concerning the nature of language. It was subsequently taken up in part by Noam Chomsky in the field of linguistics, and planted the seeds of what is now known as complexity theory. Investigations of this subject led to the discovery of a rich body of algorithms and languages and fields of study pertaining to them.
Computing science’s nature distinguishes it in another profound way: it is the only scientific discipline whose fundamental principles are built from the ground up on a foundation of mathematical reasoning and methods of proof. Unlike other fields, in computing science the kinds of conclusions we may derive are not subject to the inherent limitations of empirical reasoning, allowing us to make firm generalizations about what is true. Furthermore, the act of discovering an algorithm and transcribing it into a program bridges the divide between the mathematical and physical realms that was discovered by the Pythagoreans. This allows us to observe the behaviors and properties of the objects of discourse within our field, which differentiates computing science from fields such as geometry. In other words, computing science is a kind of magic.
Final Thoughts
If I have seen further it is by standing on the shoulders of Giants. — Sir Isaac Newton
In the current day and age it is easy to lose sight of the fact that we are standing on the shoulders of giants and to divorce ourselves from the intellectual tradition in which we are taking part. Grounding ourselves with an understanding of what has come before serves many purposes - in addition to humbling us, it grants us an enhanced perspective by which we may see the world we inhabit. It allows us to discern the important from the unimportant and to recognize that our field is independent of a particular technological artifact. Not only is this kind of clarity freeing, it is also a necessary trait for both a programmer and scientist.
A sense of history also enables us to engage with stories and to find heroes among our intellectual forebears. Knowing what came before can help us learn from the mistakes and the successes of the past. In this way not only can we see whether we are truly expanding the frontiers of our own knowledge, but we can also determine whether or not that which we do is truly good.
-
Although this quote is commonly attributed to Euclid, it appears more likely to be a paraphrase of Johannes Kepler. ↩︎
-
The term philosophy comes directly from the Greek, φιλοσοφια, which means “love of wisdom.” ↩︎
-
Independently of Turing, Alonzo Church and Emil Post put forward notions of what constituted an algorithm with the $\lambda$-calculus and the language of unrestricted grammars respectively. These were later shown to be equivalent as a consequence of what is known as the Church-Turing thesis. ↩︎