Understanding Object Oriented Programming Concepts in an Advanced Programming Course

  • Tamar Benaya
  • Ela Zur
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5090)


Teaching Object Oriented Programming (OOP) is a difficult task, both for teachers who have to find the best way to illustrate the concepts and for students who have to understand them. Although the OOP paradigm and its concepts reflect the "real world", it has been shown that students find hard to understand and internalize the OOP concepts such as encapsulation, inheritance and polymorphism. This paper describes difficulties in understanding OOP in an Advanced Java course given at the Computer Science Department of the Open University of Israel. We present a typical question which focuses on several aspects of OOP. We discuss the students’ answers and point out typical hardships in grasping the topic.


Object Oriented Programming Inheritance Encapsulation Polymorphism 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    The Open University of Israel website,
  2. 2.
    Benaya, T., Zur, E.: Website Usage in a Computer Science Course Given in a Distance Learning Environment. European Journal of Open, Distance and E-Learning (2007/I)Google Scholar
  3. 3.
    Joint IEEE Computing Society/ACM Task Force on Computing Curricula. Computing Curricula 2001 Final Report (2001),
  4. 4.
    Deitel, H.M., Deitel, P.J.: Java How to Program for Program, 6th edn. Pearson Education, London (2005)Google Scholar
  5. 5.
    Teif, M., Hazzan, O.: Partonomy and Taxonomy in Object-Oriented Thinking: Junior High School Students’ Perception of Object Oriented Basic Concepts. ACM SIGCSE Bulletin 38(4), 55–60 (2006)CrossRefGoogle Scholar
  6. 6.
    Holland, S., Griffiths, R., Woodman, M.: Avoiding Object Misconceptions. In: Proceedings of the 28th SIGCSE, pp. 131–134 (1997)Google Scholar
  7. 7.
    Ragonis, N., Ben-Ari, M.: A Long-Term Investigation of the Comprehension of OOP Concepts by Novices. Computer Science Education 5(3), 203–221 (2005)CrossRefGoogle Scholar
  8. 8.
    Fleury, A.E.: Encapsulation and Reuse as Viewed by Java Students. ACM SIGCSE Bulletin 33(1), 189–193 (2001)CrossRefMathSciNetGoogle Scholar
  9. 9.
    Ragonis, N., Ben-Ari, M.: On Understanding the Statics and Dynamics of Object-Oriented Programs. In: ACM SIGCSE, pp. 226–230 (2005)Google Scholar
  10. 10.
    Georgantaki, R., Psaromiligkos, Y., Retalis, S., Dendrinos, V., Adamopoulos, D.: Developing a Blended Learning Strategy for Teaching Object-Oriented Programming Using the ’Model First’ Approach. In: Proceedings of Informatics Education Europe II – IEEII, pp. 87–96 (2007)Google Scholar
  11. 11.
    Milne, J., Rowe, G.: Difficulties in Learning and Teaching Programming – Views of Students and Tutors. Education and Information Technologies 7(1), 55–66 (2002)CrossRefGoogle Scholar
  12. 12.
    Murray, K.A., Heines, J.M., Kolling, M., Moore, T., Wagner, P.j., Schaller, N.C., Trono, J.A.: Experiences with IDEs and Java Teaching: What Works and What Doesn’t. ACM SIGCSE Bulletin 35(3), 215–216 (2003)CrossRefGoogle Scholar
  13. 13.
    Lahtinen, E.: Integrating the Use of Visualizations to Teaching Programming. Methods, Materials and Tools for Programming Education, pp. 7–13 (2006),
  14. 14.
    Roberts, E.: An Overview of MiniJava. ACM SIGCSE Bulletin 33(1), 1–5 (2001)CrossRefGoogle Scholar
  15. 15.
    Bergin, J., Bruce, K., Kolling, M.: Objects-Early Tools – A Demonstration. ACM SIGCSE Bulletin 37(1), 390–391 (2005)CrossRefGoogle Scholar
  16. 16.
    Ben-Ari, M., Myller, N., Sutinen, E., Tarhio, J.: Perspectives on Program Animation with Jeliot. In: Proceeding of the Software Visualization International Seminar, Germany, pp. 31–45 (2002)Google Scholar
  17. 17.
    Goldman, K.J.: A Concepts-first Introduction to Computer Science. In: Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, Virginia, pp. 432–436 (2004)Google Scholar
  18. 18.
    Hendrix, T.D., Cross, J.H., Barowski, L.A.: An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE. In: Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, Virginia, pp. 387–391 (2004)Google Scholar
  19. 19.
    Myller, N., Bednarik, R.: Methodologies for Studies of Program Visualization. Methods, Materials and Tools for Programming Education, pp. 37–42 (2006),
  20. 20.
    Lahtinen, E., Jarvinen, H.M., Melakoski-Vistbacka, S.: Targeting Program Visualizations. In: Proceedings of the 12th ITiCSE, pp. 256–260 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Tamar Benaya
    • 1
  • Ela Zur
    • 1
  1. 1.Computer Science DepartmentThe Open University of IsraelRaananaIsrael

Personalised recommendations