Teaching programming is a complex process requiring learning to develop different skills. To minimize the challenges faced in the classroom, instructors have been adopting active methodologies in teaching computer programming. This article presents a Systematic Mapping Study (SMS) to identify and categorize the types of methodologies that instructors have adopted for teaching programming. We evaluated 3,850 papers published from 2000 to 2022. The results provide an overview and comprehensive view of active learning methodologies employed in teaching programming, technologies, programming languages, and the metrics used to observe student learning in this context. In the results, we identified thirty-seven different ALMs adopted by instructors. We realized that seventeen publications describe teaching approaches that combine more than one ALM, and the most reported methodologies in the studies are Flipped Classroom and Gamification-Based Learning. In addition, we are proposing an educational and collaborative tool called CollabProg, which summarizes the primary active learning methodologies identified in this SMS. CollabProg will assist instructors in selecting appropriate ALMs that align with their pedagogical requirements and teaching programming context.
This study aims to explain the relationships between secondary school students' digital literacy, computer programming self-efficacy and computational thinking self-efficacy. The study group consists of 204 secondary school students. A relational survey model was used in the research method and three different data collection tools were used to collect data. The structural equation model was used in data analysis to reveal a model that explains and predicts the relationships between variables. According to the results of the research, it was determined that digital literacy of secondary school students affected their computer programming self-efficacy, digital literacy affected their computational thinking self-efficacy, and computer programming self-efficacy affected their computational thinking self-efficacy. It was also found that digital literacy skills have an indirect effect on secondary students' computational thinking self-efficacy on computational thinking self-efficacy.
In programming problem solving activities, sometimes, students need feedback to progress in the course, being positively affected by the received feedback. This paper presents an overview of the state of the art and practice of the feedback approaches on introductory programming. To this end, we have carried out a systematic literature mapping to understand and discuss the main approaches for providing and evaluating feedback used in the learning of novice programmers in the problem solving activity. Thus, according to a formal protocol, an automatic search was performed for papers from 2016 to 2021. As a result, 39 studies were selected for the final analysis. As a result, we propose three different categorizations: the main approaches to providing feedback, the main methods used in the evaluation and the main aspects and effects of the evaluated feedback.
Problem solving skills are considered an important component in learning to program in an introductory programming (IP) course for novices. This study introduced a PROSOLVE game to enhance problem solving skills of novice programmers in the introductory programming course. The game is based on pseudo-code technique. A survey was employed to collect students' feedback and semi-structured interviews were organized to collect instructors' opinion about the game. The results show that the game helped most of the students in understanding the programming concepts, structures and problem solving strategies. Moreover, the game supports students' cognitive engagement, gains, and affective engagement in the IP course. Instructors appreciated the game and considered it as an additional supporting teaching tool in the IP course. Moreover, they considered the game as good alternative of traditional pen and paper learning approach in attracting students' interest in the programming domain.
Blended learning is becoming an attractive model in higher education as new innovative information technologies are becoming increasingly available. However, just blending face-to-face learning with information technologies cannot provide effective teaching and efficient solutions for learning. To be successful, blended learning must rely on solid learning theory and pedagogical strategies. In addition, there is a need for a design-based research approach to explore blending learning through successive cycles of experimentations, where the shortcomings of each cycle are identified, redesigned, and reevaluated. This paper reports on a study conducted on a blended learning model in Java programming at the introductory level. It presents the design, implementation, and evaluation of the model and its implications for the learning of introductory computer programming.