There is little doubt that students in third level frequently have problems with introductory programming courses. Evidence, both research based and anecdotal, leads one to recognise that many students of computer science and engineering claim to ‘hate programming’ and are of the opinion they are not able to do it. They give up on the subject, perhaps fail, or continue with their degrees but vow that their future careers will not include programming (Jenkins 2001).
Much has been written about the most appropriate language and paradigm to use in teaching such students (Feldgen and Clua 2004), and the trade-off between choosing a language for its pedagogical suitability or the extent of its use in industry (Jenkins 2001). There has also been an increasing depth of literature on innovative techniques to support introductory programming; suggestions have included the use of robots (Huggard and McGoldrick 2005), visual props (Atrachan 1998), theatre and even singing (Siegle 1999). Some students find programming difficult because of their lack of ability in dealing with algorithms (McDermott et al. 2001).
A number of advances have been adopted to help improve students ability to learn programming, including the use of the ALICE programming environment produced by Carnegie Mellon (Cooper et al. 2003; Dann et al. 2006), Scratch (Monroy-Hernnández 2007) and many other approaches (Lincke 2005; McKenna et al. 2005; Wellington et al. 2005; Amoussou and Steinberg 2006).