o computer scientists need to experiment at all? Only if we answer “yes” does it make sense to ask whether there is enough of it. In his Allen Newell Award lecture, Fred Brooks suggests that computer science is “not a science, but a synthetic, an engineering discipline.”1 In an engineering field, testing theories by experiments would be misplaced. Brooks and others seem troubled by the fact that the phenomena studied in computer science appear manufactured. Computers and programs are human creations, so we could conclude that computer science is not a natural science in the traditional sense. The engineering view of computer science is too narrow, too computer-myopic. The primary subjects of inquiry in computer science are not merely computers, but information structures and information processes.2 Computers play a dominant role because they make information processes easier to model and observe. However, by no means are computers the only place where information processes occur. In fact, computer models compare poorly with information processes found in nature, say, in nervous systems, in immune systems, in genetic processes, or, if you will, in the brains of programmers and computer users. The phenomena studied in computer science are much broader than those arising around computers. Regarding the manufactured nature of computer phenomena (its “syntheticness”), I prefer to think about computers and programs as models. Modeling is in the best tradition of science, because it helps us study phenomena closely. For example, for studying lasing, one needs to build a laser. Regardless of whether lasers occur in nature, building a laser does not make the phenomenon of massive stimulated emission artificial. Superheavy elements must be synthesized in the lab for study, because they are unstable and do not occur naturally, yet nobody assumes that particle physics is synthetic. Similarly, computers and software don’t occur naturally, but they help us model and study information processes. Using these devices does not render information processes artificial. A major difference from traditional sciences is that information is neither energy nor matter. Could this difference be the reason we see little experimentation in computer science? To answer this questions, let’s look at the purpose of experiments. Cy be rs qu ar e
[1]
Nancy G. Leveson,et al.
An experimental evaluation of the assumption of independence in multiversion programming
,
1986,
IEEE Transactions on Software Engineering.
[2]
Victor R. Basili,et al.
Software errors and complexity: an empirical investigation
,
1993
.
[3]
John N. Hooker,et al.
Needed: An Empirical Science of Algorithms
,
1994,
Oper. Res..
[4]
Michael Taylor.
Diversity of life
,
1994,
Nature.
[5]
Juris Hartmanis,et al.
Turing Award lecture on computational complexity and the nature of computer science
,
1994,
CACM.
[6]
Paul Lukowicz,et al.
Experimental evaluation in computer science: A quantitative study
,
1995,
J. Syst. Softw..
[7]
Edward A. Feigenbaum.
How the “what” becomes the “how”
,
1996,
CACM.
[8]
Walter F. Tichy,et al.
An experiment to assess the benefits of inter-module type checking
,
1996,
Proceedings of the 3rd International Software Metrics Symposium.
[9]
Trevor N. Mudge.
Report on the panel: “how can computer architecture researchers avoid becoming the society for irreproducible results?”
,
1996,
CARN.
[10]
Adam A. Porter,et al.
Assessing Software Review Meetings: Results of a Comparative Analysis of Two Experimental Studies
,
1997,
IEEE Trans. Software Eng..
[11]
Les Hatton,et al.
Reexamining the Fault Density-Component Size Connection
,
1997,
IEEE Softw..