Descrição
Introductory programming courses entail students’ high failure and dropout rates. In an effort to tackle this problem, we carried out a qualitative study aiming to shed some light on the programming phase that is most challenging for students, in order to elicit the specific difficulties they experience while learning to program. In doing so, distinctive cognitive abilities, differentiating subjects in terms of the way they handle programming tasks, were detected. Such aptitudes are represented in three groups of students: those who learn easily, those who never seem to fully grasp what programming requires despite true effort, and those who experience a sudden insight, making them leap from a point were they had difficulties to another where they overcome them. By interviewing teachers and students, abstraction and sequencing elaboration were found to be the two core skills for programming. These results impelled us to consider the mental models’ approach, concluding that there are very specific cognitive functions that are more favorable to learn programming and that are fostered by more adequate schemas of representing reality. Some conclusions involving Problem-based learning as a fit teaching methodology to overcome students’ difficulties are also presented.