thesis

SNOOPIE : development of a learning support tool for novice programmers within a conceptual framework

Abstract

Learning to program is recognised nationally and internationally as a complex task that novices find challenging. There exist many endeavours to support the novice in this activity, including software tools that aim to provide a more supportive environment than that provided by standard software facilities, together with schemes that reduce the underlying complexity of programming by providing accessible micro-worlds in which students develop program code. Existing literature recognises that learning to program is difficult because of the need to learn the rules and operation of the language (program formulation), and the concurrent need to interpret problems and recognise the required components for that problem (problem formulation). This thesis describes a new form of learning support that addresses that dual task of program and problem formulation. A review of existing teaching tools that support the novice programmer leads to a set of requirements for a support tool that encompasses the processes of both program and problem formulation. This set of requirements is encapsulated in a conceptual framework for software tool development. The framework demonstrates how the requirements of a support tool can be met by performing a series of automated analyses at different stages in the student's development of a solution. An extended series of observations demonstrates the multi-faceted nature of problems that students encounter whilst they are learning to program and how these problems can be mapped onto the different levels of programs and problem formulation. These observations and the framework were used to inform the development of SNOOPIE, a sample instantiation of the framework for learning Java programming. This software tool has been fully evaluated and demonstrated to have a significant impact on the learning process for novice Java programmers. SNOOPIE is fully integrated into a current introductory programming module and a future programme of work is being established that will see SNOOPIE integrated with other established software tools

    Similar works