Identifying and Validating Java Misconceptions Toward a CS1 Concept InventoryRicardo CaceffoPablo Frank-BoltonRenan SouzaRodolfo Azevedo
Ricardo Caceffo
Pablo Frank-Bolton
Renan Souza
Rodolfo Azevedo
2019
Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education
A misconception is a common misunderstanding that students may have about a specific topic. The identification, documentation, and validation of misconceptions is a long and time-consuming work, usually carried out using iterative cycles of students answering open-ended questionnaires, interviews with instructors and students, exam analysis, and discussion with experts. A comprehensive list of validated misconceptions in some subject can be used to build formal evaluation methods like the Concept Inventory (CI), a multiple-choice questionnaire that is usually performed as pre-post tests in order to assess any change in student understanding. In CS1, validated misconceptions were identified and documented in C and Python programming languages. Although there are studies related to misconceptions in the Java language, these misconceptions lack the formality, comprehensiveness, and robustness of their C and Python counterparts. On this work, we propose a methodology to adapt the validated misconceptions in C and Python to Java. Initially, through the analysis of an initial list of 33 misconceptions in C and 28 in Python, we identified and documented in an antipattern format 31 possible misconceptions in Java. We then developed a final term exam, composed of 7 open-ended questions, in which each question was designed to address some of the misconceptions covered in the course (N = 27). Through the analysis of the exams answers (N = 69 students), it was possible to validate 22 of the misconceptions (81%). Also, 6 new misconceptions were identified, leading to a total of 28 valid misconceptions in Java.
Study InformationManually extracted from the paper by the Progmiscon.org team
Programming Languages
Java
Method
Quantitative systematic research
Subjects
69 upper-level undergraduate students
Phenomena Studied
Misconceptions
Java misconceptions on (A) function parameter use and scope, (B) variables, identifiers, and scope, (C) recursion, (D) iteration, (E) structures, (F) pointers, (G) boolean expressions, and (H) classes and objects.