Analysis and categorization of software faults to assist novice programmers

This dissertation examines the utility of a fault categorization technique in improving the coding skills of novice programmers. Recent research has been carried out to study the correlations between software faults and such variables as: complexity of software, time to program software, size of programs, etc. Little research, however, has focused on the types of faults that programmers insert into their software and how recognizing the type of fault can improve the quality of software code. For some novice programmers locating and fixing faults is more difficult than initially writing the program. In this dissertation a programming technique is evaluated that requires novice programmers to both categorize faults and understand the reason for any fault at each iterative build. Three separate experiments were conducted to measure the number of faults at each build by novice programmers using this technique compared to the number of faults by novice programmers not using this technique. The data collected supports the hypothesis that requiring novice programmers to categorize their faults during the software build cycle decreases the total number of faults in a program.