{{{ #!html

So My Program Doesn't Run! Definition, Origins, and Practical Expressions of Students' (Mis)Conceptions of Correctness

We studied students' conceptions of correctness and their influence on students' correctness-related practices. Despite the centrality of this concept in the expertise of computer scientists, to date, only a small amount of work has been done on students' perceptions of correctness, perhaps because of the belief expressed by Joni & Soloway (1986) that “everyone will agree that a non-working program is incorrect” (p. 96) is common in the field.

However, the results of a sequence of empirical experiments suggest that students do not share the above belief. In one experiment students were given three programs that 'worked’ since the programs produced the expected output for any given input, yet they were incorrect because for parts of the input space there was additional output, which was not expected. Many students termed the programs as relatively correct because they 'work for many input examples'. Students' perceptions were explained as a ramification of their informal experience as users, in particular, of being satisfied when they make the computer work for a specific local need rather than for the entire input space (Ben-David Kolikant, 2005; Ben-David Kolikant & Ben-Ari, 2008).

In this paper we sought to expand our understanding of students' conceptions of correctness by exploring their decisions regarding non-working programs, that is, programs that provide no output or partial output to all (or to a noticeable part of) the input space. If students' decisions are solely governed by users' perspectives, then we would expect that students would decide that these programs are incorrect because they do not 'work for many input examples'. Any other decision by the students would indicate new faulty connections to their existing knowledge, namely, new misconceptions.

Our research questions were therefore formulated as follows:

To this end, 159 high-school students were given a questionnaire with two error-free and four erroneous algorithms and were asked to analyze their correctness. We also interviewed seven students regarding their work.

We found that students conceptualized program correctness as the sum of the correctness of its constituent operations, and therefore although they recognized the errors, they rarely considered programs as entirely incorrect. Instead, as long as they had any operations written correctly, students considered the program ‘partially correct’.

We suggest that this conception is a faulty extension of the concept of a program's grade, which usually is calculated as the sum of points awarded for separate aspects of a program; thus school (unintentionally) nurtures students' misconceptions of correctness. This misconception is aligned with students' tendency to employ a line-by-line verification method—examining whether each operation is translated as a sub-requirement of the algorithm—which is inconsistent with the method of testing each operation that they formally studied.

References

Ben-David Kolikant, Y. (2005). Students' alternative standards for correctness. In Proceedings of the 2005 International Workshop on Computing Education ResearchSeattle, WA, USA). ACM Press, New York, NY, 2005, 37-43.

Ben-David Kolikant, Y, & Ben Ari M. (2008). Fertile zones of cultural encounter in computer science education. Journal of the Learning Science, 18(1), 1-32.

Joni, S., & Soloway, E. (1986). 'But my program runs.’ Discourse rules for novice programmers. Journal of Educational Computing Research, 2(1), 95–125.

Author: Y. Ben-David Kolikant; yifatbdk@mscc.huji.ac.il

Article Link: http://ejournals.ebsco.com/direct.asp?ArticleID=4C03AA4BFDADB9D85BDE }}} [https://stemedhub.org/groups/cleerhub/wiki/issue:1326 : Back to 2009 Winter Issue, Vol. 4, No. 2] [[Include(issues:footer)]]