Does Computer Science Need Computers?
The theoretical side of the field doesn’t require computing machines. But many questions would never have been posed without them.
Computer science emerged as a distinct academic field in the mid-20th century, blending traditions from mathematics and engineering. In 1967, computer scientists Allen Newell, Alan Perlis, and Herbert Simon argued in a Science journal letter that computer science is the study of computers because 'there are computers.' They countered critics who claimed science must focus on natural phenomena by comparing computer science to chemistry, which studies intentionally designed artificial systems. In 1969, Herbert Simon expanded this idea in his book The Sciences of the Artificial, emphasizing that computer science’s uniqueness lies in examining human-created systems rather than natural ones. This perspective framed computer science as a science of the artificial, distinct from fields like physics or biology.
The Dutch computer scientist Edsger Dijkstra, winner of the 1972 A.M. Turing Award, famously compared computer science to astronomy, stating it is no more about computers than astronomy is about telescopes. Dijkstra himself avoided using computers in his work, arguing that medical researchers are not required to suffer from the diseases they study. His provocative quote has been widely cited to emphasize the theoretical depth of computer science, distinguishing it from programming or coding. However, this analogy has been debated, as it may oversimplify the field’s relationship with technology. Dijkstra’s strong opinions extended to programming languages, calling Fortran 'the infantile disorder' and COBOL a 'criminal offence' to teach.
In 1974, computer scientist Donald Knuth redefined computer science as the study of algorithms, which are precise, step-by-step procedures for solving problems. Knuth argued that algorithms are central to the field, while computers are merely tools that implement them. For example, sorting a list can be done using algorithms in different programming languages, just as ideas can be expressed in various human languages. Knuth’s definition highlights the mathematical and logical foundations of computer science, separating it from the hardware or software used to execute algorithms. This perspective suggests that computer science is fundamentally about problem-solving methods rather than the machines that perform them.
In 1937, mathematician Alan Turing introduced the Turing machine, a hypothetical device that reads and writes symbols on an infinite tape according to simple rules. Turing’s model was not originally intended to describe real computers but to address a foundational problem in mathematics. His work proved that various models of computation proposed in the 1930s were mathematically equivalent, creating a universal theory of computation. This theory is not inherently about computers but about the limits and possibilities of computation itself. Today, Turing’s ideas are applied to analyze natural processes, such as evolutionary dynamics or quantum gravity, demonstrating the broad relevance of computational theory beyond technology.
Computer science can be divided into theoretical and practical branches. Theoretical computer science explores fundamental questions like 'What can be computed?' and 'How do you compute it?' without relying on physical computers. For example, complexity theory studies the inherent difficulty of problems, such as routing through networks or factoring numbers, by analyzing algorithms mathematically. In the late 1960s and early 1970s, researchers developed frameworks to quantify the time and resources algorithms require, leading to discoveries about problem-solving efficiency. This theoretical work has practical applications, including modern encryption schemes, but it is not dependent on computer hardware.
Computational complexity theory reveals that some problems have algorithms that solve them quickly, while others require painfully slow methods. For instance, routing problems in networks can be solved efficiently, but factoring large numbers remains computationally hard. This distinction is not about hardware speed or programmer skill but about the inherent mathematical structure of the problems. Complexity theorist Valentine Kabanets described this hidden structure as akin to discovering 'the laws of the universe.' The field has also led to unexpected developments, such as new types of mathematical proofs in the 1980s and 1990s, which reimagined proof as an interactive process, allowing verification without revealing the proof’s content.
The history of computer science shows that deep theoretical questions often arise from practical challenges in building machines. For example, Charles Babbage, a 19th-century polymath, envisioned a general-purpose calculating machine called the Analytical Engine and speculated about the need for a theory of algorithms to optimize its performance. Though Babbage never completed his machine, his ideas foreshadowed later developments in computer science. Similarly, complexity theory’s central questions about algorithmic efficiency only gained prominence in the 1960s when researchers began experimenting with real computers. This interplay suggests that theoretical and practical advancements in computer science are closely intertwined.
Computer science is uniquely interdisciplinary, with roots in both mathematics and engineering. William Rapaport, an emeritus professor at the University at Buffalo, describes it as having 'two parents'—a mathematical parent focused on abstract structures and an engineering parent concerned with practical applications. Rapaport argues that computer science’s core questions are 'What can be computed, and how do you compute it?' This dual heritage explains why the field resists a single, universally accepted definition. Theoretical computer scientists like Scott Aaronson note that many fundamental questions in the field could have been asked centuries ago but were only explored once the technology to test them emerged.
While computer science is deeply connected to computation, its scope extends far beyond computers themselves. Theoretical work in the field has influenced other sciences, such as physics, biology, and even quantum gravity, by modeling natural processes as computations. For example, researchers use computational lenses to analyze chaotic systems or evolutionary dynamics. Additionally, complexity theory has contributed to new types of mathematical proofs, demonstrating that the field’s impact transcends traditional computing. As theoretical computer scientist Tom Gur noted, computation reveals 'this underlying logical pattern that manifests itself pretty much everywhere,' highlighting its broad applicability.
Matti Tedre, a computer scientist at the University of Eastern Finland, critiques Dijkstra’s analogy comparing computer science to astronomy, arguing that telescopes are essential to astronomy. Tedre suggests that computers play a similarly foundational role in computer science, even for theoretical work. The field’s history shows that practical challenges in building machines have driven theoretical breakthroughs, and vice versa. For instance, the development of complexity theory was fueled by experiments with real computers in the 1960s. This interplay underscores that computer science, like astronomy, cannot be fully understood without considering the tools and technologies that shape its evolution.

