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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Anderson, L., Krathwohl, D.A.: Taxonomy for Learning, Teaching and Assessing: A Revision of Bloom’s Taxonomy of Educational Objectives. Longman, New York (2001)
Bloom, B.S.: Taxonomy of Educational Objectives Handbook I - The Cognitive Domain. David McKay Co., Inc., New York (1956)
Borasi, R.: Reconceiving Mathematics Instruction: A Focus on Errors. Ablex Publishing, New York (1996)
Borasi, R.: Using errors as springboards for the learning of mathematics: an introduction. Focus Learn. Probl. Math. 7(3), 1–14 (1985)
Brown, S: Assessment for learning. Learn. Teach. High. Educ. 1, 81–89 (2005). ISSN 1742-240X
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)
Confrey, J.: What constructivism implies for teaching. J. Res. Math. Educ. 4, 107–122 (1990)
Earl, L.M.: Assessment as Learning: Using Classroom Assessment to Maximize Student Learning, 2nd edn. Corwin, Thousand Oaks (2012)
Eckerdal, A., Thunי, M.: Novice Java programmers’ conceptions of “object” and “class”, and variation theory. SIGCSE Bull. 37(3), 89–93 (2005)
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)
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)
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)
Holland, S., Griffiths, R., Woodman, M.: Avoiding object misconceptions. SIGCSE Bull. 29(1), 131–134 (1997)
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)
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
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)
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)
Ohlsson, S.: Learning from performance errors. Psychol. Rev. 103, 241–262 (1996)
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
Pinkerton, K.D.: Learning from errors. Phys. Teach. 43(8), 510–513 (2005)
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)
Ragonis, N., Ben-Ari, M.: On understanding the statics and dynamics of object-oriented programs. SIGCSE Bull. 37(1), 226–230 (2005)
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)
Resnick, L.: Education and Leaning to Think. National Academy Press, Washington D.C (1987)
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)
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)
Sanders, K., Thomas, L.: Checklists for grading object-oriented CS1 programs: concepts and misconceptions. SIGCSE Bull. 39(3), 166–170 (2007)
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)
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)
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)
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)
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
Yerushalmi, E., Polingher, C.: Guiding students to learn from mistakes. Phys. Educ. 41, 532–538 (2006)
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)
Zohar, A., Ben David, A.: Explicit teaching of meta-strategic knowledge in authentic classroom situations. Metacognition Learn. 3(1), 59–82 (2008)
Author information
Authors and Affiliations
Corresponding author
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.


-
(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.
-
(b)
When executing instruction #5 in the main method, to what does the this in the equals method in class Flight refer?
-
(c)
Develop a static method replacing the instance method equals in class Date.
-
(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.

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.

In relation to the main method, and the execution of the instruction:
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.

Follow the execution of the main method, and:
-
(a)
Use a trace table to present all variables’ values and all objects, including the objects’ attributes values.
-
(b)
Display the program output.
-
(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:
-
(a)
When must this be used?
-
(b)
When should this be used?
-
(c)
When shouldn’t this be used?
-
(d)
What is this?
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
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)