Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The mathematics of programming: an inaugural lecture delivered before the Univ. of Oxford on Oct. 17, 1985
Communications of the ACM
The notion of proof in hardware verification
Journal of Automated Reasoning
A debate on teaching computing science
Communications of the ACM
The foundation of artificial intelligence---a sourcebook
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The new hacker's dictionary (3rd ed.)
The new hacker's dictionary (3rd ed.)
The sciences of the artificial (3rd ed.)
The sciences of the artificial (3rd ed.)
The ontological basis of strong artificial life
Artificial Life
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
Social processes and proofs of theorems and programs
Communications of the ACM
Computer science as empirical inquiry: symbols and search
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Philosophy and Computer Science: Problems and Applications
Philosophy and Computer Science: Problems and Applications
Software Engineering
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
Guide to the Software Engineering Body of Knowledge - SWEBOK
Guide to the Software Engineering Body of Knowledge - SWEBOK
Minds and Machines
IEEE Software
Research paradigms in computer science
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Software as science: science as software
ICHC Proceedings of the international conference on History of computing: software issues
Does IT Matter? Information Technology and the Corrosion of Competitive Advantage
Does IT Matter? Information Technology and the Corrosion of Competitive Advantage
The Foundations of Specification
Journal of Logic and Computation
Agent Technology For E-Commerce
Agent Technology For E-Commerce
Empirical evaluation in Computer Science research published by ACM
Information and Software Technology
Problems for a Philosophy of Software Engineering
Minds and Machines
Some Philosophical Issues in Computer Science
Minds and Machines
Abstraction and Idealization in the Formal Verification of Software Systems
Minds and Machines
Hi-index | 0.00 |
We examine the philosophical disputes among computer scientists concerning methodological, ontological, and epistemological questions: Is computer science a branch of mathematics, an engineering discipline, or a natural science? Should knowledge about the behaviour of programs proceed deductively or empirically? Are computer programs on a par with mathematical objects, with mere data, or with mental processes? We conclude that distinct positions taken in regard to these questions emanate from distinct sets of received beliefs or paradigms within the discipline: The rationalist paradigm, which was common among theoretical computer scientists, defines computer science as a branch of mathematics, treats programs on a par with mathematical objects, and seeks certain, a priori knowledge about their "correctness" by means of deductive reasoning. The technocratic paradigm, promulgated mainly by software engineers and has come to dominate much of the discipline, defines computer science as an engineering discipline, treats programs as mere data, and seeks probable, a posteriori knowledge about their reliability empirically using testing suites. The scientific paradigm, prevalent in the branches of artificial intelligence, defines computer science as a natural (empirical) science, takes programs to be entities on a par with mental processes, and seeks a priori and a posteriori knowledge about them by combining formal deduction and scientific experimentation. We demonstrate evidence corroborating the tenets of the scientific paradigm, in particular the claim that program-processes are on a par with mental processes. We conclude with a discussion in the influence that the technocratic paradigm has been having over computer science.