I am a university lecturer in Malawi and a PhD student at Huazhong University of Science and Technology in China, with over nine years of experience teaching programming at the university level. My lessons are a blend of presentations, hands-on practice, and interactive discussions. I often employ the PRIMM methodology when teaching programming, particularly for beginners. PRIMM stands for Predic...
I am a university lecturer in Malawi and a PhD student at Huazhong University of Science and Technology in China, with over nine years of experience teaching programming at the university level. My lessons are a blend of presentations, hands-on practice, and interactive discussions. I often employ the PRIMM methodology when teaching programming, particularly for beginners. PRIMM stands for Predict, Run, Investigate, Modify, and Make, and it's designed to foster deep understanding of programming concepts.
With this method, I first encourage students to predict the output of a given code snippet before running it. This encourages critical thinking and helps students engage with the material more actively. Next, the students run the program to check their predictions against the actual output, which reinforces their understanding of how the code works.
After running the program, we move to the investigate stage, where I pose targeted questions aimed at probing the students' grasp of key concepts demonstrated in the code. This stage ensures that students are not merely following instructions but are comprehending the underlying logic.
In the modify phase, students are guided to make changes to the code. This reinforces the material and helps them understand how small alterations can affect the overall program. Finally, in the make phase, students are presented with a challenge that mirrors the concepts they've just explored, requiring them to create a new program. This allows them to apply the knowledge gained during the lesson and demonstrates their ability to code independently.
Through this structured approach, I ensure that students don't just memorize code but truly understand how it functions, leading to a deeper mastery of programming.