Implementing Models of Programming Problem Solving
摘要
Programming is an increasingly necessary and complex problem solving domain that requires implementation knowledge of basic constructs (e.g., loops, conditionals, variables, etc.), as well as the ability to compose complex constructs using the basic ones in order to solve problems (e.g., creating a function with loops, conditionals and variables). In other complex problem solving domains such as physics, experts are shown to not simply know more of the underlying concepts than novices, they also structure their approach to problem solving in a fundamentally different way by identifying and properly organizing the relevant mental schemas representing the underlying physics principles that applied to the problem at hand. Earlier work identifies that knowledge and understanding of data structures is a critical difference between expert and novice approaches [3, 21]. In the present work we extended the set of Models of Programming Problem Solving (MPPS) first made by Vorobeva [20] in the Python ACT-R suite to capture differences in data structure usage (among other differences) in expert and novice problem solving approaches to a novel programming problem. By formalizing the differences in strategic approaches in this way, we can better inform pedagogical approaches to teach programming skills.