Lecture: Is Computing a Science?
Initially considered rather as applied technology, over the years computing resisted absorption back into the fields of its roots and developed an impressive body of knowledge. We discuss how computing is related to other domains of scientific knowledge and draw conclusions about the very nature of the discipline.
Computing deals with the study of phenomena of transformation of information defined as a relationship that involves the syntax and the semantics of a language. Information is an entity independent from matter and energy. It is not subject to space-time constraints. It is non material, although it needs media for its representation.
Computing has developed as a scientific discipline started from prior knowledge about computation based on mathematics and logic. In contrast to physical sciences, it focuses on the design of artefacts. The dominant paradigm is synthesis rather than analysis to understand and predict phenomena. Nonetheless, both computing and physical sciences share a common objective: the study of dynamic systems. Physical phenomena can be understood not only through the study of immutable laws, but also as computational processes. Physical systems are inherently synchronous and driven by uniform laws. Computational systems ignore physical time and are driven by specific laws defined by their designers. Despite these differences, computing and physical sciences are rooted in two common paradigms that characterize any scientific approach. The first is the application of modularity principles to cope with the inherent complexity of phenomena. The second is the use of abstraction hierarchies of models that describe phenomena at different levels of detail. We discuss similarities and differences in the application of these paradigms.
Computing pursues the study of design as a formal process leading from requirements to correct artefacts. Providing design with scientific foundations raises several deep theoretical problems including the conceptualization of needs using declarative languages, their proceduralization and implementation. Additionally, design “scientization” seeks the purposeful and coherent integration of methods through the study of general semantic models, of expressive component frameworks and most importantly, of theory for achieving correctness-by-construction. This endeavor and its overarching goal are both intellectually challenging and culturally enlightening. It is at least as important the quest for scientific discovery in physical sciences and nicely complements the effort for scientific progress and its fruition.