October 2007 - Volume 6 Issue 4
Innovative Methods Of Teaching Programming

Editorial by Phillip Benachour
Lancaster University

Welcome to this special issue of Italics on Innovative methods of teaching programming. The aim of this issue is to share ideas, practices and experiences of teaching programming to computing and information technology students in the UK and internationally. Two areas of research are addressed, the first looks at the current teaching and assessment methods as well as module designs used to engage students in the learning of a programming language and the second addresses how these methods can be improved to provide a better experience for students. I am delighted to say that the papers received for this issue cover areas that have provided regular and informed discussions on this topic. In particular, the different approaches to the delivery of modules on object-oriented programming, student engagement, module design and assessment.

The motivation came from personal experience of teaching programming at Lancaster University to undergraduate students with different backgrounds and abilities. Over the last few years, student numbers in computer science and engineering have experienced a steady decline. The perception by current students is that these subject areas are academically demanding, and that programming in particular is a hard subject to study. Yet, there is still a shortage of computer scientist and engineers in industry. Numerous papers have been previously published in this field however students continue to struggle with learning to program as Teague and Roe point out in the first paper of this issue: “Learning to Program: Going Pear-Shaped”. In their paper, the authors argue that although programming really is complex and difficult to learn, there are also cultural and social influences on students presenting to introductory computer science courses. This paper highlights the advantages of intensive collaboration between students by exploiting the students’ own ability and desire to interact with their peers. The second paper by Leeman and Glass focuses on the use of simulated robots and an artificial life simulation in the teaching of Java to first year students. The technique is compared with a more traditional approach used and results from student feedback shows that significant advantages could arise from using such approaches, particularly in terms of enhancing student interest in programming. The next paper by Price, from the University of Worcester, uses 20th century abstract Art as a basis for teaching Object-Oriented programming. This paper focuses on works from artists such as Kandinsky, Klee and Malevich to explore the meaning of classes, methods and attributes and to synthesize new works of art through Java code. Changing the theme slightly, Routledge et al describe in their paper a number of activities used to engage multimedia students in the learning of scripting and programming using animation, visualization and mixed reality gaming.

The fifth paper, by Ahmadzadeh et al reports on a continuing study in improving students' ability to program by monitoring their pattern of behavior. In particular the study focuses on a learning pattern through monitoring compiler errors and debugging. The paper by Yang and Joy reports on the results of a review of approaches used to teach Prolog and highlighted the suitability of these approaches. and factors that may influence it. The next paper reports on the use of the “PatternCoder” tool, developed by Patterson and Haddow, in the teaching of object oriented design and programming. Initial experience with the tool within an introductory Java module has been positive, with students actively choosing to use the tool and feeling that the teaching approach based on its use was beneficial to their understanding of class relationships.

In the paper titled “Sense before Syntax: a path to a deeper understanding of objects”, Griffiths et al argue that the Java syntax and semantics first approach are unstable in long-term memory. They describe a successfully adapted model developed for teaching objects concepts first through the vehicle of a pure object language, leading to the teaching of object concepts using Java.

From a student engagement viewpoint, Whitfield et al present a set of strategies developed at Liverpool Hope University over several years which have been successful in promoting programming as an interesting and worthwhile discipline. Jones from Bournemouth University examines student motivation and engagement as they progress through the revised delivery of an introductory programming unit.

The last two papers of this issue focus on student assessment. Bennedsen and Caspersen describe and evaluate a practical lab examination that assesses the students’ programming process. The authors of this paper argue that traditional assessments (e.g. oral, written, or multiple choice) are unsuitable to test the programming process. In the final paper titled “Seeing the Whole Picture: Evaluating Automated Assessment Systems”, Haley et al argue that automated assessment systems can be useful for both students and educators provided that its results correspond well with human markers. This is an interesting approach where the authors present an evaluation framework based on Latent Semantic Analysis- (LSA) based systems and show why it can be useful for both producers and consumers of automated assessment.

Finally, I would like to thank all the authors who have contributed to this special issue on Innovative Methods of Teaching Programming. I would also like to say a special thank you to everyone at the Higher Education Academy for their support and encouragement. I hope that everyone will find something of interest and of practical value in this area of computer science in particular teaching, learning and student engagement.

IMAGE: PDF document Download the whole editorial in PDF Document