Active Learning in the Context of the Teaching/Learning of Computer Programming: A Systematic Review
Authors: Henrique Berssanette João , Carlos de Francisco Antonio 
Published: May 2021

Aim/Purpose: This paper presents the results of a systematic literature review that sought to identify the studies that relate the different pedagogical techniques by which active learning is developed in the context of the teaching/learning of computer programming, with the objective to characterize the approaches, the pedagogical techniques used, the application, the contributions, and difficulties of implementation reported by these studies.

Background: The literature has shown that teachers in teaching programming have been less successful than they should and need to be, so dropout and failure rates for students remain high. In this sense, much has been discussed about the possibilities and limitations of using the active learning pedagogical techniques in this context.

Methodology: For this review, an analysis from all studies mentioning active learning in the context of the teaching/learning of computer programming published between 2014 and 2019 was performed, retrieved in WOS, SCOPUS, ScienceDirect, and ACM Digital Library. The selection of studies was based on a set of criteria established to guide the selection process, including alignment with the research questions and evaluating the quality of studies.

Contribution: This study contributes to an overview of the current scenario, characterizing the research studies that associate the different pedagogical techniques of active learning in the context of the teaching/learning of computer programming.

Findings: The results showed that the studies’ approaches usually occur by intervention/pedagogical experiment or by the development of a tool, instrument or methodology. The lipped classroom methodology has obtained a notable prominence in research. The use of active learning pedagogical techniques results in greater acceptance or positive feedback from students, increasing their satisfaction or motivation to improve the learning experience, learning outcomes, or student performance. However, they require a greater effort/work by the teacher to plan and/or execute the teaching/learning process. It should be highlighted that the contributions observed for the teaching/learning process of computer programming derive from investigations mainly concentrated in the university context, aiming to observe if these contributions can be reproduced in other education levels. The contributions observed in the studies regarding the uses of pedagogical techniques of active learning in the context of computer programming indicate that their use can contribute significantly to the teaching/learning process, showing it to be a viable alternative and consistent with the reduction of the failures in the learning of programming.

Recommendations for Practitioners: Considering that over the years the teaching/learning process of computer programming has been a challenge for students, based on the findings of this research, we recommend that teachers consider restructuring their traditional practices of teaching computer programming, making use of pedagogical techniques of active learning to obtain better learning results of their students.

Recommendation for Researchers: We recommend that fellow scholars consider investigating how the difficulties inherent to teachers related to the teaching/learning process of programming may relate to difficulties concerning students and content, especially with regard to traditional teaching practices.

Impact on Society: This study adds to previous systematic reviews of the literature, specifically studies that relate active learning to the context of teaching/learning of programming. It is hoped that the findings of this article can support other research that addresses the topic, enabling its development and deepening, through the developed basis from which active learning researchers can work.

Future Research: Future studies may investigate the benefits of using different pedagogical techniques for active learning and the costs related to the higher cognitive burden imposed by these techniques for learning computer programming.