Quality aspects of the program development process used by learner programmers

  • Geoffrey Lund

Student thesis: Doctoral Thesis


Much research in the area of computer programming education has examined the product (program) produced by the novice, measured it and sought ways to improve it. Little regard has been given to the process by which the novice has produced the product. This is in sharp contract to the main teaching in software engineering that stresses the importance of process rather than the product. This thesis initially developed and validated a set of metrics that allowed the measurement of the personal software development process (PSDP). These metrics allow comparison between different personal software development processes. In this thesis an experiment is reported where a group of novices were given feedback during the development of the program that sought to improve the PSDP. The results showed a significant improvement in the PSDP is achieved against a control group.

Investigation into the relationship between the process and the product indicates that there is no correlation between the process metrics and the product metrics save for the measurement of correctness; a program developed well tends to be more correct than one that is not. Other product quality measures are unaffected by the quality of the process. This replicates results recorded in the literature. The thesis concludes by proposing a unified framework of programming knowledge that includes 4 levels of knowledge (syntactic, semantic, schematic and strategic) each with two levels (declarative and procedural). The work in this thesis is used to justify the inclusion of strategic knowledge in the framework. This work has implications for deliverers of computer programming education be they lecturers or providers of computer aided learning packages in providing a framework for the learning of novice programmers and especially emphasising the importance of the personal software development process.
Date of AwardJan 2002
Original languageEnglish

Cite this