The teaching of functions as the first step to learn imperative programming - Delgado, Carla A. D. M.; da Silva, João C. P.; Mascarenhas, Fabio; Duboc, Ana Luisa (Anais do Workshop sobre Educação em Computação (WEI), 2016)
The literature on teaching programming covers a wide discussion regarding the approach to be adopted in an introductory course. While the objectoriented paradigm requires a high level of abstraction and can overshadow basic concepts, the structured imperative paradigm lacks a guideline to motivate and drive the process of building programs. In this paper we present a modularization based approach for teaching programming to the novices using the imperative paradigm. The construction of self contained modules of code - programming functions in Python - is worked with the students from the very first class until the end of the course. We describe our experience and report the results obtained from the implementation of this approach in a scenario of more than a dozen courses offered each semester over three years.