Object-Oriented Design and Programming: An Investigation of Novices’ Conceptions on Objects and Classes

The Object-Oriented Programming (OOP) technique is nowadays the most popular programming technique among tertiary education institutions. However, learning OOP is a cognitively demanding task for undergraduate students. Several difficulties and misconceptions have been recorded in the literature for both OOP concepts and languages, mainly Java. This article focuses on reviewing and advancing research on the most fundamental OOP concepts, namely, the concepts of “object” and “class” and their role during program execution. The results of a long-term investigation on the subject are presented, focusing on a study exploring undergraduate students’ conceptions on “objects” and “classes.” The study advances related research on categories of conceptions on “objects” and “classes” by providing quantitative results, in addition to qualitative results, regarding the frequency of the recorded conceptions. Nearly half the students seem to comprehend the modeling and static/dynamic aspects of the concepts “object” and “class.” Implications for achieving a deep conceptual understanding of text, action, and modeling aspects of these fundamental concepts are also discussed. Information regarding the programming environments utilized in the course and key features of the applied teaching approach are presented, in order to facilitate both a better understanding of the context and a better employment of the results of the presented study. Finally, proposals for enhancing the contribution of this and similar studies are made.

[1]  Stelios Xinogalos,et al.  The hands-on activities of the programming microworld objectKarel , 2005, ITiCSE.

[2]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001 .

[3]  Peter Brusilovsky,et al.  Mini-languages: a way to learn programming principles , 2004, Education and Information Technologies.

[4]  Marja Kuittinen,et al.  A study of the development of students' visualizations of program state during an elementary object-oriented programming course , 2008, JERC.

[5]  Stelios Xinogalos,et al.  Re-designing an OOP course based on BlueJ , 2007, Seventh IEEE International Conference on Advanced Learning Technologies (ICALT 2007).

[6]  Mordechai Ben-Ari,et al.  On understanding the statics and dynamics of object-oriented programs , 2005, SIGCSE '05.

[7]  Anthony V. Robins,et al.  My Program is Correct But it Doesn t Run: A Preliminary Investigation of Novice Programmers Problems , 2005, ACE.

[8]  Stelios Xinogalos,et al.  Programming techniques and environments in a technology management department , 2012, BCI '12.

[9]  C. Bonwell,et al.  Active Learning: Creating Excitement in the Classroom. ERIC Digest. , 1991 .

[10]  Stelios Xinogalos,et al.  An introduction to object-oriented programming with a didactic microworld: objectKarel , 2006, Comput. Educ..

[11]  Michael Kölling,et al.  The Greenfoot Programming Environment , 2010, TOCE.

[12]  Neena Thota,et al.  Holistic approach to learning and teaching introductory object-oriented programming , 2010, Comput. Sci. Educ..

[13]  Stelios Xinogalos Object-Oriented Programming - What do Students Think of Objects and Classes? , 2011 .

[14]  Anna Eckerdal,et al.  Relationship between text and action conceptions of programming: a phenomenographic and quantitative perspective , 2011, ITiCSE '11.

[15]  Xinogalos Stelios,et al.  Using hands-on activities for motivating students with OOP concepts before they are asked to implement them , 2005 .

[16]  Orit Hazzan,et al.  Partonomy and taxonomy in object-oriented thinking: junior high school students' perceptions of object-oriented basic concepts , 2006, ITiCSE-WGR '06.

[17]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[18]  Lynda Thomas,et al.  Identifying novice difficulties in object oriented design , 2006, ITICSE '06.

[19]  Juha Sorva,et al.  Notional machines and introductory programming education , 2013, TOCE.

[20]  Deborah J. Armstrong The quarks of object-oriented development , 2006, CACM.

[21]  Richard E. Pattis,et al.  Karel ++ A Gentle Introduction to the Art of Object-Oriented Programming , 1996 .

[22]  C. Bonwell,et al.  Active learning : creating excitement in the classroom , 1991 .

[23]  Xinogalos Stelios,et al.  The hands-on activities of the programming microworld objectKarel , 2005 .

[24]  Jakob Nielsen,et al.  Enhancing the explanatory power of usability heuristics , 1994, CHI '94.

[25]  Leen-Kiat Soh,et al.  An integrated framework for improved Computer Science Education: Strategies, implementations, and results , 2007, Comput. Sci. Educ..

[26]  Stelios Xinogalos,et al.  A comparison of two object-oriented programming environments for novices , 2007 .

[27]  Stelios Xinogalos,et al.  An Evaluation of Knowledge Transfer from Microworld Programming to Conventional Programming , 2012 .

[28]  Mark Woodman,et al.  Avoiding object misconceptions , 1997, SIGCSE '97.

[29]  Stelios Xinogalos,et al.  Using hands-on activities for motivating students with OOP concepts before they are asked to implement them , 2005, ITiCSE.

[30]  Mordechai Ben-Ari,et al.  A long-term investigation of the comprehension of OOP concepts by novices , 2005, Comput. Sci. Educ..

[31]  Robert McCartney,et al.  Student understanding of object-oriented programming as expressed in concept maps , 2008, SIGCSE '08.

[32]  Kate Sanders,et al.  Checklists for grading object-oriented CS1 programs: concepts and misconceptions , 2007, ITiCSE.

[33]  Susan Wiedenbeck,et al.  An empirical study of novice program comprehension in the imperative and object-oriented styles , 1997, ESP '97.

[34]  CORPORATE The Joint Task Force on Computing Curricula,et al.  Computing curricula 2001 , 2001, JERC.

[35]  J. Carter,et al.  Object oriented students? (poster) , 1998, ITiCSE '98.

[36]  Michael Thuné,et al.  Novice Java programmers' conceptions of "object" and "class", and variation theory , 2005, ITiCSE '05.

[37]  Jens Bennedsen,et al.  Programming in context: a model-first approach to CS1 , 2004, SIGCSE '04.

[38]  Michael Kölling,et al.  Objects First with Java - A Practical Introduction Using BlueJ (5th Edition) , 2002 .

[39]  Stelios Xinogalos,et al.  A Long-Term Evaluation and Reformation of an Object Oriented Design and Programming Course , 2009, 2009 Ninth IEEE International Conference on Advanced Learning Technologies.