Skip to main content

On the Students’ Misconceptions in Object-Oriented Language Constructs

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1091))

Abstract

Analyze the Object-oriented (OO) source code developed by students provides useful formative tips to instructors. According to this, it is essential to understand the student’s real difficulties allowing instructors to shape effective courses. To provide run-time feedback to students and to study and analyze the evolution of their performances offline and over time we designed a framework and developed a tool. It allows to identify students’ misconceptions analysing source code and to create personalized student reports automatically. In this paper, we present an empirical study, conducted using our toolchain, that involves 1627 projects extracted from the multi-institution Blackbox dataset. We identified a violation model for Java language constructs based on established results in the computing education community. Afterwards, we grouped such violations in categories and analyzed the relations among them. Our contributions might be helpful in delivering formative feedback and supporting instructors who teach Java and object-oriented programming in general.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    http://checkstyle.sourceforge.net.

  2. 2.

    https://pmd.github.io.

  3. 3.

    http://findbugs.sourceforge.net.

  4. 4.

    http://www.sonarqube.org.

  5. 5.

    https://www.bluej.org/.

  6. 6.

    “payload files”, at time of writing, go from Jun 12th 2013 to Oct 16th 2017; it was not possible to get the completed source code before and after this time interval.

References

  1. Ala-Mutka, K.M.: A survey of automated assessment approaches for programming assignments. Comput. Sci. Educ. 15(2), 83–102 (2005)

    Article  Google Scholar 

  2. Ardimento, P., Cimitile, M., Visaggio, G.: Distributed software development with knowledge experience packages. In: Demey, Y.T., Panetto, H. (eds.) OTM 2013. LNCS, vol. 8186, pp. 263–273. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-41033-8_35

    Chapter  Google Scholar 

  3. Biddle, R., Tempero, E.: Java pitfalls for beginners. ACM SIGCSE Bull. 30(2), 48–52 (1998)

    Article  Google Scholar 

  4. Brown, N.C.C., Altadmri, A.: Novice Java programming mistakes: large-scale data vs. educator beliefs. ACM Trans. Comput. Educ. (TOCE) 17(2), 7 (2017)

    Google Scholar 

  5. Brown, N.C.C., AlTadmri, A., Sentance, S., Kölling, M.: Blackbox, five years on: an evaluation of a large-scale programming data collection project. In: ACM Conference on International Computing Education Research, ICER 2018, Espoo, Finland, 13–15 August 2018, pp. 196–204 (2018)

    Google Scholar 

  6. Buckers, T., et al.: UAV: warnings from multiple automated static analysis tools at a glance. In: 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 472–476 (2017)

    Google Scholar 

  7. Chen, C., Cheng, S., Lin, J.M.: A study of misconceptions and missing conceptions of novice Java programmers. In: International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS), p. 1. The Steering Committee of The World Congress in Computer Science, Computer Engineering and Applied Computing (WorldComp) (2012)

    Google Scholar 

  8. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)

    Article  Google Scholar 

  9. CSELAB. Student profiling tool (2018). https://gitlab.com/cselab/spt

  10. Denny, P., Luxton-Reilly, A., Tempero, E., Ralph, P.: Objects count so count objects! In: Conference on International Computing Education Research, pp. 187–195. ACM (2018)

    Google Scholar 

  11. Edwards, S.H., Kandru, N., Rajagopa, M.B.M.: Investigating static analysis errors in student Java programs. In: ACM Conference on International Computing Education Research, ICER 2017, pp. 65–73. ACM, New York (2017)

    Google Scholar 

  12. Ettles, A., Luxton-Reilly, A., Denny, P.: Common logic errors made by novice programmers. In: Australasian Computing Education Conference, ACE 2018, pp. 83–89. ACM, New York (2018)

    Google Scholar 

  13. Grissom, R.J., Kim, J.J.: Effect sizes for research: a broad practical approach, 2nd edn. Lawrence Earlbaum Associates (2005)

    Google Scholar 

  14. Holm, S.: A simple sequentially rejective Bonferroni test procedure. Scand. J. Stat. 6, 65–70 (1979)

    MATH  Google Scholar 

  15. Hristova, M., Misra, A., Rutter, M., Mercuri, R.: Identifying and correcting Java programming errors for introductory computer science students. SIGCSE Bull. 35(1), 153–156 (2003)

    Article  Google Scholar 

  16. Bergin, J., Agarwal, A., Agarwal, K.: Some deficiencies of C++ in teaching CS1 and CS2. ACM SIGPlan Not. 38(6), 9–13 (2003)

    Article  Google Scholar 

  17. Keuning, H., Heeren, B., Jeuring, J.: Code quality issues in student programs. In: ACM Conference on Innovation and Technology in Computer Science Education, pp. 110–115. ACM (2017)

    Google Scholar 

  18. Liberman, N., Beeri, C., Kolikant, Y.B.: Difficulties in learning inheritance and polymorphism. Trans. Comput. Educ. 11(1), 4:1–4:23 (2011)

    Article  Google Scholar 

  19. Luxton-Reilly, A., Denny, P., Kirk, D., Tempero, E., Yu, S.Y.: On the differences between correct student solutions. In: ACM Conference on Innovation and Technology in Computer Science Education, pp. 177–182. ACM (2013)

    Google Scholar 

  20. Madden, M., Chambers, D.: Evaluation of student attitudes to learning the Java language. In: Conference on the Principles and Practice of Programming, PPPJ 2002/IRE 2002, Maynooth, County Kildare, Ireland, Ireland, pp. 125–130. National University of Ireland (2002)

    Google Scholar 

  21. Pawlak, R., Monperrus, M., Petitprez, N., Noguera, C., Seinturier, L.: Spoon: a library for implementing analyses and transformations of Java source code. Softw. Pract. Exp. 46, 1155–1179 (2015)

    Article  Google Scholar 

  22. Ragonis, N., Ben-Ari, M.: Teaching constructors: a difficult multiple choice. In: European Conference on Object-Oriented Programming, Workshop, vol. 3. Citeseer (2002)

    Google Scholar 

  23. Ragonis, N., Ben-Ari, M.: A long-term investigation of the comprehension of OOP concepts by novices. Comput. Sci. Educ. 15(3), 203–221 (2005)

    Article  Google Scholar 

  24. Ragonis, N., Shmallo, R.: On the (mis)understanding of the this reference. In: ACM SIGCSE Technical Symposium on Computer Science Education, pp. 489–494. ACM (2017)

    Google Scholar 

  25. Sanders, K., Thomas, L.: Checklists for grading object-oriented CS1 programs: concepts and misconceptions. In: Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE 2007, Dundee, Scotland, UK, 25–27 June 2007, pp. 166–170 (2007)

    Google Scholar 

  26. Schmolitzky, A.: Objects first, interfaces next or interfaces before inheritance. In: ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 64–67. ACM (2004)

    Google Scholar 

  27. Sivilotti, P.A.G., Lang, M.: Interfaces first (and foremost) with Java. In: ACM Technical Symposium on Computer Science Education, pp. 515–519. ACM (2010)

    Google Scholar 

  28. Spinellis, D.: Tool writing: a forgotten art? (software tools). IEEE Softw. 22(4), 9–11 (2005)

    Article  Google Scholar 

  29. Tempero, E., Counsell, S., Noble, J.: An empirical study of overriding in open source Java. In: Australasian Conference on Computer Science, vol. 102, pp. 3–12. Australian Computer Society Inc (2010)

    Google Scholar 

  30. Tempero, E., Ralph, P.: A framework for defining coupling metrics. Sci. Comput. Program. 166, 214–230 (2018)

    Article  Google Scholar 

  31. Tsantalis, N., Chaikalis, T., Chatzigeorgiou, A.: Jdeodorant: identification and removal of type-checking bad smells. In: 12th European Conference on Software Maintenance and Reengineering, CSMR 2008, pp. 329–331. IEEE (2008)

    Google Scholar 

  32. Wiggins, G.: Seven keys to effective feedback. Educ. Leadersh. 70(1), 11–16 (2012)

    Google Scholar 

  33. Xinogalos, S.: Object-oriented design and programming: an investigation of novices’ conceptions on objects and classes. ACM Trans. Comput. Educ. (TOCE) 15(3), 13 (2015)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pasquale Ardimento .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Ardimento, P., Bernardi, M.L., Cimitile, M. (2019). On the Students’ Misconceptions in Object-Oriented Language Constructs. In: Burgos, D., et al. Higher Education Learning Methodologies and Technologies Online. HELMeTO 2019. Communications in Computer and Information Science, vol 1091. Springer, Cham. https://doi.org/10.1007/978-3-030-31284-8_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-31284-8_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-31283-1

  • Online ISBN: 978-3-030-31284-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics