Problem solving and cognitive foundations for program development: an integrated model
Abstract
This paper addresses the interdependence among problem solving, cognition, and program development. The
goal is to present a coherent and complete theoretical model which can serve as a basis for program development
environments. To determine the type of support such environments should provide we first identify the actual
difficulties involved in learning programming. We then synthesize a common model for problem solving based
on existing methodologies. We next examine the problem solving tasks specific to program development,
identifying how to adapt or enhance the general common model to the area of program development. Finally, we
determine the cognitive science and learning theory relevant to problem solving identifying for each task of the
common model the appropriate cognitive techniques required, thus defining a Dual Common Model which
integrates the problem solving methodology and program development tasks with the cognitive knowledge and
skills needed at each stage of the process.