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.
At 21st century Computational Thinking (CT) is considered a fundamental skill that anyone should possess and develop from a young age. Serious games and more specifically educational games (EGs) are a promising means of introducing algorithmic thinking and programming concepts and engaging students through the process of learning. In this article, a new EG called BlocklyScript is presented. BlocklyScript aims to help students develop their CT by learning basic programming concepts, designing algorithms and correcting mistakes. During the designing phase different EGs were taken under consideration and an EG design framework was followed in order to provide a better user experience. The game was evaluated by 10 experienced computer science educators of primary and secondary schools. The positive results of this pilot evaluation show that BlocklyScript is expected to help students understand the basic concepts of CT. However, the game should be evaluated by more teachers and students in order to provide future researchers with safe results.
The teaching of sorting algorithms is an essential topic in undergraduate computing courses. Typically the courses are taught through traditional lectures and exercises involving the implementation of the algorithms. As an alternative, this article presents the design and evaluation of three educational games for teaching Quicksort and Heapsort. The games have been evaluated in a series of case studies, including 23 applications of the games in data structures courses at the Federal University of Santa Catarina with the participation of a total of 371 students. The results provide a first indication that such educational games can contribute positively to the learning outcome on teaching sorting algorithms, supporting the students to achieve learning on higher levels as well as to increase the students' motivation on this topic. The social interaction the games promote allows the students to cooperate or compete while playing, making learning more fun.