Minds and Machines

, Volume 17, Issue 2, pp 169–184

Abstraction in Computer Science



We characterize abstraction in computer science by first comparing the fundamental nature of computer science with that of its cousin mathematics. We consider their primary products, use of formalism, and abstraction objectives, and find that the two disciplines are sharply distinguished. Mathematics, being primarily concerned with developing inference structures, has information neglect as its abstraction objective. Computer science, being primarily concerned with developing interaction patterns, has information hiding as its abstraction objective. We show that abstraction through information hiding is a primary factor in computer science progress and success through an examination of the ubiquitous role of information hiding in programming languages, operating systems, network architecture, and design patterns.


Abstraction Computer science Information hiding Mathematics 


  1. Benacerraf, P. (1965). What numbers could not be. Philosophical Review, 74, 47–73.CrossRefGoogle Scholar
  2. Carrano, F. M. (2007). Data abstraction & problem solving with C++. Boston: Addison-Wesley.Google Scholar
  3. Cohen, M. R., & Nagel, E. (1953). The nature of a logical or mathematical system. In H. Feigl & M. Brodbeck (Eds.), Readings in the philosophy of science (pp. 129–147). New York: Appleton-Century-Crofts.Google Scholar
  4. Colburn, T. R., Fetzer, J. H., & Rankin, T. L. (1993). Program verification: Fundamental issues in computer science. Dordrecht, The Netherlands: Kluwer Academic Publishers.MATHGoogle Scholar
  5. Fetzer, J. H. (1988). Program verification: The very idea. Communications of the ACM, 31(9), 1048–1063.CrossRefGoogle Scholar
  6. Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Boston: Addison-Wesley.Google Scholar
  7. Hailperin, M., Kaiser, B., & Knight, K. (1999). Concrete abstractions: An introduction to computer science. (Pacific Grove, CA: PWS Publishing). Also available online: http://www.gustavus.edu/+max/concrete-abstractions.html.Google Scholar
  8. Hardy, G. H. (1967). A mathematician’s apology. London: Cambridge University Press.MATHGoogle Scholar
  9. Kline, M. (1972). Mathematical thought from ancient to modern times. New York: Oxford University Press.MATHGoogle Scholar
  10. Kurose, F. K., & Ross, K. W. (2003). Computer networking: A top-down approach featuring the internet. (2nd ed.). Boston: Pearson Education.Google Scholar
  11. Lewis, D. K. (1973). Counterfactuals. Cambridge, MA: Harvard University Press.Google Scholar
  12. Lewis, D. K. (1986). On the plurality of worlds. Oxford: Basil Blackwell.Google Scholar
  13. Lindholm, T., & Yellin, F. (1999). The Java virtual machine specification (2nd ed.). http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html.Google Scholar
  14. Locke, J. (1706). An essay concerning human understanding. Illinois: Open Court Publishing (1962 reprint).Google Scholar
  15. Resnik, M. D. (1997). Mathematics as a science of patterns. Oxford: Oxford University Press.MATHGoogle Scholar
  16. Russell, B. (1903). Principles of mathematics. Cambridge: Cambridge University Press.MATHGoogle Scholar
  17. Shapiro, S. (1997) Philosophy of mathematics: structure and ontology. New York: Oxford University Press.Google Scholar
  18. VMware (2006). VMware Inc. http://www.vmware.com/.Google Scholar
  19. Whitehead, A. N., & Russell, B. (1910). Principia mathematica. Cambridge, England: Cambridge University Press.MATHGoogle Scholar
  20. The Xen Virtual Machine Monitor (2006). University of Cambridge. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/.Google Scholar

Copyright information

© Springer Science+Business Media B.V. 2007

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of MinnesotaDuluthUSA

Personalised recommendations