Coping with abstraction in object orientation with a special focus on interface classes

One of the subjects that undergraduate students learning Object Oriented (OO) design find hard to apply is the construction of class hierarchies in general, and the use of interface classes in particular. The design process requires decomposition and reconstruction of problems in order to model software classes. The common attributes and behaviors are usually modeled using class inheritance except when the common behaviors do not belong to the same class hierarchy; in such case, an interface class is preferred. In order to be able to properly design, the designer has to demonstrate the abstraction abilities on various levels. In this study, we aimed at examining the students' demonstration of abstraction levels during design of class hierarchy in general, and whether or not they use interface classes in particular. The results of the study reveal that a majority of students were able to build a reasonable class hierarchy; however, many of them did not use interface classes as a tool for expressing common behaviors. Nevertheless, all of them could identify and choose the best solution for a particular problem among four different solutions, which included the use of interface class.

[1]  B. Bloom,et al.  Taxonomy of Educational Objectives. Handbook I: Cognitive Domain , 1966 .

[2]  D. Kahneman MAPS OF BOUNDED RATIONALITY: A PERSPECTIVE ON INTUITIVE JUDGMENT AND CHOICE , 2003 .

[3]  K. Stanovich,et al.  Heuristics and Biases: Individual Differences in Reasoning: Implications for the Rationality Debate? , 2002 .

[4]  Helen Chick,et al.  Cognition in the formal modes: Research mathematics and the SOLO taxonomy , 1998 .

[5]  S. Parker Content Analysis for the Social Sciences and Humanities , 1970 .

[6]  Gordon B. Davis,et al.  IS '97: model curriculum and guidelines for undergraduate degree programs in information systems , 1996, IS '97.

[7]  Krishnaprasad Thirunarayan,et al.  Simulating multiple inheritance and generics in Java , 1999, Comput. Lang..

[8]  Bruce W. Weide,et al.  Algorithms and object-oriented programming: bridging the gap , 2002, SIGCSE '02.

[9]  Mary Beth Rosson,et al.  The Cognitive Consequences of Object-Oriented Design , 1990, Hum. Comput. Interact..

[10]  Paul White,et al.  Development of angle concepts: A framework for research , 1998 .

[11]  G. Boulton‐Lewis Teaching for quality learning at university , 2008 .

[12]  Axel Schmolitzky "Objects first, interfaces next" or interfaces before inheritance , 2004, OOPSLA '04.

[13]  David P. Tegarden,et al.  Cognitive activities in OO development , 2001, Int. J. Hum. Comput. Stud..

[14]  Ghan Bir Singh,et al.  Single versus multiple inheritance in object oriented programming , 1995, OOPS.

[15]  Ilana Lavy,et al.  Cognitive activities of abstraction in object orientation: an empirical study , 2004, SGCS.

[16]  Bill Curtis,et al.  COGNITIVE PROCESSES IN SOFTWARE DESIGN: Activities in Early, Upstream Design. , 1987 .

[17]  Uri Leron,et al.  The Rationality Debate: Application of Cognitive Psychology to Mathematics Education , 2006 .

[18]  Kevin F. Collis,et al.  Evaluating the Quality of Learning: The SOLO Taxonomy , 1977 .

[19]  Chenglie Hu When to use an interface? , 2006, SGCS.

[20]  J. Biggs,et al.  Teaching For Quality Learning At University , 1999 .

[21]  Ruth Stavy,et al.  How Students Mis/Understand Science and Mathematics: Intuitive Rules (Ways of Knowing in Science Series) , 2000 .

[22]  D. Kahneman,et al.  Heuristics and Biases: The Psychology of Intuitive Judgment , 2002 .

[23]  E. Fischbein,et al.  Intuition in Science and Mathematics: An Educational Approach , 2014 .

[24]  George Wright,et al.  The Difficulties of Learning Object-Oriented Analysis and Design: An Exploratory Study , 2002, J. Comput. Inf. Syst..

[25]  O. Holsti Content Analysis for the Social Sciences and Humanities , 1969 .

[26]  Friedrich Steimann,et al.  Towards the systematic use of interfaces in JAVA programming , 2003, PPPJ.

[27]  Michael Kölling,et al.  The Problem of Teaching Object-Oriented Programming, Part I: Languages , 1999, J. Object Oriented Program..

[28]  Antero Taivalsaari,et al.  On the notion of inheritance , 1996, CSUR.

[29]  Robert McCartney,et al.  Can graduating students design software systems? , 2006, SIGCSE '06.