Is abstraction the key to computing?

  title={Is abstraction the key to computing?},
  author={Jeff Kramer},
  journal={Commun. ACM},
  • J. Kramer
  • Published 2007
  • Computer Science
  • Commun. ACM
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. 

Figures and Topics from this paper

Teaching Abstraction
Many technical disciplines require abstraction skills, such as the ability to deduce general rules and principles from sets of examples. These skills are the basis for creating solutions that addressExpand
The role of abstraction in software engineering
The role of abstraction in dealing with complexity in the software engineering process is explored, to discuss how the use of different levels of abstraction may facilitate performance of different activities, and to examine whether abstraction skills can be taught. Expand
Orit Hazzan ' s Column Abstraction in Computer Science & Software Engineering : A Pedagogical Perspective This column is coauthored with
ion in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London
Teaching abstraction in introductory courses
This paper focuses on the problems that novices experience when they first encounter abstraction, and analysis of three assignments from introductory courses leads to a number of guidelines that can be used by instructors to supportNovices learning abstraction. Expand
The role of abstraction in software engineering
This workshop explores the concept of abstraction in software engineering at the individual, team and organization level. The aim is to explore the role of abstraction in dealing with complexity inExpand
Teaching formal specifications What about abstraction ?
One of the issues in teaching formal specifications is abstraction. When confronted with the same exercise or case study specification, some students will address the abstract problem, while othersExpand
With an Open Mind: How to Write Good Models
The experience with incomplete models, the types of changes that were made later, and the defects that were found with the improved models are described. Expand
Object oriented quality in introductory programming education
Teaching and learning introductory object oriented problem so that students can learn to solve prob-lem solving and programming problems is an acknowledged difficulty. Expand
Measuring Levels of Abstraction in Software Development
The concept of abstraction as applied to software engineering is explored, a conceptual metric called levels-ofabstraction, LOA, is defined, and some attributes of LOA are shown. Expand
Prolog as the first programming language
The adoption of logic programming in an introductory course on computer programming offers several rewards. The higher conceptual level of this programming paradigm guides students to an earlyExpand


Reducing Abstraction Level When Learning Abstract Algebra Concepts
The theme of reducing abstraction is examined, based on three interpretations for levels of abstraction discussed in mathematics education research literature, ways in which students reduce abstraction level are analyzed and exemplified. Expand
Computational thinking
It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use.
Concurrency State Models and Java Programs
This book is an introductory text to the ideas, concepts, and topics of concurrency and provides a systematic treatment of concepts, as means to rigorously specify and model concurrent systems, with Java examples to animate and illustrate the concepts discussed. Expand
Educational psychology for teachers
This course examines education through a psychological lens, including information on how teachers can apply principles from educational psychology to their teaching. We will utilize theories onExpand
[Psychology of the child].
The psychology of the child will lead you to always think more and more, and in this case, this book will be always right for you. Expand
The ACM/IEEE Computing Curricula: Software Engineering
  • The ACM/IEEE Computing Curricula: Software Engineering
  • 2004
Fundamentals of Software Engineering, 2nd Edition
  • Pearson International,
  • 2003
Fundamentals of Software Engineering. 2 nd edition
  • Fundamentals of Software Engineering. 2 nd edition
  • 2003
Fundamentals of software engineering (2. ed.)
Piaget's theory of cognitive development. Educational Psychology Interactive
  • Piaget's theory of cognitive development. Educational Psychology Interactive
  • 2003