“…• Introduced collaborative learning by dividing large groups up into approximately 20 students for laboratory and tutorial classes (Daniels, 1996); • Introduced Scripting languages to teach computer programming instead of system programming languages, such as Java and C++ (Warren, 2001); • Introduced Iconic programming notations, such as B# (developed at NMMU) to provide students with an opportunity to focus on problem solving skills instead of low-level programming details (Cilliers, 2005); • Identified that the pass rate of grade 12 students that have taken Information Technology as a school subject is low and the level of proficiency is poor (Havenga, 2009); • Identified motivation as an important aspect that influences student understanding (Koorsse, 2010b); and • Identified that computer programming is difficult to such an extent that very few students are able to write simple programs that compile and run on completion of novice students' first computer programming course (Koorsse, 2010a, Vogts, 2008. Although some researchers have made use of innovative pedagogical approaches within the South African context, the state of teaching-and-learning computer programming within the South African context is less than desirable (Havenga, 2009).…”