ABSTRACTION, LAW, AND FREEDOM IN COMPUTER SCIENCE.

Laws of computer science are prescriptive in nature but can have descriptive analogs in the physical sciences. Here, we describe a law of conservation of information in network programming, and various laws of computational motion (invariants) for programming in general, along with their pedagogical...

Descripción completa

Detalles Bibliográficos
Publicado en:Metaphilosophy Vol. 41; no. 3; pp. 345 - 365
Autores principales: COLBURN, TIMOTHY, SHUTE, GARY
Formato: Artículo
Publicado: Wiley-Blackwell Apr2010
Materias:
Acceso en línea:Ver este registro en EBSCOhost
Descripción
Sumario:Laws of computer science are prescriptive in nature but can have descriptive analogs in the physical sciences. Here, we describe a law of conservation of information in network programming, and various laws of computational motion (invariants) for programming in general, along with their pedagogical utility. Invariants specify constraints on objects in abstract computational worlds, so we describe language and data abstraction employed by software developers and compare them to Floridi's concept of levels of abstraction. We also consider Floridi's structural account of reality and its fit for describing abstract computational worlds. Being abstract, such worlds are products of programmers' creative imaginations, so any “laws” in these worlds are easily broken. The worlds of computational objects need laws in the form of self-prescribed invariants, but the suspension of these laws might be creative acts. Bending the rules of abstract reality facilitates algorithm design, as we demonstrate through the example of search trees.