Python Flipped Classroom: Teaching university students computer programming


In a “flipped classroom”, students are introduced to the learning materials prior to the class; the time in class is then used to deepen understanding. But how effective is that style of active learning for computer programming?


Professors Benjamin Gan and Eng Lieh Ouh at Singapore Management University study how students taking a beginner class in programming using the Python computer language, describe their learning experiences.


Read the original paper:


Image source: Gorodenkoff / Shutterstock




Hello and welcome to Research Pod!  Thank you for listening and joining us today.


In this episode, we’ll discuss the work of Associate Professor Dr Benjamin Gan, and Assistant Professor Dr Eng Lieh Ouh, both of the Singapore Management University, who have been conducting research into computing and information systems education. This research work focuses on how to teach Python programming to beginner students.


Computer programming can be taught through active learning pedagogy such as a “flipped classroom” – where students are introduced to the learning materials prior to the class; the time in class is then used to deepen understanding. Professors Gan and Ouh have been studying how effective this is for students who are predominantly studying a different subject, such as accounting, but choose to take a beginner class in programming using the Python computer language.


Flipping the classroom so students complete pre-class study and self-test before attending the class, and then use most of the time in class for exercises, is an effective way to teach majority of beginner students python even if their primary course of study is not information systems.  Students reported that flipped classrooms and problem based learning were effective in keeping student interest as well as good learning strategies, but extra exercises were not popular with some students.  However, the students who completed optional exercises scored better in assessments.



Teaching university students, and keeping them interested in their studies, can be challenging.  Universities have lots of different teaching tools available, but often there is a limited amount of class time available.  As University education is often designed to teach thinking skills, courses often take a long time.  Therefore, time that students spend in class, has to be wisely used.


There are many different strategies to help students learn such as games, problem based learning, and active learning, as well as constructive activities such as self-reflection and problem solving.  Another option is interactive dialogues such as group exercises, mentoring, and online social learning.  However, the evidence for improved outcomes from these different strategies is mixed, especially with gamification strategies such as clicker questions and kahoots.  Some students remain uninterested and the evidence of improvement to final exam scores is limited.  But games and participative learning strategies can increase enjoyment, interest and engagement by students.



In a “flipped classroom”, students complete independent, self-driven learning prior to the class.  Students come to class prepared, having learned about the topic and tried questions around the subject matter.  The class time is therefore used for active discussion, practical problem solving, and exercises – instead of lecturing.


Ideally this means that students are able to use their class time for interacting, leading to deeper learning. A flipped classroom can help students to develop their self-regulation, self-direction, and flexibility.  Ultimately it is a good use of resources, especially teacher time.


However, there are risks.  While watching more video lectures is associated with improved grades, with the largest gain in the lower-performing students – but students may not be motivated to study outside class time.  Procrastination can be an issue, with students often accessing learning materials immediately prior to the class.


Combining a flipped classroom with other learning strategies, such as problem-based learning, is especially effective for weaker students.




Teaching a beginner class in computer programming for undergraduates is challenging as teachers have to take account diversity in student’s background, confidence level, and engagement. Beginner classes are offered to students studying information systems, as well as those who are majoring in another subject.  Using a variety of learning approaches and teaching tools can help with the variety of starting places.


Teaching beginner programming to students whose primary subject is something else, using a flipped classroom, is an area that hasn’t previously been studied in detail.



Professors Gan and Ouh taught a beginner Python programming course at the Singapore Management University in Spring 2021.  They conducted a post-course evaluation that investigated the use of the flipped classroom for students whose primary subject was not information systems.  They were interested in what activities helped students to keep their interest, what activities helped students learning, and what the student views were around the flipped classroom approach.


Students were required to prepare for their class by completing exercises and self tests, for which they could gain participation points.  The tests were multiple choice, and automatically marked.  This created some work for the teaching team, as the auto-grader required maintenance, but ultimately was a significant reduction on teacher workload.  Although some students used the multiple choice system to correct mistakes, the immediacy of results was popular, and students felt it improved performance.


The classes lasted three hours, and began with a teacher summarising learning outcomes that students should have already achieved.  The teacher then followed this with kahoots and pop quizzes, which are meant to be fun, and which students could answer with nicknames – although successful students who chose to disclose themselves could gain participation points.


Thereafter class time was devoted to working individually, with support from a teacher.  Students completed between 3 and 8 small exercises a week in class, and they were marked from 1 to 3 stars depending on their level of difficulty.  Extra exercises were also available for stretching able students.


After the class, there were labs available for students to further their learning, and there were more problems available if students wanted further exercises to continue their learning.


The final assessment was through laptop lab tests and a paper examination.  The two laptop tests were each worth 25% of the final mark and were completed without internet connection.  This was enforced through a lockdown browser and with supervision in place.  The results had to be completed in a fixed format and were generally automatically marked using a customized script written by the course teacher.  This reduced teacher effort overall but sometimes the teacher had to manually grade the work in order to work out a partial credit score when students submitted bad format solutions.


Preventing plagiarism is important and although the course teachers had confidence in the laptop tests they supplemented it with a pen and paper exam, worth 35% of the total mark.  Without access to laptops, notes, and tools the pen and paper exam is designed to reduce cheating.  However, students pointed out that this does not mimic the industry working environment for computer programming and some students wanted their final exam on their laptops.


The beginner programming course involved 518 students, and the research focuses on a subgroup who undertook the beginner python course to fulfil a requirement for their primary course or had taken the course as a form of professional literacy.  28 valid responses were received, which is sufficient for statistical purposes as it is a third (33%) of the subgroup of 84 non-information systems students.


Students reported that they found the exercises in class and the labs both interesting and effective for learning.  They also said that they learned through the pre class exercises and the lab tests.  However, the extra exercises and the final exam were unpopular.


However, in terms of final grades, the motivated students, who engaged with the extra exercises and labs, scored better.  These optional tasks were rated as less preferred learning activities by students, but they were associated with higher marks.


Overall student’s self-rating of their ability was significantly correlated with their actual outcome. In the final assessment, those who stated they started the course having good coding skills, suggesting higher confidence levels, scored better than those who self-rated more negatively.


The majority of students evaluated flipped learning positively as an efficient use of class time.  However, 14% of students felt neutral or disagreed stating that they wanted the teacher to spend time in class going through concepts and explaining things.


This evaluation demonstrates that active in class exercises in flipped classrooms are effective for teaching non-information system students programming.



Reflecting on the results, Professors Gan and Ouh suggest some possible future strategies, including using pair programming rather than individual work on class exercises, which may increase student engagement with the work. “While our results showed an 86% success rate of flipped classroom pedagogy,” they say “we advise teachers to be cognizant of the 14% who may not like the flipped format. Spend extra time to review the concepts covered with them. It is good not to leave anyone behind, nor consider a one size fits all solution. In future studies, we are looking into ChatGPT as an AI pair programming alternative such as GitHub co-pilot, in addition to other teaching tools such as auto-graders, gamification, laptop exam, machine learning, and real-time student feedback.”


Overall the research shows the success of a flipped classroom environment for teaching beginner programming courses for students who are primarily studying another subject.  Students rated the flipped classroom positively, and the significant correlations in ratings show that for a beginner programming course, a flipped classroom can be chosen as a teaching strategy.


That’s all for this episode, thanks for listening.  Don’t forget to subscribe to ResearchPod for more detailed breakdowns of the latest academic research.  See you next time!


Leave a Reply

Your email address will not be published.

Researchpod Let's Talk

Share This

Copy Link to Clipboard