Novice Java Programming Mistakes: Large-Scale Data vs. Educator BeliefsNeil C. C. BrownAmjad Altadmri
Neil C. C. Brown
Amjad Altadmri
2017
ACM Transactions on Computing Education, Volume 17, Issue 2
Teaching is the process of conveying knowledge and skills to learners. It involves preventing misunderstandings or correcting misconceptions that learners have acquired. Thus, effective teaching relies on solid knowledge of the discipline, but also a good grasp of where learners are likely to trip up or misunderstand. In programming, there is much opportunity for misunderstanding, and the penalties are harsh: failing to produce the correct syntax for a program, for example, can completely prevent any progress in learning how to program. Because programming is inherently computer-based, we have an opportunity to automatically observe programming behaviour -- more closely even than an educator in the room at the time. By observing students’ programming behaviour, and surveying educators, we can ask: do educators have an accurate understanding of the mistakes that students are likely to make? In this study, we combined two years of the Blackbox dataset (with more than 900 thousand users and almost 100 million compilation events) with a survey of 76 educators to investigate which mistakes students make while learning to program Java, and whether the educators could make an accurate estimate of which mistakes were most common. We find that educators’ estimates do not agree with one another or the student data, and discuss the implications of these results.
Study InformationManually extracted from the paper by the Progmiscon.org team
Programming Languages
Java
Method
Quantitative systematic research analyzing 100+ M compilation events and surveying educators perceptions about 18 selected mistakes
Subjects
900+ students and 76 educators
Artifact
Related Study ResultsPhenomena studied in this paper that map to Progmiscon.org misconceptions
The following list summarizes those phenomena reported in this study that provide evidence for misconceptions documented on Progmiscon.org. (The paper may provide evidence for other misconceptions as well. This list focuses exclusively on misconceptions documented on Progmiscon.org.)
ErrorsA Blackbox dataset of student-generated compilation events over a 2-year period.
(A)eqSyn
Confusing the assignment operator (=) with the equality operator (==)
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions:
(D)andOrSyn
Confusing short-circuit evaluators (&& and||) with conventional logical operators (& and|)
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions:
(H)keySyn
Using keywords as methods' or variables' names
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions:
(J)parCalSyn
Forgetting parentheses after a method call
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions:
(R)impSem
A class claims to implement an interface but does not implement all the required methods
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions: