The Ongoing Debate: Is Computer Science Truly a Science?
Written on
Chapter 1: The Nature of Computer Science
Is Computer Science a Genuine Science?
Computer science is often questioned regarding its scientific legitimacy. The adage suggests, "Any field with 'science' in its name isn't really science." So where does that leave computer science? Those of us engaged in this discipline—how do we define ourselves? Are we scientists, mathematicians, engineers, or philosophers? Opinions vary widely among computer scientists regarding whether the field qualifies as a science, often influenced by their foundational traditions.
Hal Abelson and Gerry Sussman, who align with the mathematical and engineering sectors of computing, argue that computer science transcends mere computers. They liken it to physics not being solely about particle accelerators and biology not being solely about microscopes. In a similar vein, Edgar Dijkstra, a prominent mathematician, asserted, "Computer science is no more about computers than astronomy is about telescopes." He, however, maintained that computing qualifies as a mathematical science.
Conversely, some prominent figures contend that computer science is indeed a science, asserting that the software aspect aligns more with engineering principles. Gabriel García Márquez once stated, "The world was so recent that many things lacked names, and to indicate them, it was necessary to point." This resonates with the ongoing discourse in computer science.
The Classification Challenge
Computer science holds significant importance in a world eager to categorize and understand various disciplines. To approach this classification effectively, we must refine our definitions. Computer science fits the criteria for a science but suffers from a self-imposed credibility crisis. We need clarity on what we define as "science" and what we mean by "computer science."
In my view, "science" encompasses systematic observation, analysis, and communication of phenomena using models that can be tested and critiqued. The thrill of science lies not just in its methodologies but also in the knowledge derived from the ongoing dialogue between models and observable phenomena.
Chapter 2: Expanding Our Understanding of Science
To illustrate, consider integrating "cultural anthropology" and "suspension bridges" into our scientific definitions. While suspension bridges offer observable phenomena that can be rigorously studied, cultural anthropology presents more abstract models requiring careful negotiation. The evolution of what we consider science has taken millennia, with fields like physics developing a depth of rigor only over extensive periods.
Returning to the term "computer science," it originally denoted an aspiration to establish a legitimate "science of the artificial." Yet today, it is often viewed merely as a collection of practices that should be categorized under "engineering," often lacking true engagement with the definitions of these terms.
Historically, when "computer science" and "software engineering" were first termed, pioneers aspired to elevate them to legitimate scientific fields without compromising either scientific integrity or engineering principles. A pivotal example from the late 1950s is John McCarthy's ambition to create a "real AI" interface that could engage in common-sense reasoning and provide mutual guidance.
This video featuring Stephen Wolfram and Lex Fridman delves into the question, "Is programming dead?" and examines the evolving role of programming in the context of computer science.
McCarthy developed a mathematical model of computing using a notation that could define itself, allowing for results generation from various theoretical components. This innovative model, implemented on contemporary computers, created a bridge for further exploration and understanding, leading to new phenomena distinct from its predecessors.
The interplay between science and engineering within the artificial sciences has fostered a rich landscape of creativity and enlightenment. Each new creation inspires further innovation, creating a virtuous cycle of advancement.
However, we must critically assess any scientific field by the thresholds crossed by its models and theories. I find McCarthy's contributions exemplary, as Donald E. Knuth aptly put it: “Science is what we understand well enough to explain to a computer; art is everything else.”
Afterword
If you're a physicist, you must contend with the laws of nature. In contrast, computer science empowers you to invent freely. While computers are human-made, their foundational principles derive from other scientific fields like physics and electronics.
Despite being a relatively nascent discipline, computer science has rapidly evolved. Many past Ph.D. theses now align with what programmers routinely do. The field is accelerating, with a new wave of talent emerging, and programming has become a more mainstream pursuit. Early exposure to technology is reshaping the landscape, enabling young minds to develop flexible thinking.
In the past, being a skilled programmer wasn't always sufficient; management roles often overshadowed technical expertise. Thankfully, this perception is changing. The recognition of computer science as a viable, standalone discipline is becoming more prevalent.
Conclusion
Today, the realm of computing has expanded exponentially, influencing every facet of daily life. This growth has birthed new interdisciplinary research areas, such as computational biology, robotics, and cyber-physical systems.
So, does computer science qualify as a branch of science? While I don't dispute the perspectives of the giants mentioned earlier, it's essential to recognize that they acknowledged the field's broader implications—much like mathematics, it encompasses diverse areas of study.
Note of Gratitude
I want to take a moment to express my sincere appreciation. Thank you for your engagement and support! I couldn't pursue this journey without readers like you. I hope you will continue to follow along as we explore fascinating topics together. Until next time, take care!