Description
The 1960s were tumultuous times, socially and culturally. But tucked away amidst the folds of the Cold War, civil rights activism, anti-war demonstrations, the feminist movement, student revolt, flower-power, sit-ins, and left-radical insurrections—almost unnoticed—a new science came into being on university campuses in the West and even, albeit more tentatively, in some regions of the non-Western world.
This science was centred on a new kind of machine: the electronic digital computer. The technology surrounding this machine was called by a variety of names, most commonly, ‘automatic computation’, ‘automatic computing’, or ‘information processing’. In the English-speaking world this science was most widely called computer science, while in Europe it came to be labelled ‘informatique’, or ‘informatik’.
The technological idea of automatic computation—designing and building real machines that would compute with minimal human intervention—can at least be traced back to the obsessive dreams of the English mathematician and intellectual gadfly Charles Babbage in the early 19th century, if not further back. The mathematical concept of computing was first studied in the late 1930s by the logicians Alan Turing in England and Alonzo Church in the United States. But the impetus for a proper empirical science of computing had to wait until the invention, design, and implementation of the electronic digital computer in the 1940s, just after the end of the Second World War. Even then, there was a gestation period. An autonomous science with a name and an identity of its own only emerged in the 1960s when universities began offering undergraduate and graduate degrees in computer science, and the first generation of formally trained computer scientists emerged from the campuses.
Since the advent of the electronic digital computer in 1946, the spectacular growth of the technologies associated with this machine (nowadays called generically ‘information technology’ or ‘IT’) and the related cultural and social transformation (expressed in such terms as ‘information age’, ‘information revolution’, ‘information society’) is visible for all to see and experience. Indeed, we are practically engulfed by this techno-social milieu. The science—the intellectual discipline—underlying the technology, however, is less visible and certainly less known or understood outside the professional computer science community. Yet computer science surely stands alongside the likes of molecular biology and cognitive science as being amongst the most consequential new sciences of the post-Second World War era. Moreover, there is a certain strangeness to computer science that compels attention and sets it apart from all other sciences.
My intent in this book is to offer the intellectually curious reader seriously interested in scientific ideas and principles the basis for an understanding of the fundamental nature of computer science; to enrich, if you will, the public understanding of this strange, historically unique, highly consequential, and still new, science. Put simply, this book strives to answer in direct, immediate, and concise fashion the question: What is computer science?
Before we proceed, some terminological clarity is in order. In this book I will use the word computing as a verb to denote a certain kind of activity; computation is used as a noun to signify the outcome of computing; computational is used as an adjective; computer is a noun which will refer to a device, artefact, or system that does computing; artefact refers to anything made by humans (or, sometimes, animals); and a computational artefact is any artefact that participates in computational work.
Finally, a caveat must be stated. This book begins by accepting the proposition that computer science is indeed a science; that is, it manifests the broad attributes associated with the concept of science, notably, that it entails the systematic blend of empirical, conceptual, mathematical and logical, quantitative and qualitative modes of inquiry into the nature of a certain kind of phenomena. Questioning this assumption is an exercise in the philosophy of science that is beyond the scope of this book. The abiding issue of interest here is the nature of computer science qua science and, especially, its distinct and distinguishing character.
Contents
Preface
Acknowledgements
List of illustrations
1 The ‘stuff’ of computing
2 Computational artefacts
3 Algorithmic thinking
4 The art, science, and engineering of programming
5 The discipline of computer architecture
6 Heuristic computing
7 Computational thinking
Epilogue: is computer science a universal science?
Further reading
Index