James H. Paterson
Glasgow Caledonian University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by James H. Paterson.
technical symposium on computer science education | 2007
Arnold Pears; Stephen Seidman; Lauri Malmi; Linda Mannila; Elizabeth S. Adams; Jens Bennedsen; Marie Devlin; James H. Paterson
Three decades of active research on the teaching of introductory programming has had limited effect on classroom practice. Although relevant research exists across several disciplines including education and cognitive science, disciplinary differences have made this material inaccessible to many computing educators. Furthermore, computer science instructors have not had access to a comprehensive survey of research in this area. This paper collects and classifies this literature, identifies important work and mediates it to computing educators and professional bodies. We identify research that gives well-supported advice to computing academics teaching introductory programming. Limitations and areas of incomplete coverage of existing research efforts are also identified. The analysis applies publication and research quality metrics developed by a previous ITiCSE working group [74].
international conference on program comprehension | 2015
Teresa Busjahn; Roman Bednarik; Andrew Begel; Martha E. Crosby; James H. Paterson; Carsten Schulte; Bonita Sharif; Sascha Tamm
Code reading is an important skill in programming. Inspired by the linearity that people exhibit while natural language text reading, we designed local and global gaze-based measures to characterize linearity (left-to-right and top-to-bottom) in reading source code. Unlike natural language text, source code is executable and requires a specific reading approach. To validate these measures, we compared the eye movements of novice and expert programmers who were asked to read and comprehend short snippets of natural language text and Java programs. Our results show that novices read source code less linearly than natural language text. Moreover, experts read code less linearly than novices. These findings indicate that there are specific differences between reading natural language and source code, and suggest that non-linear reading skills increase with expertise. We discuss the implications for practitioners and educators.
Proceedings of the 2010 ITiCSE working group reports on | 2010
Carsten Schulte; Tony Clear; Ahmad Taherkhani; Teresa Busjahn; James H. Paterson
The area of program comprehension comprises a vast body of literature, with numerous conflicting models having been proposed. Models are typically grounded in experimental studies mostly involving experienced programmers. The question of how to relate this material to the teaching and learning of programming for novices has proven challenging for many researchers. In this critical review from a computer science educational perspective, the authors compare and contrast the way in which different models conceptualize program comprehension. This provides new insights into learning issues such as content, sequence, learning obstacles, effective learning tasks and teaching methods, as well as into the assessment of learning
technical symposium on computer science education | 2006
James H. Paterson; John Haddow; Michael Nairn
Design patterns now have a strong influence on the design and development of object oriented software. It is therefore becoming increasingly important to teach patterns. In this paper we describe a tool, in the form of an extension to the BlueJ IDE, which has been developed to encapsulate knowledge of patterns in the IDE and to help students explore them and learn how to make use of them. The extension adds the capability to BlueJ to provide step-by-step construction of a pattern-based solution to a programming problem. We present technical details of the tool and describe an example of its use.
Innovation in Teaching and Learning in Information and Computer Sciences | 2012
Jim Devon; James H. Paterson; David C. Moffat; June McCrae
Abstract In this paper, we describe the usage patterns found on four different modules and analyse the detailed outcomes of two case studies based around the usage of the PeerWise system which encourages students to create multiple choice questions (MCQs) for their peers and allows them to evaluate and write comments on MCQs written by their peers. The case studies evaluated data collected from using PeerWise with different student cohorts taking the same modules over two consecutive academic years. Between the years interventions were introduced to attempt to increase student engagement. It was noted that although increased levels of participation were observed in cohorts on different modules the authors are aware that other factors often can have a strong influence, including the awarding of marks for participation, the year of study and students perceived value. This evaluation seems to show that the early and specific interventions applied did have an influence on the pattern of student usage by increasing the student engagement with the PeerWise system.
british national conference on databases | 2010
James H. Paterson; John N. Wilson; Petra Leimich
This discussion paper introduces three very different methods and contexts for the use of peer assessment in introductory database classes, each of which is supported by different learning software tools. In the first case study, at Glasgow Caledonian University, Contributing Student Pedagogy is used, where students contribute to the learning of others through the collaborative creation of a bank of self-assessment questions. This is supported by the Peerwise software tool. Secondly, at the University of Strathclyde, students undertake formative assessment of others in providing feedback on an initial element of a larger coursework assessment. A number of virtual learning environments (VLEs) are capable of supporting this method through customisable discussion fora. Finally, at the University of Abertay Dundee, peer and self assessment are used in a group project to adjust the group grade for individual students. This is effected through the use of the WebPA software tool.
Innovation in Teaching and Learning in Information and Computer Sciences | 2007
James H. Paterson; John Haddow
Abstract This paper reports the use of the PatternCoder tool in the teaching of object-oriented design and programming. This tool has been developed by the authors as an extension to the BlueJ Java Integrated Development Environment (IDE). PatternCoder encapsulates knowledge of design patterns and basic class relationships, and of the techniques required for their implementation in Java. It guides students through a step-by-step process: select an appropriate pattern or relationship; give the classes which participate in the pattern names relevant to the current problem domain; and generate code for minimal Java class definitions which can then be explored and extended. The tool was initially developed with a view to teaching advanced design patterns, but we have explored its use within introductory classes, viewing binary class relationships as simple design patterns. 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.
technical symposium on computer science education | 2004
James H. Paterson; John Haddow
This presentation discusses and demonstrates the advantages and limitations of a range of object persistence strategies for use in student projects.
technical symposium on computer science education | 2003
James H. Paterson; John Haddow
In this Tip we describe the use of a simple Object Oriented database system to implement object persistence in Java programming projects.
technical symposium on computer science education | 2008
James H. Paterson; John Haddow; Ka Fai Cheng
This poster presents the use of a customizable code pattern tool to provide support for teaching of binary class associations in object-oriented design and programming based on recent research on the semantics of associations.