COGNITIVE FIT - AN EMPIRICAL-STUDY OF RECURSION AND ITERATION
According to the theory of cognitive fit, problem-solving elements such as the problem representation and problem-solving tools and techniques should support the strategies (methods or processes) required to perform the task. This study investigates the validity of cognitive fit in the area of recursion and iteration. A laboratory experiment was conducted to assess the basic theory and extensions to the theory for recursive tasks across programming languages. The experiment used 34 LISP and 48 PASCAL computer science students in two repeated measures designs. Findings of the study are that: (i) the effects of programming language on subject performance were considerably stronger than cognitive fit effects; (ii) LISP appears to facilitate coding recursive constructs, while PASCAL and LISP appear to be equally effective in coding iterative constructs; (iii) performance effects of cognitive fit were present for LISP programmers, but not for PASCAL programmers; (iv) cognitive fit of problem representation to task had an effect on performance (in LISP programming) only when the construct and task were mismatched; and (v) performance also improved when subjects used their preferred programming constructs, although these effects appeared to be weaker than those due to cognitive fit. The unexpected findings due to programming language suggest some needed modification to the theory of cognitive fit. This research strongly suggests that investigation of programming constructs should take place in the context of specific programming languages. Since a number of languages provide similar kinds of programming constructs, it is difficult for programmers to choose those implementations that best suit their needs. One way of encouraging the use of desirable constructs would be to develop languages adapted to certain types of tasks. Such an approach would inherently lead to cognitive fit and the attendant performance benefits would be realized.
cognitive fit recursion iteration problem representation problem-solving task