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 education, we have noticed a significant gap between the ability of students to program in an educational visual programming environment and the ability to write code in a professional programming environment. The aim of our research was to verify the methodology of transition from visual programming of mobile applications in MIT App Inventor 2 to textual programming in the Android Studio using the Java Bridge tool as a mediator of knowledge transfer. We have examined the extent, to which students will be able to independently program own mobile applications after completing the transition from visual to textual programming using the mediator. To evaluate the performance of students, we have analysed qualitative data from teaching during 1 school year and determined the degree of achievement of educational goals according to Bloom’s taxonomy. The results suggest that students in the secondary education can acquire advanced skills in programming mobile applications in a professional programming environment, when they have knowledge of visual programming in an educational programming environment, and a suitable mediator is used to transfer such knowledge into a new context.
Mark Weiser coined the term Ubiquitous Computing (UbiComp) describing a future in which everyday life-objects would have embedded computers providing services anytime and anywhere. This paradigm is theme recurrent in many graduate courses of Computer Science around the world. To better understand the challenge of teaching Ubiquitous Computing (UbiComp), we surveyed 15 professors and 60 graduate and undergraduate students from 16 universities. According to this survey, the two most challenging Ubicomp concepts to explain in a lecture are context-awareness and middleware platforms. Results also showed professors’ difficulty in finding tools to assist the practical teaching of UbiComp’s concepts. Current UbiComp tools require high programming skills or they are not designed for educational purposes. Therefore, this work presents the design, development, and evaluation of LUCy (Learning Ubiquitous Computing Easily), a Virtual Learning Environment which aids UbiComp practical classes. LUCy has two main elements: a Web tool and an Android mobile app. The former provides UbiComp theory materials, videos, practices, and simulations. The latter uses smartphones features and sensors to run simulations of UbiComp concepts. We evaluated LUCy during Context-Awareness classes in UbiComp courses, at the same university, along with three distinct semesters. In different three sessions, we gathered information about LUCy’s pedagogical and usability issues. Then, we performed a quasi-experiment using a pretest and posttest design methodology with twenty-seven students. Results showed LUCy practices significantly improves students reasoning about Context-Aware concepts.
Authors of this paper carried out a broader international research aimed at assessing the computer science education at upper secondary level of education - ISCED 3A. The assessed school subjects were informatics and programming as the most common school subjects taught at secondary schools within computer sciences. The assessment was based on the students' evaluations, their points of view and opinions, what was a specific feature of the research. The paper presents main findings and results for the school subject programming obtained in Slovakia (SK) and the Czech Republic (CZ). As a weakness of teaching programming in both countries inadequate quality of textbooks or a lack of appropriate textbooks in general was identified. As strength of the programming teaching in the Czech Republic attractiveness of the content of the school subject programming (its curriculum) was identified and in Slovakia it was the clearness of teachers' presentations of teaching material.
Conventional wisdom attributes the lack of effective technology use in classrooms to a shortage of professional development or poorly run professional development. At the same time, logo-like learning environments require teachers to develop more expertise not only in technology but also in pedagogy.
This paper proposes that the perceived lack of technology professional development is a myth and that traditional professional development is ill-suited to teaching teachers how to create logo-like learning environments. Furthermore, it proposes models of student-centered, student-led support for teachers that support classroom practice aligned with the attributes of logo-like learning environments. These models situate teacher learning about technology in their own classroom, reinforce constructivist teaching practices, provide support for technology use in the classroom, and enrich learning environments for students.