Students in first-year computer science at many universities are required to enroll in an introductory programming course to learn Java. Programming defects provide useful information revealing the challenges students face in achieving high quality code. The identification of defects also enables instructors to improve their teaching by placing greater emphasis on those areas where students are struggling. In this dissertation, a range of defect types has been identified and a taxonomy - called Novice Defect Taxonomy (NDT) – developed. This taxonomy may be used to hierarchically classify defects in a clear and reproducible way. Its derivation from a large number of student assignments is described. Assignments are assessed within a defect measurement framework which combines dynamic and static analysis. The approach measures defects in functionality, code style, language syntax and code completeness. Based on the analyses, it is shown that automatic assistance has a positive impact on the program quality of novice programmers. Students rapidly accept automatic tools. Finally, this taxonomy provides other researchers with a framework and reference baseline for developing new defect classifications.
|Publication status||Unpublished - 2012|