About
49
Publications
57,899
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
679
Citations
Introduction
Additional affiliations
July 2001 - present
Publications
Publications (49)
This experience report describes the idea of making teammates aware of personality differences and its influence on team work. This is a topic that has relevance in any team work setting, in particular in Software Engineering (SE) where team work is central.
We augment the teaching of team work skills to tertiary SE students through the applicatio...
The article examines the value of using photovoice to assist reflection in a service learning module. Students were required to complete a reflective assignment in order to facilitate critical reflection on experiences during their community-based projects. They had to identify a specific incident during the execution of their project which they ex...
The Internet of Things (IoT) is revolutionizing the way in which we do a number of things including in-home medical care. An in-home care system that uses IoT technology offers a number of benefits; it enables remote monitoring by the caregivers and the physicians, empowers the patient, allowing them to be more independent, offers loved ones peace...
The assignment statement is a basic programming operation which is used to assign a value to a variable. The assignment statement is needed in all programs which manipulate data. Most programmers assume that this statement is trivial and therefore should not pose conceptual problems for novice programmers. This article investigates the validity of...
Aim/Purpose: The aims of this study were to investigate the feasibility of automatic assessment of programming tasks and to compare manual assessment with automatic assessment in terms of the effect of the different assessment methods on the marks of the students. Background: Manual assessment of programs written by students can be tedious. The ass...
The use of a well-designed and uniform notational system is imperative to improve communication and understanding. Currently, a fairly consistent notational system is used to notate the elements of sets, but the notations for sequences, series and other quantifications often vary from one author to another. The most widely used notation for sets ha...
Lecturers are struggling to keep up with their daily responsibilities because of an ever-increasing workload. Manual programming assessment processes are time-consuming, but a possible solution is to use the assistance of automatic programming assessment methods. In this study, automatic assessment is compared with manual assessment, specifically f...
We investigate the impact of using different algorithmic techniques and data representations in algorithms to calculate the transitive closure of a finite binary relation. These techniques are change monitor, loop fusion, loop tiling and short-circuiting. We explain them and how they are applied in the algorithms. We measured the impact of these te...
In this paper we show how a large cohort of second-year university students in Operating Systems repeatedly overestimated their own abilities in tests of predictive self assessment. We conjecture that this persistent discrepancy between students' reality and their optimistically exaggerated self-image is symptomatic for the mass-participation in un...
Correctness-by-construction (CbC) is an approach for developing algorithms inline with rigorous correctness arguments. A high-level specification is evolved into an implementation in a sequence of small, tractable refinement steps guaranteeing the resulting implementation to be correct. CbC facilitates the design of algorithms that are more efficie...
The automated static and dynamic assessment of programs makes it practical to increase the learning opportunities of large student classes through the regular assessment of programming assignments. Automatic assessments are traditionally specified in tool-specific languages which are closely linked to the functionality and implementation of a parti...
This paper describes some technical and employability skills that are essential for our students to succeed in a career in software development. We conducted research aimed at understanding the students’ problems when required to develop these skills. We explain our techniques for observing skills gaps. Knowledge about these gaps enables us to inte...
Plagiarism is an issue that all educators have had to deal with. Large numbers of students and assignments have resulted in the development of automated systems to detect code similarities with the aim of identifying cases that may have been plagiarised. These systems are of great value to assessors, allowing them to process submissions automatical...
The demand for software professionals remains a concern. The main aim of this study is to gain a deeper understanding of the career goals of people in the software development pipeline. In this quantitative study in South Africa we investigated the career goals of software development professionals and software development students. The top two car...
Employers require software engineers to work in teams when developing software systems. It is therefore important for graduates to have experienced teamwork before they enter the job market.
We describe an experiential learning exercise that we designed to teach the software engineering process in conjunction with teamwork skills. The underlying te...
Industrial software development projects are commonly modular with different development teams working on modules which need to be integrated into a cohesive product. A typical undergraduate software engineering course does not give students any experience in such a modular development. When an intense mini-project was introduced into a final year...
We have gained experience over the past ten years while teaching
an introductory programming module where the assignments are
automatically assessed. Our experience of using automatic
assessment improved our skills in setting clearer assignments of a
higher quality, which are easier to assess. We use an example to
describe how we set an assignment....
The organisation of a tertiary module shows prevalent problems when the size of the class increases. We present problems associated with large classes and investigate a number of proposed solutions. An attempt was made to address these difficulties in a presentation of a first-year module introducing programming with yearly student enrolment of app...
Strong arguments exist that the sub-disciplines of Information Systems (IS) and Computer Science (CS) can be meaningfully distinguished, and the literature indicates that teams in which there are variety of personalities and divergent career interests are more likely to successfully complete computing projects. This paper set out to identify differ...
This article seeks to resolve ambiguities and create a shared vocabulary with reference to classification-related terms. Due to the need to organize information in all disciplines, knowledge organization systems (KOSs) with varying attributes, content and structures have been developed independently in different domains. These scattered development...
This is a position paper in which I argue that massive open online programming courses can benefit by the application of automated assessment of programming assignments. I gathered success factors and identified concerns related to automatic assessment through the analysis of experiences other researchers have reported when designing and using auto...
We describe how we presented a year-long Software Engineering (SE) module. The first part of the module entailed a process we call rocking the boat. Our objective was to create an opportunity for our students to experience a complete software engineering project (from specification to delivery) within six weeks. During the second part students work...
Confidence is an influential factor of student engagement in education. In Computer Science education the lack of confidence is prominent as a barrier to education and attempts to address it have not all been very successful. This paper surveys confidence levels of students in relation to the amount by which their parents adopted technology into th...
We describe a process that we applied for teaching teamwork in a Software Engineering module. Our objective with this process was to create opportunities for our students to experience some of the problems of working in a group before they formed teams in which they had to work for the rest of the year. The process entails expecting students to wor...
Teamwork has been identified as an important skill for Software Engineering. Apart from being a skill required by industry for Software Engieering, teamwork is extensively applied in educational settings to support collaborative learning in all disciplines. We describe a process we applied for teaching teamwork in a Software Engineering module. We...
Online social networks have become an integral part of the lives of students. We extended our teaching delivery to include an informal discussion forum in the form of a Facebook group. Participation in this group was completely voluntary. This group was managed by students and existed independently from the usual academic offering. Concurrent with...
The research project uses words provided by first year South African university students describing their own personalities. These words are used to compare the personalities of computing and noncomputing students on the basis of the Five-Factor Model. The researchers used qualitative methods to code and group the words in terms of the Five-Factor...
The acquisition of effective teamwork skills is crucial in all disciplines. Using an interpretive approach, this study investigates collaboration and co-operation in teams of software engineering students. Teams whose members were both homogeneous and heterogeneous in terms of their members' academic abilities, skills and goals were identified and...
The number of student enrolments in computer-related courses remains a serious concern worldwide with far reaching consequences.
This paper reports on an extensive survey about career choice and associated motivational factors amongst new students, only
some of whom intend to major in computer-related courses, at two South African universities. The...
This paper describes an experimental study to compare the performance of various dynamically resizable bit-vector implementations for the C++ programming language. We compare the std::vector from the Standard Template Library (STL), boost::dynamic_bitset from Boost, Qt::QBitArray from QT Software, and BitMagic's bm::bvector We also compare std::vec...
The paper reports on a survey undertaken amongst first year students who were taking introductory courses in departments within Schools of IT at two South African universities. The purpose of the survey was to understand factors influencing career choice and how educationalists could use this to encourage enrollment in computer-related degree progr...
The formulation of questions is central to the design of good assessment practices. In reality, however, lecturers, seriously pressed for time, often neglect to pay the necessary consideration to the student's reception of the question. Students' failure to sufficiently grasp the essence of a question is often informally cited as a reason for inade...
A major challenge to the efficacy of student team learning projects occurs when some members of a group are unable to contribute effectively to the collaborative endeavour due to their academic deficits. A graded benchmark for the requisite academic maturity is the setting of admission requirements. Various research studies have shown a positive co...
Diffusion of information technology in a developing world context is difficult due to the fact that most of the targeted communities are in market neglect environments. Market neglect environments are characterised by a failure of the market to make an impact. In these environments the client base is marginalised, small or with low economic power....
The security of information is important to protect top secret documents for government and private organisations alike. For this reason, many methods have been developed to enforce security and protect access to documents, computers and networks. Some of these methods include policies and procedures. These policies and procedures are compiled acco...
Reflection on software engineering as a sub-discipline within computer science reveals that it is as much about people and teamwork as it is about technical expertise. It is therefore important that a software engineer is not only competent in software development but also able to work effectively in a team. Based on the scholarly literature we der...
We are of opinion that students learn more about teams from positive team experiences than they do from negative ones, for this reason we put in every effort to maximise the chances of pleasurable team experiences. We also try to avoid as much as possible, situations in which bad team experiences can arise. Positive experiences may reduce the chanc...
This study was undertaken in order to determine how difficult (or not) first year computer science students perceive understanding basic object-oriented (OO) concepts, how well they actually understand these concepts and to identify the reasons why they find the acquisition of certain OO concepts to be more difficult than others. By analysing this...
This study was undertaken in order to determine how difficult (or not) CS 1
students perceive learning to program in an object-oriented style to be, how well
they actually learn object-oriented programming (OOP) and how well they
retain their understanding of OOP. By analysing this information and ideas of
best practices provided in related literat...
In this paper we discuss the characteristics of Literate Programming and the development of programming environments to support Literate Programming in the past two decades. We argue that recent technological developments allow Literate Programming to be re-introduced as a viable approach to improve the quality and consistency of software artefacts...
In this position paper, after explaining the essentials of literate pro- gramming, we argue that a literate programming style is consistent with the values espoused by agile software development; and that the application of lit- erate programming in the context of an agile software development methodol- ogy is likely to enhance both the quality and...
this paper. It is an open integrated visual programming environment that possesses all the necessary tools to develop and maintain visual books. It is highly adaptable and therefore very versatile. It can also be used for literate programming or for the development and maintenance of hypermedia databases.
This paper reports on the methodological challenges encountered during a research project employing a combination of quantitative and qualitative approaches. The worldwide shortage of educators for information technology prompted the researchers to explore the personal qualities desired for Computer Educators who are Destined to Achieve Results (CE...
Despite general agreement among practitioners and educators alike that the application of solid uniform coding guidelines is beneficial, the application of coding standards in computer science education seem to be problematic. We applied interpretive research to arrive at an understanding of the attitude of leturers towards coding standards. We ide...