skip to main content
research-article

Difficulties in Learning Inheritance and Polymorphism

Published: 01 February 2011 Publication History

Abstract

This article reports on difficulties related to the concepts of inheritance and polymorphism, expressed by a group of 22 in-service CS teachers with an experience with the procedural paradigm, as they coped with a course on OOP. Our findings are based on the analysis of tests, questionnaires that the teachers completed in the course, as well as on observations made during the course. The article suggests that the difficulties are mostly caused by the learners’ ignorance about a programming model for inheritance and polymorphism. Such a model is presented in the appendix. The article offers a classification of the difficulties into the following four clusters: (1) alternative (partial) models, (2) analogies to the use of inheritance and conversion in day-to-day life or in imperative programming, (3) lack of understanding of hierarchies and their role in inheritance, and (4) difficulties due to approaches to teaching, and their impact on the students understanding, as well as, with difficulties that arose in previous stages of learning OOP and have yet not been resolved.

References

[1]
Astrachan, O., Bruce, K., Koffman, E., Kölling, M., and Reges, S. 2005. Resolved: Objects early has failed (panel). In Proceedings of the 36th Technical Symposium on Computer Science Education (SIGCSE’05). 451--452.
[2]
Barr, M., Holden, S., Phillips, D., and Greening, T. 1999. An exploration of novice programming errors in an object-oriented environment. SIGCSE Bull. 31, 4, 42--46.
[3]
Ben-Ari, M. 2001. Constructivism in computer science education. J. Comput. Math. Sci. Teach. 20, 1, 45--74.
[4]
Benaya, T. and Zur, E. 2008. Understanding object-oriented programming concepts in an advanced programming course. In Proceedings of the 3rd International Conference on Informatics in Secondary Schools---Evolution and Perspectives: Informatics Education (ISSEP’08). Lecture Notes in Computer Science, vol. 5090, 161--170.
[5]
Berge, O., Borge, R. E., Fjuk, A., Kaasbøll, J., and Samuelsen, T. 2003a. Learning object-oriented programming. In Proceedings of the Norsk Informatikkonferanse (NIK’03).
[6]
Berge, O., Fjuk, A., Groven, A.-K., Hegna, H., and Kassabøl, J. 2003b. Comprehensive object-oriented learning---An introduction. Comput. Sci. Educ. 13, 4, 331--335.
[7]
Biddle, R. and Tempro E. 1996. Explaining inheritance: A code reusability perspective. SIGCSE Bull. 28, 1, 217--221.
[8]
Bloch, J. 2008. Effective Java 2nd Ed. Prentice Hall.
[9]
Bonau, J. and Soloway, E. 1989. Preprogramming knowledge: A major source of misconceptions in novice programmers. In Studying the Novice Programmer. E. Soloway and J. C. Spohere Eds., Lawrence Erlbaum Associates, Hillsdale, N.J., 324--353.
[10]
Burton, P. J. and Bruhn, R. E. 2003. Teaching programming in the OOP era. SIGCSE Bull. 35, 2, 111--114.
[11]
Canas, J. J., Bajo, M. T., and Gonzalvo, P. 1994. Mental models and computer programming. Int. J. Hum. Comput. Stud. 49, 5, 795--811.
[12]
Détienne, F. 2001. Software Design -- Cognitive Aspects. F. Bott, translator and editor, Springer, Berlin.
[13]
Du Boulay, B. 1986. Some difficulties of learning to program. J. Educ. Comput. Res. 2, 1, 57--73.
[14]
Du Boulay, B., O’Shea, T., and Monk, J. 1989. The black box inside the glass box: Presenting computing concepts to novices. In Studying the Novice Programmer. E. Soloway and J. C. Spohrer Eds., Lawrence Erlbaum Associates, Hillsdale, N.J., 431--446.
[15]
Driver, R. and Bell, B. 1986. Students’ thinking and learning of science: A constructivist view. School Sci. Rev. 443--456.
[16]
Entwistle, N. 2007. Conceptions of learning and the experience of understanding: Thresholds, contextual influences, and knowledge objects. In Reframing the Conceptual Change Approach in Learning and Instruction. S. Vosniadou, A. Baltas, and X. Vamvakoussi Eds., Chapter 11, Elsevier, Amsterdam, The Netherlands.
[17]
Fjuk, A., Berge, O., Benndsen, J., and Caspersen, M. E. 2004. Learning object-orientation through ICT-mediated apprenticeship. In Proceedings of the 4th International Conference on Advanced Learning Technologies (IEEE’04). 380--384.
[18]
Fleury, A. E. 2000. Programming in Java students-constructed rules. SIGCSE Bull. 32, 1, 197--201.
[19]
Fleury, A. E. 2001. Encapsulations and reuse as viewed by Java students. In Proceedings of the 32nd Technical Symposium on Computer Science Education (SIGCSE’01). 189--203.
[20]
Gal-Ezer, J., Beeri, C., Harel, D., and Yehudai, A. 1995. A high school program in computer science. IEEE Comput. 28, 10, 73--80.
[21]
Gal-Ezer, J., Zur, E., and Vilner, T. 2009. Has the paradigm shift in CS1 a harmful effect on data structures courses: A case study. In Proceedings of the 40th ACM Technical Symposium on Computer Science Education (SIGCSE’09). 126--130.
[22]
Hadar, I. and Leron, U. 2008. How intuitive is object oriented design? Comm. ACM 51, 5, 41--46.
[23]
Hadjerrouit, S. 1998. A constructivist framework for integrating the Java paradigm into the undergraduate curriculum. SIGCSE Bull. 30, 2, 43--47.
[24]
Hoc, J. M. and Nguyen-Xuan, A. 1990. Language Semantics, mental models and analogy. In Psychology of Programming. J. M. Hoc, T. R. G. Green, R. Samurcay, and D. J. Gillmore Eds., Academic Press, London. 136--157.
[25]
Holland, S., Griffiths, R., and Woodman, M. 1997. Avoiding object misconceptions. SIGCSE Bull. 29, 1, 131--134.
[26]
Holmboe, C. 1999. A cognitive framework for knowledge in informatics: The case of object orientation. In Proceedings for the 4th Conference on Innovation and Technology in Computer Science Education (SIGCSE/SIGCUE’99). 17--20.
[27]
Hong, J. 1998. The use of Java as an introductory programming language. Crossroads 4, 4, 8--13.
[28]
Lincoln, Y. S. and Guba, E. G. 2000. Paradigmatic controversies, contradictions, and emerging confluences. In Handbook of Qualitative Research 2nd Ed. N. K. Denzin and S. L. Lincoln Eds., Sage Publications, London, 163--188.
[29]
Mayer, R. E. 1989. The psychology of how novices learn computer programming. In Studying the Novice Programmer. E. Soloway and J. C. Spohrer Eds., Lawrence Erlbaum Associates, Hillsdale, N.J., 129--159.
[30]
Milne, I. and Rowe, G. 2002. Difficulties in learning and teaching programming---View of students and tutors. Educ. Inf. Technol. 7, 1, 55--66.
[31]
Or-Bach, R., and Lavy, I. 2004. Cognitive activities of abstraction in object-orientation: An empirical study. SIGCSE Bull. 36, 2, 82--86.
[32]
Pea, R. D. 1986. Language-independent conceptual “bugs” in novice programming. J. Educ. Comput. Res. 2, 1.
[33]
Ragonis, N., and Ben-Ari, M. 2005a. A long-term investigation of the comprehension of OOP concepts by novices. Comput. Sci. Educ. 15, 3, 203--221.
[34]
Ragonis, N., and Ben-Ari, M. 2005b. On understanding the statics and dynamics of object-oriented programs. In Proceedings of the 36th Technical Symposium on Computer Science Education (SIGCSE’05). 226--230.
[35]
Rath, A., and Brown, D. E. 1995. Conceptions of human-computer interaction: A model for understanding student errors. J. Educ. Comput. Res. 12, 4, 395--409.
[36]
Reges, S. 2006. Back to basics in CS1 and CS2. In Proceedings of the 37th ACM Technical Symposium on Computer Science Education (SIGCSE’09). 293--297.
[37]
Robins, A., Rountreek, J., and Rountree, N. 2003. Learning and teaching programming: A review and discussion. Comput. Sci. Educ. 13, 2, 137--172.
[38]
Sandersk, K. and Thomas, L. 2007. Checklists for grading object-oriented CS1 programs: Concepts and misconceptions. SIGCSE Bull. 39, 3.
[39]
Smith III, J. P., diSessa, A. A., and Roschelle. J. 1993. Misconceptions reconceived: A constructivist analysis of knowledge in transition. J. Learn. Sci. 3, 115--163.
[40]
Schmolitzky, A. 2006. Teaching inheritance concepts in Java. In Proceedings of the 4th International Symposium on Principles and Practice of Programming in Java (PPPJ’06). 203--207.
[41]
Sleeman, D., Putnam, R. T., Baxer J., and Kuspa, L. 1986. Pascal and high school students: A study of errors. J. Educ. Comput. Res. 2, 1, 28--45.
[42]
Vilner, T., Zur, E., and Gal-Ezer, J. 2007. Fundamental concepts of CS1: Procedural vs. object oriented paradigm---A case study. SIGCSE Bull. 39, 3.
[43]
Wiedenbeck, S., Ramalingam, V., Sarasamma, S., and Corritore, C. L. 1999. A comparison of the comprehension of object-oriented and procedural programs by novice programmers. Interact. Comput. 11, 255--282.

