Abstract
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.

Similar content being viewed by others
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
Benacerraf, P. (1965). What numbers could not be. Philosophical Review, 74, 47–73.
Carrano, F. M. (2007). Data abstraction & problem solving with C++. Boston: Addison-Wesley.
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.
Colburn, T. R., Fetzer, J. H., & Rankin, T. L. (1993). Program verification: Fundamental issues in computer science. Dordrecht, The Netherlands: Kluwer Academic Publishers.
Fetzer, J. H. (1988). Program verification: The very idea. Communications of the ACM, 31(9), 1048–1063.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Boston: Addison-Wesley.
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.
Hardy, G. H. (1967). A mathematician’s apology. London: Cambridge University Press.
Kline, M. (1972). Mathematical thought from ancient to modern times. New York: Oxford University Press.
Kurose, F. K., & Ross, K. W. (2003). Computer networking: A top-down approach featuring the internet. (2nd ed.). Boston: Pearson Education.
Lewis, D. K. (1973). Counterfactuals. Cambridge, MA: Harvard University Press.
Lewis, D. K. (1986). On the plurality of worlds. Oxford: Basil Blackwell.
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.
Locke, J. (1706). An essay concerning human understanding. Illinois: Open Court Publishing (1962 reprint).
Resnik, M. D. (1997). Mathematics as a science of patterns. Oxford: Oxford University Press.
Russell, B. (1903). Principles of mathematics. Cambridge: Cambridge University Press.
Shapiro, S. (1997) Philosophy of mathematics: structure and ontology. New York: Oxford University Press.
VMware (2006). VMware Inc. http://www.vmware.com/.
Whitehead, A. N., & Russell, B. (1910). Principia mathematica. Cambridge, England: Cambridge University Press.
The Xen Virtual Machine Monitor (2006). University of Cambridge. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Colburn, T., Shute, G. Abstraction in Computer Science. Minds & Machines 17, 169–184 (2007). https://doi.org/10.1007/s11023-007-9061-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11023-007-9061-7