Introduction
The difficulties found in teaching and learning introductory programming are well known [1] [2]. The problem is complex and there are multiple factors that contribute for this scenery. We think that the problem is mainly related with three factors, namely, the students' background knowledge, the teaching methods and the learning methods. Based on this idea we put forward three research questions: Q1 - Have students the abilities required to learn programming? Q2 - Are the usual teaching conditions and methods adjusted to support programming learning? Q3 - Are the study methods used by most students appropriate for learning in general and for programming learning in particular?