Vol.12 (2022) No. 2 ISSN: 2088-5334 A Flipped Classroom Framework for Teaching and Learning of Programming Rosnizam Eusoff a,* , Abdullah Mohd Zin b , Syahanim Mohd Salleh b a Center for Software Technology and Management, Faculty of Information Science and Technology, Universiti Kebangsaan Malaysia b Universiti Kebangsaan Malaysia, Bangi, 43000, Malaysia Corresponding author: * zameusoff@gmail.com Abstract—Programming is a difficult subject that requires high analytical skills to comprehend students. Various strategies are introduced to improve difficulties in learning programming for students. This study examined four flipped classroom frameworks and was triangulated with the findings of document analysis from 44 articles related to flipped classrooms in programming. The articles were coded using five different codes emergent from the research questions. The coding produced 314 quotations related to the research questions. The purposes of the flipped classroom are to prepare students before class, give extra in-class time, and create an active learning environment in the classroom. The flipped classroom was implemented mostly in two phases: pre-class sessions and in-class sessions, with individual and collaborative work activities. Ensuring the participation of students in the activities outside the classroom is the biggest challenge in a flipped classroom, while preparing tools and activities is cumbersome to some lecturers. The pre-class activities focus on the introduction and theoretical topic. The implementation of flipped classrooms reported improving students' skills, competencies, and satisfaction in programming. The potential of exploring analysis and problem-solving activities in pre-class sessions while strengthening students' knowledge in post-class sessions seems to be assured. A flipped classroom framework for programming is proposed. The framework has three phases; pre-class, in-class, and post-class, with suggestions, activities, and motivational elements to complement the conceptual and technical needs in programming using flipped classroom approach. Keywords—Learning of programming; flipped classroom; active learning; collaborative learning. Manuscript received 9 Apr. 2021; revised 30 Jun. 2021; accepted 18 Nov. 2021. Date of publication 30 Apr. 2022. IJASEIT is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. I. INTRODUCTION Programming is a systematic and scientific process that requires high analytical skills. Programming is also considered a challenging subject for students and teachers [1]. Programming is also considered one of the biggest challenges in computing [2]. Various studies concluded that programming is difficult to learn [3]–[9]. The difficulty in mastering these programming skills stems from several problems that previous researchers have identified. In solving this problem, various strategies are used in teaching and learning programming [10]–[14]. In general, the challenges faced by students in programming are classified into three main categories: syntactic knowledge, conceptual knowledge, and strategic knowledge [15], [16]. Most of the problems encountered are related to the level of existing knowledge possessed by the students [16]. In contrast to traditional teacher-centered learning methods, the flipped classroom approach is a method used to enhance students 'learning experience by strengthening students' self-learning outside the classroom [17]–[19] and active learning while in the classroom [20]–[22]. Active learning is one of the strategies that can improve students' understanding of programming [23]. There is an increasing interest in using the flipped classroom (FC) approach in teaching among educators [24]. This situation is supported by advances in communication information technology and the need for change in teaching and learning. A few flipped classroom frameworks and models are used as general guidelines in implementing FC in teaching and learning [25]–[29]. However, there are still shortcomings in terms of the implementation framework, theoretical limitations, and empirical evidence of the effectiveness of FC in teaching and learning [19], [29]–[31]. The study on the implementation of flipped classrooms for programming was conducted through document analysis of 44 systematically selected research papers. The analysis findings are used to answer some research questions that have been constructed for the implementation of the study. A 539