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.
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.
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.