This was my undergraduate final year project, examining claims about the universal value of flowcharts (or structure diagrams) for helping reason about algorithms. In the beginning of a recurrent theme, the results showed that the value of a representation was dependent on the task to be performed.
An experiment was performed to investigate whether flowcharts improved the speed and efficiency of computer program debugging. Twenty-four subjects were given six problems, each a program containing one error. The errors could be located by studying the behaviour of the program. The subjects were divided into three groups of eight and were given the programs either as a listing, a Standard notation fiowchart or as a Bowles structure diagram. No significant differences were found between these three conditions for any of the three dependent variables, but there were differences in performance between problems. The analysis of performance variation across conditions and problems implies that fiowchart usefulness may not be a clear-cut issue. The results suggest that both the nature of the task and the individual programmer characteristics are important determinants of fiowchart utility. A framework is presented which emphasizes these factors and which is generalizable to other aspects of programming performance.