ABSTRACT

This chapter describes Debugging Assistant for Novices (DAN), a suite of program analysis routines which can debug computer programs in the domain of labelled-directed-graph manipulation. The analysis routines aim to account for the behaviour of both working and buggy programs written in a semantic-network variant of LOGO. In a recursive procedure such as INFECT, a side effect may occur logically at any of five locations, depending on the juxtaposition of the side effect, the recursive call, and the termination test. In general, a recursive procedure may comprise any combination of effect steps. A library of recursive schemata enables us to analyse a range of students' programs, to combine set descriptions in a sensible way and to generate tailor-made counter-examples for programs which might work by accident. Writing programs in an elementary assertional data base language like SOLO is experienced by our students as a simple and natural entry point into programming.