Is Abstraction the Key to Computing?

Is Abstraction the Key to Computing?

IS ABSTRACTION THE KEY TO COMPUTING? Why is it that some software engineers and computer scientists are able to produce clear, elegant designs and programs, while others cannot? Is it possible to improve these skills through education and training? Critical to these questions is the notion of abstraction. By JEFF KRAMER For over 30 years, I have been involved in teaching and research in computer science and software engineering. My teaching experience ranges from courses in programming, to distributed systems, distributed algorithms, concurrency, and software design. All these courses require that students are able to perform problem solving, conceptualization, modeling, and analysis. My experience is that the better students are clearly able to handle complexity and to produce elegant models and designs. The same students are also able to cope with the complexities of distributed algorithms, the applicability of various modeling notations, and other subtle issues. 36 April 2007/Vol. 50, No. 4 COMMUNICATIONS OF THE ACM COMMUNICATIONS OF THE ACM April 2007/Vol. 50, No. 4 37 On the other hand, there Henri Matisse manages to clearly represent the be misleading if used for other purposes. The under- are a number of students essence of his subject, a naked woman, using only ground map is sometimes misused by tourists who who are not so able. They simple lines or cutouts. His representation removes misinterpret it as an actual geographical map of Lon- tend to find distributed algo- all detail yet conveys much. In his painting “South don. The level, benefit, and value of a particular rithms very difficult, do not Wind, Clear Skies” (Red Fuji), Katsushika Hokusai abstraction depend on its purpose. appreciate the utility of mod- captures Mount Fuji (see Figure 2). Art critic Why is abstraction important in computer science eling, find it difficult to iden- (Gabrielle Farran) remarks that he uses a “perfect and software engineering? Software itself is certainly tify what is important in a balance of colour and composition rendering an abstract, and the discipline of producing software problem, and produce convo- abstract form of the mountain to capture its requires abstraction skills. Keith Devlin [2] states the luted solutions that replicate essence.” Another example is from jazz, where musi- case clearly and concisely, “Once you realize that com- the problem complexities. cians identify the essential melody or heart of the puting is all about constructing, manipulating, and Why? What is it that makes particular piece of music, and improvise around that reasoning about abstractions, it becomes clear that an the good students so able? to provide their own embellishments. One jazz important prerequisite for writing (good) computer What is lacking in the weaker musician provided the follow- ones? Is it some aspect of intel- ing apposite remark, “It is ligence? I believe the key lies in easy to make something sim- abstraction: The ability to per- ple sound complex, however form abstract thinking and to it is more difficult to make exhibit abstraction skills. something complex sound The rest of this article simple.” This difficulty is a explores this hypothesis and clear example of the challenge makes recommendations for in the application of abstrac- future work. We first discuss tion in removing extraneous what abstraction is and its detail. role in computing and other A wonderful example of the disciplines. Others, such as utility of abstraction is pro- Hazzan [5] and Devlin [2] vided by the contribution of have also discussed abstrac- Harry Beck to the renowned tion as a core skill in mathe- London Underground map. In matics and computing. 1928, the map was essentially Using findings from cogni- an overlay of the underground tive development, we explore system onto a conventional the factors affecting students’ geographical map of London ability to cope with and per- (see Figure 3a). It showed the Figure 2. Katsushika programs is the ability to handle abstractions in a pre- Hokusai, “South Wind, form abstraction. We discuss curves of the train lines and of Clear Sky (Gaif˚ kaisei) or cise manner.” Wing [11] confirms the importance of whether or not abstraction is the River Thames, and the rel- “Red Fuji,” a color abstraction in computational thinking by emphasiz- teachable and suggest that ative distances between the woodblock print, Japan, ing the need to think at multiple levels of abstraction. AD 1830–33. steps must be taken to test stations. In 1931, Beck pro- Ghezzi et al. [4] identify abstraction as one of the fun- abstraction skills as a means duced the first abstract, damental principles of software engineering in order Figure 1. Henri Matisse, of validating our hypothesis, “Naked Blue IV,” 1952; • The act or process of leaving out of consideration schematic representation, simplifying the curves to to master complexity. The removal of unnecessary checking our teaching tech- paper cutouts. one or more properties of a complex object so as just horizontal, vertical and diagonal lines and where detail is obvious in requirements engineering and niques and even, perhaps, to attend to others. the distances between stations were no longer propor- software design. selecting our students. tional to the geographical distances (see Figure 3b). Requirements elicitation involves identifying the The second emphasizes the process of generalization This form of simplified representation or abstrac- critical aspects of the environment and the required ABSTRACTION:WHAT IS IT?WHY IS IT SO IMPORTANT? to identify the common core or essence based on the tion is ideally fit for the purpose of navigating around system while neglecting the irrelevant. Design From the definitions of abstraction [10], we focus definitions: the London Underground. Not only is this transit requires that one avoid unnecessary implementation on two particularly pertinent aspects.1 The first abstraction still used today, it has been adopted by constraints. For instance, in compiler design, one emphasizes the process of removing detail to sim- • The process of formulating general concepts by transportation agencies in numerous countries. often employs an abstract syntax to focus on the plify and focus attention based on the definitions: abstracting common properties of instances, and; Indeed, the level of abstraction had to be carefully essential features of the language constructs, and •A general concept formed by extracting common selected so as to include only the required details but designs the compiler to produce intermediate code for • The act of withdrawing or removing something, features from specific examples. neglect the unnecessary—too abstract and the map an idealized abstract machine to retain flexibility and and; would not provide sufficient information for the pur- avoid unnecessary machine dependence. The general- Abstraction is widely used in other disciplines such pose; too detailed and the map becomes confusing ization aspect of abstraction can be clearly seen in pro- 1 © Succession H. Matisse/DACS 2005 See [3] for an interesting discussion on the faces of abstraction. as art and music. For instance, as shown in Figure 1, and less comprehensible. Like any abstraction, it can gramming with the use of data abstractions and © The Trustees of the British Museum 38 April 2007/Vol. 50, No. 4 COMMUNICATIONS OF THE ACM COMMUNICATIONS OF THE ACM April 2007/Vol. 50, No. 4 39 On the other hand, there Henri Matisse manages to clearly represent the be misleading if used for other purposes. The under- are a number of students essence of his subject, a naked woman, using only ground map is sometimes misused by tourists who who are not so able. They simple lines or cutouts. His representation removes misinterpret it as an actual geographical map of Lon- tend to find distributed algo- all detail yet conveys much. In his painting “South don. The level, benefit, and value of a particular rithms very difficult, do not Wind, Clear Skies” (Red Fuji), Katsushika Hokusai abstraction depend on its purpose. appreciate the utility of mod- captures Mount Fuji (see Figure 2). Art critic Why is abstraction important in computer science eling, find it difficult to iden- (Gabrielle Farran) remarks that he uses a “perfect and software engineering? Software itself is certainly tify what is important in a balance of colour and composition rendering an abstract, and the discipline of producing software problem, and produce convo- abstract form of the mountain to capture its requires abstraction skills. Keith Devlin [2] states the luted solutions that replicate essence.” Another example is from jazz, where musi- case clearly and concisely, “Once you realize that com- the problem complexities. cians identify the essential melody or heart of the puting is all about constructing, manipulating, and Why? What is it that makes particular piece of music, and improvise around that reasoning about abstractions, it becomes clear that an the good students so able? to provide their own embellishments. One jazz important prerequisite for writing (good) computer What is lacking in the weaker musician provided the follow- ones? Is it some aspect of intel- ing apposite remark, “It is ligence? I believe the key lies in easy to make something sim- abstraction: The ability to per- ple sound complex, however form abstract thinking and to it is more difficult to make exhibit abstraction skills. something complex sound The rest of this article simple.” This difficulty is a explores this hypothesis and clear example of the challenge makes recommendations for in the application of abstrac- future work. We first discuss tion in removing extraneous what abstraction is and its detail. role in computing and other A wonderful example of the disciplines. Others, such as utility of abstraction is pro- Hazzan [5] and Devlin [2] vided by the contribution of have also discussed abstrac- Harry Beck to the renowned tion as a core skill in mathe- London Underground map. In matics and computing.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us