Skip to main content

A Diagnostic Tool for Assessing Students’ Perceptions and Misconceptions Regards the Current Object “this

  • Conference paper
  • First Online:
Informatics in Schools. Fundamentals of Computer Science and Software Engineering (ISSEP 2018)

Abstract

Understanding of the object concept in Object Oriented Programming (OOP) is obviously the center of the paradigm. Many educators and researchers explored students’ difficulties and developed teaching materials targeted at this central concept. The paper presents a diagnostic tool we developed that aims to reveal students’ perception and understanding about the current object, referring to it by the this annotation. Proper conceptualization of this indicates an understanding of objects in general, and involves aspects of memory allocation and programming approaches. The tool contains five questions, each devoted to covering different aspects in various frameworks, such as: using this in constructors, using this as a visible parameter, using this in inheritance, or making necessary changes in transition from a non-static context that uses this to a static context. The questionnaire combines closed questions with a request to explain the answers and open questions. In the paper we present the purpose of each question, and address what it comes to examine. The diagnostic tool is based on known educational approaches: Bloom’s taxonomy, assessment for, as, and of learning and learning from errors. The tool can be used by educators at high school or academic levels as a teaching tool, as a base for discussions, or as an evaluation tool. A short report on the use of the tool with different populations, including high school teachers, is presented. The paper uses Java as the programming language, but it easily can be translated to other OOP languages.

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

Access this chapter

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

Institutional subscriptions

References

  1. Anderson, L., Krathwohl, D.A.: Taxonomy for Learning, Teaching and Assessing: A Revision of Bloom’s Taxonomy of Educational Objectives. Longman, New York (2001)

    Google Scholar 

  2. Bloom, B.S.: Taxonomy of Educational Objectives Handbook I - The Cognitive Domain. David McKay Co., Inc., New York (1956)

    Google Scholar 

  3. Borasi, R.: Reconceiving Mathematics Instruction: A Focus on Errors. Ablex Publishing, New York (1996)

    Google Scholar 

  4. Borasi, R.: Using errors as springboards for the learning of mathematics: an introduction. Focus Learn. Probl. Math. 7(3), 1–14 (1985)

    Google Scholar 

  5. Brown, S: Assessment for learning. Learn. Teach. High. Educ. 1, 81–89 (2005). ISSN 1742-240X

    Google Scholar 

  6. Chen, C., Cheng, S., Lin, J.M.: A study of misconceptions and missing conceptions of Novice Java programmers. In: Proceedings of the 2012 International Conference on Frontiers in Education, pp. 307–313. Computer Science & Computer Engineering (2012)

    Google Scholar 

  7. Confrey, J.: What constructivism implies for teaching. J. Res. Math. Educ. 4, 107–122 (1990)

    Google Scholar 

  8. Earl, L.M.: Assessment as Learning: Using Classroom Assessment to Maximize Student Learning, 2nd edn. Corwin, Thousand Oaks (2012)

    Google Scholar 

  9. Eckerdal, A., Thunי, M.: Novice Java programmers’ conceptions of “object” and “class”, and variation theory. SIGCSE Bull. 37(3), 89–93 (2005)

    Article  Google Scholar 

  10. Gardner, L., Sheridan, D., White, D.: A web-based learning and assessment system to support flexible education. J. Comput. Assist. Learn. 18, 125–136 (2002)

    Article  Google Scholar 

  11. Garner, S., Haden, P., Robins, A.: My program is correct but it doesn’t run: a preliminary investigation of novice programmers’ problems. In: Proceeding of ACE 2005 (Australasian Computing Education Conference), pp. 173–180 (2005)

    Google Scholar 

  12. Ginat, D., Shmallo, R.: Constructive use of errors in teaching CS1. In: SIGCSE 2013-Proceedings of 44th ACM Technical Symposium on Computer Science Education, pp. 353–358. ACM New York (2013)

    Google Scholar 

  13. Holland, S., Griffiths, R., Woodman, M.: Avoiding object misconceptions. SIGCSE Bull. 29(1), 131–134 (1997)

    Article  Google Scholar 

  14. Kaczmarczyk, L.C., Petrick, E.R., East, J.P., Herman, G.L.: Identifying student misconceptions of programming. In: Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE 2010), New York, pp. 107–111 (2010)

    Google Scholar 

  15. Liberman, N., Beeri, C., and Ben-David Kolikant, Y.: Difficulties in learning inheritance and polymorphism. ACM Trans. Comput. Educ. 11(1), 23 (2011). Article 4

    Article  Google Scholar 

  16. Melis, E., Sander, A., Tsovaltzi, D.: How to support meta-cognitive skills for finding and correcting errors. In: Proceedings of the AAAI Fall 2010 Symposium, pp. 64–68 (2010)

    Google Scholar 

  17. Newman, F.M.: Higher order thinking in teaching social studies: A rationale for the assessment of classroom thoughtfulness. J. Curric. Stud. 22, 41–56 (1990)

    Article  Google Scholar 

  18. Ohlsson, S.: Learning from performance errors. Psychol. Rev. 103, 241–262 (1996)

    Article  Google Scholar 

  19. Paul, R., Elder, L.: The Thinker’s Guide to the Nature and Functions of Critical and Creative Thinking. Foundation for Critical Thinking Press (2008). http://www.criticalthinking.org/files/CCThink_6.12.08.pdf

  20. Pinkerton, K.D.: Learning from errors. Phys. Teach. 43(8), 510–513 (2005)

    Article  Google Scholar 

  21. 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 

  22. Ragonis, N., Ben-Ari, M.: On understanding the statics and dynamics of object-oriented programs. SIGCSE Bull. 37(1), 226–230 (2005)

    Article  Google Scholar 

  23. Ragonis, N., Shmallo, R.: On the (Mis) Understanding of the “this” reference. In: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE 2017), pp. 489–494. ACM, New York (2017)

    Google Scholar 

  24. Resnick, L.: Education and Leaning to Think. National Academy Press, Washington D.C (1987)

    Google Scholar 

  25. Sajaniemi, J., Kuittinen, M., Tikansalo, T.: A study of the development of students’ visualizations of program state during an elementary object-oriented programming course. In: Proceedings of the 3rd International Workshop on Computing Education Research (ICER 2007), pp. 1–16. ACM, New York (2007)

    Google Scholar 

  26. Sanders, K., Boustendt, J., Eckerdal, A., McCartney, R., Mostrצm, J. E., Thomas, L., Zander, C.: Student understanding of Object-Oriented programming as expressed in concept maps. In: Proceedings of SIGCSE 2008, pp. 332–336 (2008)

    Article  Google Scholar 

  27. Sanders, K., Thomas, L.: Checklists for grading object-oriented CS1 programs: concepts and misconceptions. SIGCSE Bull. 39(3), 166–170 (2007)

    Article  Google Scholar 

  28. Shmallo, R., Ragonis, N., Ginat, D.: Fuzzy OOP: expanded and reduced term interpretations. In: Proceedings of ITiCSE 2012, pp. 309–314. ACM Press, New York (2012)

    Google Scholar 

  29. Sorva, J.: The same but different – students’ understandings of primitive and object variables. In: Proceedings of the 8th International Conference on Computing Education Research (Koli Calling 2008), New York, pp. 5–15 (2008)

    Google Scholar 

  30. Sorva, J.: Students’ understandings of storing objects. In: Lister, R., Simon (eds.) Proceedings of the Seventh Baltic Sea Conference on Computing Education Research (Koli Calling 2007), Koli National Park, Finland, CRPIT, vol. 88, pp. 127–135. ACS (2007)

    Google Scholar 

  31. Teif, M., Hazzan, O.: Partonomy and taxonomy in object-oriented thinking: Junior high school students’ perceptions of object-oriented basic concepts. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education (ITiCSE-WGR 2006), pp. 55–60. ACM, New York (2006)

    Google Scholar 

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

    Article  Google Scholar 

  33. Yerushalmi, E., Polingher, C.: Guiding students to learn from mistakes. Phys. Educ. 41, 532–538 (2006)

    Article  Google Scholar 

  34. Zohar, A.: The nature and development of teachers’ meta-strategic knowledge in the context of teaching higher order thinking. J. Learn. Sci. 15, 331–377 (2006)

    Article  Google Scholar 

  35. Zohar, A., Ben David, A.: Explicit teaching of meta-strategic knowledge in authentic classroom situations. Metacognition Learn. 3(1), 59–82 (2008)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ragonis Noa .

