<<

IS ABSTRACTION THE KEY TO ? 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 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 , 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 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 “South don. The level, benefit, and value of a particular rithms very difficult, do not Wind, Clear Skies” ( 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 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 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 by transportation agencies in numerous countries. often employs an abstract 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 constructs, and •A general 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 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. 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 In fact, abstraction is fun- , there is general support for his underlying are not only capable of manipulating symbolic and damental to . Further studies and experimental evidence sup- numerical formalisms, but also skilled at moving and engineering in general, ports Piaget’s hypothesis that children progress from an informal and complicated real world to a playing a critical part in the through the first three stages of development; how- simplified abstract model. production of models for ever it appears that not all adolescents progress to the The ACM/IEEE Computing Curricula: Software analysis and in the produc- formal operations stage as they mature. Biological Engineering Volume 2004 [1] gives some recognition tion of sound engineering development may be a prerequisite, but tests con- of the importance of abstraction by including aspects solutions. ducted on adolescent and adult populations indicate such as encapsulation, levels of abstraction, general- that only 30% to 35% of adolescents achieve the for- ization and class abstractions; however, it is software WHAT DETERMINES OUR mal operations stage, that some adults never do [7], modeling and analysis that receives major attention. STUDENTS’ABILITIES? and that particular environmental conditions and Formal modeling and analysis is a powerful means Do our students’ powers of training may be required for adolescents and adults for practicing abstract thinking and consolidating abstraction depend on their to achieve this stage. students’ ability to apply abstraction. Modeling is the cognitive development? Can most important engineering technique; models help we improve their abilities IS ABSTRACTION TEACHABLE? us to understand and analyze large and complex and, if so, how? Is it possible Although the low attainment figures for Piaget’s for- problems. Since models are a simplification of to teach abstract thinking mal operations stage may be rather disappointing, intended to promote and reasoning, and abstraction skills? there does seem to be some hope of improving stu- students must exercise all their abstraction skills to (1896–1980) dents’ achievement by creating the right educational models that are fit for purpose. They must provided the foundations for environment. For instance, for adolescents Huitt also be capable of mapping between reality and the an understanding of the cog- and Hummel [6] (based on Woolfolk and McCune- abstraction, so as to appreciate the limitations of the nitive development of chil- Nicolich [12]) recommend using teaching tech- abstraction and to interpret the implications of dren from infants to niques such as giving students the opportunity to model analysis. adulthood [6, 9]. Based on explore many hypothetical questions—encouraging Student motivation can be enhanced by present- case studies, he derived four students to explain how they solve problems—and ing the mathematics of the modeling formalism in a stages for development: sen- teaching broad concepts in preference to just facts. problem-oriented manner, and can benefit by the sorimotor, pre-operational, What about course content and curricula? At provision of tool support (such as model checking) concrete operational, and Imperial College, the four-year Masters of Engineer- for reasoning and analysis. formal operational. The first ing degree in computing offers over 60 different My personal experience teaching model building two stages are from infancy course modules, including a number of optional spe- and analysis as part of a course on concurrency [8] to early childhood (about the cialization courses in the third and fourth years. has been very encouraging. Given a model, students age of seven), where intelli- None of these courses is a course on abstraction, yet find it very helpful in clarifying the important aspects gence is roughly indicated by all rely on or utilize abstraction to explain, model, of the problem and in using a model checking tool to motor activity and then by specify, or solve problems! This seems to con- reason about its properties and behavior. However, language and early firm that abstraction is an essential aspect of com- some still seem to find it extremely difficult to con- manipulation respectively. puting, but that it must be taught indirectly through struct the models themselves. It is not enough to The third is the concrete other topics. think about what they want to model, they need to operational stage, from about Our anecdotal experience is that mathematics is an think about how they are going to use that model. seven to 12, where intelli- excellent vehicle for teaching abstract thinking. In What is the purpose of the model? Though capable of gence is roughly indicated by our early years, when there was less mathematical abstract thinking and reasoning, these students seem a grasp of conservation of content in our curricula for undergraduate courses, to lack the skills to apply abstraction. matter, of and an the students appeared to lack abstraction skills and classes in object-oriented programming. Abstract Figure 3. The London ability for classification of were less able to deal with complex problems. Devlin WHAT DO WE NEED TO DO? Underground Map (a) the interpretation for program analysis is another exam- 1928 map and (b) the 1933 concrete objects. The fourth confirms this experience by remarking, “The main If abstraction is a key skill for computing, we should ple of generalization, where the concrete program map by Harry Beck. is the formal operational benefit of and doing mathematics is not the focus more directly on ensuring that our teaching is domain is mapped to an abstract domain to capture stage, from around 12 to specific content; rather it’s the fact that it develops effective and that computing professionals have ade- the of the computation for program adulthood, where the ability to reason precisely and analytically about quate abstraction skills. analysis. indicate an ability to think abstractly, systematically, formally defined abstract structures” [2]. More What has been presented here is mostly anecdotal, Abstraction skills are essential in the construction and hypothetically, and to use related to detailed supporting arguments are provided by with some supporting evidence from the literature. of appropriate models, designs, and implementations abstract concepts. This is the crucial stage at which Devlin and others in Communications’ special section How can we put this on a more scientific footing and that are fit for the particular purpose at hand. Abstract individuals are capable of thinking abstractly and sci- “Why Students Need Math” [2]. The case in favor of improve our understanding of the situation? As in all thinking is essential for manipulating and reasoning entifically. a mathematical treatment of computing and the scientific and engineering endeavors, before we can about abstractions, be they formal models for analysis Although there is some criticism concerning the inclusion of mathematical topics in the curriculum is control or effect, we must first measure. The aim is to

London’s Transport Museumor © Transport for London programs in a programming language. way Piaget conducted his research and derived his strong. However, in computing, it is crucial students gather the following data:

40 April 2007/Vol. 50, No. 4 COMMUNICATIONS OF THE ACM COMMUNICATIONS OF THE ACM April 2007/Vol. 50, No. 4 41 In fact, abstraction is fun- theory, there is general support for his underlying are not only capable of manipulating symbolic and damental to mathematics ideas. Further studies and experimental evidence sup- numerical formalisms, but also skilled at moving and engineering in general, ports Piaget’s hypothesis that children progress from an informal and complicated real world to a playing a critical part in the through the first three stages of development; how- simplified abstract model. production of models for ever it appears that not all adolescents progress to the The ACM/IEEE Computing Curricula: Software analysis and in the produc- formal operations stage as they mature. Biological Engineering Volume 2004 [1] gives some recognition tion of sound engineering development may be a prerequisite, but tests con- of the importance of abstraction by including aspects solutions. ducted on adolescent and adult populations indicate such as encapsulation, levels of abstraction, general- that only 30% to 35% of adolescents achieve the for- ization and class abstractions; however, it is software WHAT DETERMINES OUR mal operations stage, that some adults never do [7], modeling and analysis that receives major attention. STUDENTS’ABILITIES? and that particular environmental conditions and Formal modeling and analysis is a powerful means Do our students’ powers of training may be required for adolescents and adults for practicing abstract thinking and consolidating abstraction depend on their to achieve this stage. students’ ability to apply abstraction. Modeling is the cognitive development? Can most important engineering technique; models help we improve their abilities IS ABSTRACTION TEACHABLE? us to understand and analyze large and complex and, if so, how? Is it possible Although the low attainment figures for Piaget’s for- problems. Since models are a simplification of reality to teach abstract thinking mal operations stage may be rather disappointing, intended to promote understanding and reasoning, and abstraction skills? there does seem to be some hope of improving stu- students must exercise all their abstraction skills to Jean Piaget (1896–1980) dents’ achievement by creating the right educational construct models that are fit for purpose. They must provided the foundations for environment. For instance, for adolescents Huitt also be capable of mapping between reality and the an understanding of the cog- and Hummel [6] (based on Woolfolk and McCune- abstraction, so as to appreciate the limitations of the nitive development of chil- Nicolich [12]) recommend using teaching tech- abstraction and to interpret the implications of dren from infants to niques such as giving students the opportunity to model analysis. adulthood [6, 9]. Based on explore many hypothetical questions—encouraging Student motivation can be enhanced by present- case studies, he derived four students to explain how they solve problems—and ing the mathematics of the modeling formalism in a stages for development: sen- teaching broad concepts in preference to just facts. problem-oriented manner, and can benefit by the sorimotor, pre-operational, What about course content and curricula? At provision of tool support (such as model checking) concrete operational, and Imperial College, the four-year Masters of Engineer- for reasoning and analysis. formal operational. The first ing degree in computing offers over 60 different My personal experience teaching model building two stages are from infancy course modules, including a number of optional spe- and analysis as part of a course on concurrency [8] to early childhood (about the cialization courses in the third and fourth years. has been very encouraging. Given a model, students age of seven), where intelli- None of these courses is a course on abstraction, yet find it very helpful in clarifying the important aspects gence is roughly indicated by all rely on or utilize abstraction to explain, model, of the problem and in using a model checking tool to motor activity and then by specify, reason or solve problems! This seems to con- reason about its properties and behavior. However, language and early symbol firm that abstraction is an essential aspect of com- some still seem to find it extremely difficult to con- manipulation respectively. puting, but that it must be taught indirectly through struct the models themselves. It is not enough to The third is the concrete other topics. think about what they want to model, they need to operational stage, from about Our anecdotal experience is that mathematics is an think about how they are going to use that model. seven to 12, where intelli- excellent vehicle for teaching abstract thinking. In What is the purpose of the model? Though capable of gence is roughly indicated by our early years, when there was less mathematical abstract thinking and reasoning, these students seem a grasp of conservation of content in our curricula for undergraduate courses, to lack the skills to apply abstraction. matter, of causality and an the students appeared to lack abstraction skills and classes in object-oriented programming. Abstract Figure 3. The London ability for classification of were less able to deal with complex problems. Devlin WHAT DO WE NEED TO DO? Underground Map (a) the interpretation for program analysis is another exam- 1928 map and (b) the 1933 concrete objects. The fourth confirms this experience by remarking, “The main If abstraction is a key skill for computing, we should ple of generalization, where the concrete program map by Harry Beck. is the formal operational benefit of learning and doing mathematics is not the focus more directly on ensuring that our teaching is domain is mapped to an abstract domain to capture stage, from around 12 to specific content; rather it’s the fact that it develops effective and that computing professionals have ade- the semantics of the computation for program adulthood, where individuals the ability to reason precisely and analytically about quate abstraction skills. analysis. indicate an ability to think abstractly, systematically, formally defined abstract structures” [2]. More What has been presented here is mostly anecdotal, Abstraction skills are essential in the construction and hypothetically, and to use symbols related to detailed supporting arguments are provided by with some supporting evidence from the literature. of appropriate models, designs, and implementations abstract concepts. This is the crucial stage at which Devlin and others in Communications’ special section How can we put this on a more scientific footing and that are fit for the particular purpose at hand. Abstract individuals are capable of thinking abstractly and sci- “Why Students Need Math” [2]. The case in favor of improve our understanding of the situation? As in all thinking is essential for manipulating and reasoning entifically. a mathematical treatment of computing and the scientific and engineering endeavors, before we can about abstractions, be they formal models for analysis Although there is some criticism concerning the inclusion of mathematical topics in the curriculum is control or effect, we must first measure. The aim is to

London’s Transport Museumor © Transport for London programs in a programming language. way Piaget conducted his research and derived his strong. However, in computing, it is crucial students gather the following data:

40 April 2007/Vol. 50, No. 4 COMMUNICATIONS OF THE ACM COMMUNICATIONS OF THE ACM April 2007/Vol. 50, No. 4 41 Measure students abstraction abilities annually while engineering to elicit the critical aspects of the envi- at college. ronment and required system while neglecting the unimportant. At design time, we must articulate the This could be used to check whether or not their software and component functionalities ability correlates with their grades, relative to others that satisfy functional and non-functional require- in their year. Assuming that our conventional grad- ments while avoiding unnecessary implementation ing techniques—coursework, laboratory work and constraints. Even at the implementation stage we examinations—are indicative of a student’s ability in use data abstraction and classes so as to generalize computing, this would help to gain confidence that solutions. abstraction is a key indicator of ability. A second This article proposes the reason that some software purpose of such testing is that it would provide an engineers and computer scientists are able to produce alternative means for checking students’ abilities. clear, elegant designs and programs, while others can- Finally, it could also help to assess the efficacy of our not, is attributable to their abstraction skills. I argue teaching techniques, ensuring that students of all that a sound understanding of the concept of abstrac- abilities do improve as they progress through the tion and its importance in software engineering, and degree course. the means to teach and to test abstraction skills are cru- cial to the future of our profession. The primary need Measure students abstraction abilities at the time of is for a set of abstraction Tests for checking student application to study computing. progress, checking our teaching techniques, and poten- tially as an aid for student admissions selection. c C urrently, entry is based almost solely on school grades. Abstraction ability could potentially be used References 1. The ACM/IEEE Computing Curricula: Software Engineering (2004); to help eliminate those students that are not suitable www.computer.org/education/cc2001. or less likely to perform well, and to select those who 2. Devlin, K. Why universities require computer science students to take math, Comm of ACM 46, 9 (Sept. 2003), 37–39. are not just academically capable, but that have a real 3. Frorer, P., Hazzan, O. and Manes, M. Revealing the faces of abstrac- aptitude for computing and software engineering. tion. International J. Computers for Mathematical Learning. Kluwer Conducting these experiments and collecting this Academic Publishers, 1997, 217–228. 4. Ghezzi, C., Jazayeri, M. and Mandrioli, D. Fundamentals of Software data depends on the availability of good abstraction Engineering, 2nd Edition. Pearson International, NJ, 2003. tests for measuring students’ abstract thinking and 5. Hazzan, O. Reducing abstraction level when learning abstract algebra concepts. Educational Studies in Mathematics 40. Kluwer Academic abstraction skills. Unfortunately, we have been unable Publishers, 1999, 71–90. to find any existing appropriate tests. Tests for the for- 6. Huitt, W. and Hummel, J. Piaget’s theory of cognitive development. mal operations stage focus mainly on logical reasoning Educational Psychology Interactive. Valdosta University, Valdosta, GA, 2003. and are not appropriate for testing abstraction skills 7. Kuhn, D., Langer, J., Kohlberg, L., and Haan, N.S. (1977). The devel- nor capable of distinguishing between the abilities of opment of formal operations in logical and moral judgment. Genetic students at college level. Orit Hazzan, of the Depart- Psychology Monographs 95 (1977), 97–188. 8. Magee, J. and Kramer, J. Concurrency—State Models and Java Pro- ment of Education in Science and Technology at the grams, 2nd Edition. John Wiley & Sons, Chichester, UK, 2006. Technion, has recommended that a specific set of test 9. Piaget, J. and Inhelder, B. The Psychology of the Child. Routledge & Kegan Paul, 1969. questions be constructed, including sufficiently differ- 10. Webster’s Third New International Dictionary, 1966. ent kinds of tasks and descriptions, supporting the col- 11. Wing, J.M. Computational thinking, Comm of ACM 49, 3 (Mar. lection of both quantitative and qualitative data, and 2006), 33–35. 12. Woolfolk and McCune-Nicolich. Educational Psychology for Teachers, including open-ended questions and interviews. 2nd Edition. Prentice-Hall, Englewood Cliffs, NJ, 1984. These tests should examine different forms of abstraction, different levels of abstraction and differ- ent purposes for those abstractions. This must be our next step. Only then can we be more definitive as to Jeff Kramer ([email protected]) is dean of the Faculty of the criticality of abstraction in computing and of our Engineering and a professor in the Department of Computing at ability to teach it. For instance, we should be able to Imperial College London. confirm or refute that a particular course, such as for- Permission to make digital or hard copies of all or part of this work for personal or class- mal modeling and analysis, is indeed an effective room use is granted without fee provided that copies are not made or distributed for means for teaching abstraction. profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. CONCLUSION Like others, I believe that abstraction is a key skill for computing. It is essential during requirements © 2007 ACM 0001-0782/07/0400 $5.00

42 April 2007/Vol. 50, No. 4 COMMUNICATIONS OF THE ACM