Novice Java Programming Mistakes: Large-Scale Data vs. Educator Beliefs
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 Information
Manually 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

Note by Progmiscon.org Team
We are not aware of an artifact supporting this paper.

Related Study Results
Phenomena 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.)

Errors
A Blackbox dataset of student-generated compilation events over a 2-year period.

(A)eqSyn
Confusing the assignment operator (=) with the equality operator (==)
405 748 / 100 000 000
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|)
61 965 / 100 000 000
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
2 568 / 100 000 000
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions:
(J)parCalSyn
Forgetting parentheses after a method call
43 165 / 100 000 000
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
107 / 100 000 000
Compilation events containing this error
This provides evidence potentially relevant for the following Progmiscon.org misconceptions: