Abstract: We think that the major cause of the students’ failure in introductory programming course is the lack of a basic skill, the problem solving ability. Several authors frequently regarded this skill as the most important cognitive activity in everyday, professional and educational contexts. In traditional programming teaching, generic problem solving is not emphasized. In this paper we discuss the concepts and stages of problem solving, considering also how experts and novices solve problems. The idea is that this analysis leads to a number of important principles for teach and learn problem solving strategies. The main purpose of this paper is to present the features of a system currently under development to support programming learning, focusing in problem solving activities.
Problem solving in progr