James H. Paterson

dblp:79/662 · DBLP profile ↗
← Back
20ranked-venue papers
13as first author
4since 2021 · last 2024
0000-0002-6955-1009ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 14 · 11 first-author · 3 since 2021Software engineering, systems software and programming languages · 4 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 2 first-author
YearPublicationVenuePosition
2024 Evaluating the Relative Importance of Product Line Features Using Centrality Metrics
abstract
A software product line is a set of products that share a set of software features and assets, which satisfy the specific needs of one or more target markets. One common artefact of software product line engineering is a feature model, usually represented as a directed acyclic graph, which shows the product line as a set of structural feature relationships. We argue that there are benefits to considering a feature model as a directed graph and an undirected graph, respectively. One element of managing the impact of a change to these models, as they increase in complexity, is to evaluate the relative importance of the features. This paper explores the application of centrality metrics from social network analysis for the identification of the relative importance of features in feature models. The metrics considered are degree centrality, closeness centrality, eccentricity centrality, eigenvector centrality and between-ness centrality. To illustrate, a product feature model is constructed from a real-world GSMA AI-mobile phone product line requirements specification.
Fathiya Mohammed, Mike Mannion, Hermann Kaindl, James H. Paterson
ICSOFT4
2023 Exploring Computing Science Programs' Admission Procedures with a Diversity and Inclusion Lens
abstract
Computing science education has experienced low attendance and historic declines in registration from different minority groups. The past decade of enrollment surge in computer science undergraduate programs has increased the number of women and minorities in the field, but the improvements are inconsistent and less than expected. An increase in the use of computing science and in the demand of technology workforce is expected in the upcoming years. Thus, computing science is set to shape the future of technology for a diverse set of technology users. Therefore, it is important to analyze how undergraduate program admission procedures are affecting Equity, Diversity, and Inclusion of historically marginalized groups in computing science.
Ouldooz Baghban Karimi, Giulia Toti, Mirela Gutica, Rebecca Robinson, Lisa Zhang 0003, James H. Paterson, Peggy Lindner, Michael O'Dea
ITiCSE (2)6
2022 Embedding Vendor Certifications in the Cloud Computing Curriculum: Scope, Strategy and Perceptions
abstract
A series of previous Working Groups has met at ITiCSE conferences to explore ways of incorporating cloud computing into courses and curricula, including mapping industry job skills to knowledge areas (KAs) and KAs to student learning objectives (LOs). The importance of industry-standard learning content and certification, produced by cloud vendors and others, was apparent throughout this work. This Working Group will focus on the role of certification within cloud computing curricula, from the viewpoints of a range of stakeholders: students, graduates, institutions, vendors and other certification providers; and employers. Areas for study will include: the scope of available certifications and their mapping to our KAs and LOs; approaches to integrating certification in academic cloud curricula, and challenges involved in doing so; and perceptions of the stakeholders of the role and value of certifications in evidencing employability. The outcome of the work will include a set of recommendations for best practice.
James H. Paterson, Joshua Adams, Derek Foster, Ouldooz Baghban Karimi, Zain Kazmi, Ruth G. Lennon, Sajid Nazir, Lee Stott, Laurie White
ITiCSE (2)1
2021 Planning a Conceptual Framework Approach for Teaching Cloud Fundamentals
abstract
Three previous Working Groups (WG) have met at ITiCSE conferences to explore ways of incorporating cloud computing into courses and curricula by mapping industry job skills to knowledge areas (KAs) and KAs to student learning objectives (LOs) and using these as the framework for a repository of learning materials and course exemplars \citefoster2018, foster2019, adams2020. The ongoing value of the work of these WGs will be enhanced by validating the KAs and LOs and their mapping to current job skills and continuing to build a community of educators who will contribute to and benefit from the repository.
James H. Paterson, Joshua Adams, Laurie White, Andrew Csizmadia, Deger Cenk Erdil, Derek Foster, Mark Hills 0001, Zain Kazmi, Karthik Kuber, Sajid Nazir, Majd F. Sakr, Lee Stott
ITiCSE (2)1
2020 Computing degree apprenticeships: An opportunity to address gender imbalance in the IT sector?
abstract
This paper explores the potential for new work-based apprenticeship degrees to encourage more women into computing degrees and the IT sector. In the UK, women are currently under-represented on computing courses. Meanwhile the IT industry requires more computing graduates, in general, and specifically more highly skilled women to create appropriate products and systems. The UK has recently introduced apprenticeship computing degrees, where the apprentice is a work-based employee. In some models, apprentices spend 20% of their time on Higher Education studies and also gain credits through work-based learning; in others, apprentices spend blocks of time in Higher Education and the workplace. These degrees offer a new and innovative route to studying computing at university. Largely funded by employers, apprentices are salaried, and their fees are paid, paving the way for more people to study for a degree. The work context enables apprentices to keep their jobs (if relevant) or to move into IT roles and start a computing degree without necessarily having computing qualifications; the degrees have no upper age limit. Extending the work-based approach of US cooperative education and student work placement models, apprenticeship degrees have been introduced to increase skills levels through a close partnership between universities and employers. This is particularly important in IT, where the sector is expanding, and employers are looking for both good technical and personal skills. With this model, employers are collaboratively involved in the design of the degrees and apprentices graduate with extensive work experience.We posed the following research question: Are there differences in the paths into computing apprenticeship degrees between women and men? A survey was conducted with apprentices beginning a degree in Fall 2019: Cyber Security, Data Science, IT Management for Business, or Software Engineering/Development. Participants were asked about their routes into the apprenticeship and the IT sector. Apprentices at five universities in Scotland and one in Northern Ireland completed the survey, on paper or online (n=85; 23 female, 59 male).The results revealed a less severe gender imbalance than with comparative on-campus degrees (28% female), but this varied greatly across the subjects, from Data Science, where 55% of respondents identified as female and IT Management for Business (40% female), to Software Development (27% female) and Cyber Security (only 11% female). Apprentices were more likely to have started the degree at least a few years after leaving school and this was especially true for women. More female respondents had also been with their current employer for over five years. However, women were slightly more likely to have joined their employers in order to start the apprenticeship.This initial work identifies opportunities to recruit women onto computing degree apprenticeships, for example by targeting women who have started careers. It also highlights that there are challenges in recruiting women into certain subject areas, especially Cyber Security, but also Software Development. Exploring our respondents' motivations for choosing their subjects illuminates the gender balance challenge and indicates how degree apprenticeships can encourage more women into the IT sector.
Sally Smith, Ella Taylor-Smith, Khristin Fabian, Matthew Barr, Tessa Berg, David Cutting, James H. Paterson, Tiffany Young, Mark Zarb
FIE7
2020 EMIP: The eye movements in programming dataset
abstract
A large dataset that contains the eye movements of N=216 programmers of different experience levels captured during two code comprehension tasks is presented. Data are grouped in terms of programming expertise (from none to high) and other demographic descriptors. Data were collected through an international collaborative effort that involved eleven research teams across eight countries on four continents. The same eye tracking apparatus and software was used for the data collection. The Eye Movements in Programming (EMIP) dataset is freely available for download. The varied metadata in the EMIP dataset provides fertile ground for the analysis of gaze behavior and may be used to make novel insights about code comprehension.
Roman Bednarik, Teresa Busjahn, Agostino Gibaldi, Alireza Ahadi, Mária Bieliková, Martha E. Crosby, Kai Essig, Fabian Fagerholm, Ahmad Jbara, Raymond Lister, Pavel A. Orlov, James H. Paterson, Bonita Sharif, Teemu Sirkiä, Jan Stelovsky, Jozef Tvarozek, Hana Vrzakova, Ian van der Linde
Sci. Comput. Program.12
2018 A review of introductory programming research 2003-2017
abstract
A broad review of research on the teaching and learning of programming was conducted by Robins et al. in 2003. Since this work there have been several reviews of research concerned with the teaching and learning of programming, in particular introductory programming. However, these reviews have focused on highly specific aspects, such as student misconceptions, teaching approaches, program comprehension, potentially seminal papers, research methods applied, automated feedback for exercises, competency-enhancing games, and program visualisation. While these aspects encompass a wide range of issues, they do not cover the full scope of research into novice programming. Some notable areas that have not been reviewed are assessment, academic integrity, and novice student attitudes to programming. There does not appear to have been a comprehensive review of research into introductory programming since that of Robins et al. It is therefore timely to conduct and present such a review in order to gain an understanding of the research focuses, to highlight advances in knowledge since 2003, and to indicate possible future directions for research. The working group will conduct a systematic literature review based on the guidelines proposed by Kitchenham et al. This research project is well suited to an ITiCSE working group as the synthesis and discussion of the literature will benefit from input from a variety of researchers drawn from different backgrounds and countries.
Andrew Luxton-Reilly, Simon, Ibrahim Albluwi, Brett A. Becker, Michail N. Giannakos, Amruth N. Kumar, Linda M. Ott, James H. Paterson, Michael 'Adrir' Scott, Judithe Sheard, Claudia Szabo
ITiCSE8
2015 Experience of an International Collaborative Project with First Year Programming Students
abstract
This paper describes an Erasmus Intensive Programme that used international collaboration as a novel pedagogical approach to teaching programming skills to first-year students in a blended learning context using a mixture of virtual environment and intensive teaching. The experience and outcomes of the Programme are evaluated from the viewpoints of the students and instructors and conclusions are drawn on the value and conduct of international student collaborations.
James H. Paterson, Markku Karhu, Walter Cazzola, Irina Illina, Robert Law, Dario Machiodi, Marisa Maximiano, Catarina Silva 0001
COMPSAC1
2015 Eye movements in code reading: relaxing the linear order
abstract
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.
Teresa Busjahn, Roman Bednarik, Andrew Begel, Martha E. Crosby, James H. Paterson, Carsten Schulte 0001, Bonita Sharif, Sascha Tamm
ICPC5
2011 On the Quality of Examples in Introductory Java Textbooks
abstract
Example programs play an important role in the teaching and learning of programming. Students as well as teachers rank examples as the most important resources for learning to program. Example programs work as role models and must therefore always be consistent with the principles and rules we are teaching. However, it is difficult to find or develop examples that are fully faithful to all principles and guidelines of the object-oriented paradigm and also follow general pedagogical principles and practices. Unless students are able to engage with good examples, they will not be able to tell desirable from undesirable properties in their own and others’ programs. In this article we report on a study in which experienced educators evaluated the quality of object-oriented example programs for novices from popular Java textbooks. The evaluation was accomplished using an online checklist that elicited responses on the technical, object-oriented, and didactic quality of examples. In total 25 reviewers contributed 215 reviews to our dataset, based on 38 example programs from 13 common introductory programming textbooks. Results show that the evaluation instrument is reliable in terms of inter-rater agreement. Overall, example quality was not as good as one might expect from common textbooks, in particular regarding certain object-oriented properties. We conclude that educators should be careful when taking examples straight out of a textbook.
Jürgen Börstler, Marie Nordström, James H. Paterson
ACM Trans. Comput. Educ.3
2009 Using coding patterns in a model-driven approach to teaching object oriented programming
abstract
This poster presents an approach used within object-oriented programming classes which focus explicitly on the transition from conceptual model classes to code. This approach is supported by a software tool which has been developed to provide support in the selection and implementation of appropriate coding patterns.
James H. Paterson, John Haddow, Ka Fai Cheng
ITiCSE1
2009 PatternCoder: A Programming Support Tool for Learning Binary Class Associations and Design Patterns
abstract
PatternCoder is a software tool to aid student understanding of class associations. It has a wizard-based interface which allows students to select an appropriate binary class association or design pattern for a given problem. Java code is then generated which allows students to explore the way in which the class associations are implemented in a programming language. This article describes the rationale behind the tool, gives a description of the tool itself, and reports on our experiences of using the tool in our teaching.
James H. Paterson, Ka Fai Cheng, John Haddow
ACM Trans. Comput. Educ.1
2008 Drawing the line: teaching the semantics of binary class associations
abstract
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.
James H. Paterson, John Haddow, Ka Fai Cheng
ITiCSE1
2007 From classes to code: supporting the transition from design to implementation
abstract
This paper describes provision of support for the implementation of fundamental class relationships through the use of a tool previously created for teaching design patterns.
James H. Paterson, John Haddow
ITiCSE1
2006 A design patterns extension for the BlueJ IDE
abstract
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.
James H. Paterson, John Haddow, Michael Nairn
ITiCSE1
2005 Using the BlueJ IDE in a data structures course
abstract
This poster describes the use of the BlueJ Java IDE in a data structures course. The BlueJ IDE is an excellent tool for teaching programming using an objects-first approach. Learners are able to create, inspect and interact with instances of classes without the requirement to initiate a process with a main method. The ability to inspect 'live' objects can provide insights in specific areas of programming beyond the basic concepts. We have made use of BlueJ in an introductory course on data structures for students who have previously learned object oriented programming using BlueJ. The course deals with stacks, queues, lists, binary trees and graphs.Descriptions, diagrams, animations and simulations can all play a part in understanding the way in which these structures store and provide access to their data. However, interacting directly with actual objects which have been instantiated from code which the student has written can make the data structure much more tangible. The capability in BlueJ to inspect an object and to navigate object references to inspect associated objects allows a direct visual exploration of the internal representation of a data structure.For example, BlueJ allows the student to write a linked list class, create and populate an instance of the class, and visually inspect the nodes of the list. Object references can be followed from node to node to traverse the list. This experiment provides strong contrast with a visualization of the storage in an array list. The point can be emphasized that data structures with the same interface can have completely different internal representations.Similarly, a graph data structure is represented diagrammatically in terms of vertices joined by edges. However, there are a number of ways in which graphs can be represented internally, including adjacency lists and adjacency matrices. An adjacency list representation consists of a list of vertices, each of which is associated with a list of edges originating from that vertex. BlueJ allows visual exploration of such a structure, which can then be related back to the diagrammatic representation.Since BlueJ also allows API class instances to be inspected, the internal representations used by the Java Collections Framework classes can be explored.The poster shows examples of visual exploration of data structures with BlueJ. Further materials will be available at: http://hamilton.bell.ac.uk/datastructures.
James H. Paterson, John Haddow, Miriam Birch, Alex Monaghan
ITiCSE1
2005 Teaching XML in a web development context
abstract
This poster illustrates the way in which XML has been introduced in the context of a web development course. XML is an increasingly important technology with applications across a range of fields. It is therefore highly desirable that students gain meaningful exposure to this technology within the computing curriculum.The wide applicability of XML allows its concepts to be taught in a way which supports learning of specific topics in computer science. For example, the use of XML has been reported in courses on compilers[1] and computing theory[2].The main concepts of XML include: basic syntax; well-formed documents; valid documents with DTD and XML Schema; parsing and DOM; transformations with XSLT. Since the concepts involved in XML are essentially orthogonal to its applications, it is important that a strong context is provided to demonstrate these concepts. The programme within which we teach XML has a strong web development theme, so it seems appropriate to introduce it within this context. The approach we have taken is to study the various capabilities that XML provides to the web developer for content syndication and management, and for using and creating web services.The web development module within which XML is taught deals primarily with server-side scripting for dynamic web pages using ColdFusion. The structure of the XML content is as follows:
James H. Paterson, Frances McCormick, Gerry Creechan
ITiCSE1
2004 Approaches to object persistence in java projects
abstract
This presentation discusses and demonstrates the advantages and limitations of a range of object persistence strategies for use in student projects.
James H. Paterson, John Haddow
ITiCSE1
2004 A proposed design patterns extension for the blueJ IDE
abstract
In this tip we describe a proposed extension to the BlueJ IDE to encapsulate knowledge of patterns in the IDE and to help students explore them and learn how to make use of them.
James H. Paterson, John Haddow
ITiCSE1
2003 Teaching Java: using an object-oriented database and the BlueJ IDE
James H. Paterson, John Haddow
ITiCSE1