Cited By

View all
  • (2024)ChatGPT in the Classroom: Experimentation in a Python Class for Non-Computing Majors2024 IEEE Integrated STEM Education Conference (ISEC)10.1109/ISEC61299.2024.10665172(1-7)Online publication date: 9-Mar-2024
  • (2023)A Feasibility Study on Learning of Object-Oriented Programming Based on Fairy TalesTowards a Collaborative Society Through Creative Learning10.1007/978-3-031-43393-1_52(579-590)Online publication date: 28-Sep-2023
  • (2022)Learning Object-Oriented Programming Concepts Through Visual AnalogiesIEEE Transactions on Learning Technologies10.1109/TLT.2022.315480515:1(78-92)Online publication date: 1-Feb-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Computing Education
ACM Transactions on Computing Education  Volume 11, Issue 1
February 2011
98 pages
EISSN:1946-6226
DOI:10.1145/1921607
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 February 2011
Accepted: 01 August 2010
Revised: 01 July 2010
Received: 01 December 2009
Published in TOCE Volume 11, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Programming model
  2. analogies
  3. in-service teachers
  4. misconceptions

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)ChatGPT in the Classroom: Experimentation in a Python Class for Non-Computing Majors2024 IEEE Integrated STEM Education Conference (ISEC)10.1109/ISEC61299.2024.10665172(1-7)Online publication date: 9-Mar-2024
  • (2023)A Feasibility Study on Learning of Object-Oriented Programming Based on Fairy TalesTowards a Collaborative Society Through Creative Learning10.1007/978-3-031-43393-1_52(579-590)Online publication date: 28-Sep-2023
  • (2022)Learning Object-Oriented Programming Concepts Through Visual AnalogiesIEEE Transactions on Learning Technologies10.1109/TLT.2022.315480515:1(78-92)Online publication date: 1-Feb-2022
  • (2021)Gauge Object Oriented Programming in Student’s Learning Performance, Normalized Learning Gains and Perceived Motivation with Serious GamesInformation10.3390/info1203010112:3(101)Online publication date: 26-Feb-2021
  • (2021)Visual Analogy for Understanding Polymorphism TypesProceedings of the 23rd Australasian Computing Education Conference10.1145/3441636.3442304(48-57)Online publication date: 2-Feb-2021
  • (2020)Toward a Model of Polymorphism ComprehensionProceedings of the 51st ACM Technical Symposium on Computer Science Education10.1145/3328778.3372664(1371-1371)Online publication date: 26-Feb-2020
  • (2020)Software Analytics to Support Students in Object-Oriented Programming Tasks: An Empirical StudyIEEE Access10.1109/ACCESS.2020.30101728(132171-132187)Online publication date: 2020
  • (2019)Categorizing and ameliorating generalization-specialization design mistakes in an intermediate programming classJournal of Computing Sciences in Colleges10.5555/3344081.334408434:7(28-37)Online publication date: 1-Apr-2019
  • (2019)Combining Analogies and Virtual Reality for Active and Visual Object-Oriented ProgrammingProceedings of the ACM Conference on Global Computing Education10.1145/3300115.3309513(92-98)Online publication date: 9-May-2019
  • (2019)On the Students’ Misconceptions in Object-Oriented Language ConstructsHigher Education Learning Methodologies and Technologies Online10.1007/978-3-030-31284-8_8(97-112)Online publication date: 18-Sep-2019
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media