This paper presents the results of a survey of programming errors in an introductory programming class conducted at Kansas State University. The objective of the study was to gain a better understanding of some of the errors made by beginning student programmers, particularly those effors normally detected by run-time packages (e.g., undefined variables, division by zero, arithmethic overflow) as well as the many effors that pass undetected by compilers and run-time tools (e.g., logic and conceptual effors). The survey involved the analysis of 1088 program runs collected from approximately 50 students in a FORTRAN programming course.The effors were tallied and analyzed, and were then recorded under eight general categories: Input/Output (e. g., missing I/O statements, missing or incorrect I/O variables or data); Assignment (e. g., incorrect operators, missing assignments); Loops (e. g., incorrect loop parameters, missing or extra loops); Decision and Branching (e. g., jump to wrong places, incorrect decisions; Arrays (e. g., incorrect subscripts, missing array); Subprograms (e. g., incorrect or missing parameters, incorrect number of calls); Declarations (e. g., issing or wrong declaration statements, wrong names in declaration statements); and Miscellaneous (e. g., unused variables, redundant decisions, wrong logic). The study found that two classes of errors accounted for over half of all noncompiletime errors: those errors related to input/output and assignment statements. Further analysis showed that less than half of the run-time error messages generated by the compiler actually pinpointed the cause of error or provided a meaningful hint.
Read full abstract