Abstraction, law, and freedom in computer science

Timothy R Colburn, Gary Shute

Research output: Contribution to journalArticlepeer-review

5 Scopus citations


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.

Original languageEnglish (US)
Pages (from-to)345-364
Number of pages20
Issue number3
StatePublished - Apr 1 2010


  • Abstraction
  • Computer science
  • Freedom
  • Invariants
  • Law

Fingerprint Dive into the research topics of 'Abstraction, law, and freedom in computer science'. Together they form a unique fingerprint.

Cite this