Editor information

Editors and Affiliations

Appendix A: The Questionnaire

Appendix A: The Questionnaire

Question 1: Where this is needed

The following is a project that includes a simple class Date, a composed class Flight and a main class Program.

figure a
figure b
  1. (a)

    In relation to the rows marked with numbers 1–4 (//line #n) determine where this is required to be used and where it is superfluous. Explain the reason for each of your choices.

  2. (b)

    When executing instruction #5 in the main method, to what does the this in the equals method in class Flight refer?

  3. (c)

    Develop a static method replacing the instance method equals in class Date.

  4. (d)

    Can this be used in the code of the main method?

Question 2: Personal preferences on using this in code

Each of the following methods relate to class Point described by two coordinates (x,y). Some of the methods use this and some do not. The methods of each clause execute the same task, and they are all syntactically correct. Please rank in each line marked by (a)–(d) your personal preference codes by assigning numbers between 1 and 3, where 1 is your first priority. Explain your choices.

figure c

Question 3: Using this as a parameter

The following is a project that includes a simple class Circle and a main class Test. Some of the methods of class Circle include only the method signature without the method full body. The method drawX(…) accepts a circle as a parameter and draws it, the method drawFlower(…) accepts a circle as a parameter and draws a flower consisting of circles, and the method chooseWhatToDraw(…) accepts a circle and a character and determines what to draw.

figure d

In relation to the main method, and the execution of the instruction:

$$ circle1.chooseWhatToDraw\left( {^{{\prime }} F^{{\prime }} , \, circle2} \right); $$

to what does the this appearing in the method chooseWhatToDraw(…) in the instruction drawFlower(this); refer?

Question 4: Using this in inheritance

The following is a project that includes classes AA, BB, and Program. Review the classes and answer the questions that follow.

figure e

Follow the execution of the main method, and:

  1. (a)

    Use a trace table to present all variables’ values and all objects, including the objects’ attributes values.

  2. (b)

    Display the program output.

  3. (c)

    In relation to the rows marked with numbers 1–4 (//line #n) determine to what does the this refer, when executing the next instruction:

    $$ BB \, b \, = \, new \, BB(); $$

Question 5: Using this – an open comprehension question

Please answer the following questions briefly:

  1. (a)

    When must this be used?

  2. (b)

    When should this be used?

  3. (c)

    When shouldn’t this be used?

  4. (d)

    What is this?

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Noa, R., Ronit, S. (2018). A Diagnostic Tool for Assessing Students’ Perceptions and Misconceptions Regards the Current Object “this”. In: Pozdniakov, S., Dagienė, V. (eds) Informatics in Schools. Fundamentals of Computer Science and Software Engineering. ISSEP 2018. Lecture Notes in Computer Science(), vol 11169. Springer, Cham. https://doi.org/10.1007/978-3-030-02750-6_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-02750-6_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-02749-0

  • Online ISBN: 978-3-030-02750-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics