Empirical design and analysis of a defect taxonomy for novice programmers

Lu Zhang

    Research output: ThesisMaster's Thesis

    165 Downloads (Pure)


    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.
    Original languageEnglish
    Publication statusUnpublished - 2012

    Fingerprint Dive into the research topics of 'Empirical design and analysis of a defect taxonomy for novice programmers'. Together they form a unique fingerprint.

  • Cite this