As computer science lies at the heart of almost all technological progress, widespread computer science education, and particularly programming education, is of great importance. In order to reach a large group of students, secondary schools can play an important role. However, s
...
As computer science lies at the heart of almost all technological progress, widespread computer science education, and particularly programming education, is of great importance. In order to reach a large group of students, secondary schools can play an important role. However, students have difficulty learning programming concepts. Programming is complicated and the education largely takes place on computers, which allows for little interaction with teachers. Consequently, teachers have difficulty gaining insights about the progress and misunderstandings of students and thus have little opportunity to intervene, which threatens to undermine the effectiveness of the learning process. Therefore, the purpose of this research is to improve on existing programming education by developing a feedback method for computer science teachers, which enables them to better understand and remedy programming misconceptions held by their students. Following a Grounded Theory approach, interviews were conducted with computer science teachers and programming education researchers in the Netherlands. Participants were asked to describe the problems they encountered in teaching programming concepts and to identify what in their views would help to improve their teaching. Furthermore, literature was reviewed on existing tools which offer teacher feedback. The majority of these tools appeared to provide little insight and/or require time-consuming analysis by the teacher in order to gain some insights. Teachers indicated that they have little time for complicated data analyses, but would highly value detailed feedback about their students’ programming misconceptions. Furthermore, it was suggested that alternative testing methods, such as puzzles, might be useful. Based on these findings, Parsons Problems were proposed and tested as a solution for detecting programming misconceptions. The testing took place during two rounds, a small-scale trial experiment and a broader experiment in which 64 secondary school students participated. 'Primitive assignment works in opposite direction' was the number one misconception, held by 56% of the participants, and was the most occurring misconception across students. The 'invalid else-statement' misconception was the second most held misconception (53% of participating students), followed by 'primitive assignment works in both directions (swaps)' (45%), 'difficulties in understanding the sequentiality of statements' (39%), 'the natural-language semantics of variable names affects which value gets assigned to which variable' (20%), 'adjacent code executes within loop' (6%), and 'using else is optional' (5%). As 7 out of 8 misconceptions targeted in the experiment were successfully detected, this experiment demonstrates that employing Parsons Problems appears to be a viable method for misconception detection.