Vreda Pieterse
University of Pretoria
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Vreda Pieterse.
south african institute of computer scientists and information technologists | 2010
Vreda Pieterse; Derrick G. Kourie; Loek G. Cleophas; Bruce W. Watson
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<bool> from the Standard Template Library (STL), boost::dynamic_bitset from Boost, Qt::QBitArray from QT Software, and BitMagics bm::bvector<> with one another. We also compare std::vector<char> from the STL with these because it is a dynamically resizable vector implementation that has been suggested to be an acceptable alternative for std::vector<bool>. We describe the test data and the methods that were applied to measure memory use and processing time. This lays a foundation for comparing other parts of the different C++ libraries. The results are presented and discussed in terms of the differences in the implementations of these data structures. Although the results reported in this article is specific to the mentioned C++ libraries, the techniques used to measure and compare the performance of the different libraries go beyond C++ bit-vectors and may be used more generally.
Knowledge Organization | 2014
Vreda Pieterse; Derrick G. Kourie
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 developments have given rise to a conglomeration of classification-related terms which are often used inconsistently both within and across different research fields. This terminological conundrum has impeded communication among researchers. To build the ideal Semantic Web, this problem will have to be surmounted. A common nomenclature is needed to incorporate the vast body of semantic information embedded in existing classifications when developing new systems and to facilitate interoperability among diverse systems. To bridge the terminological gap between the researchers and practitioners of disparate disciplines, we have identified five broad classes of KOSs: lists, taxonomies, lattices, thesauri and ontologies. We provide definitions of the terms catalogue, index, lexicon, knowledge base and topic map. After explaining the meaning and usage of these terms, we delineate how they relate to one another as well as to the different types of KOSs. Our definitions are not intended to replace established definitions but rather to clarify their respective meanings and to advocate their proper usage. In particular we caution against the indiscriminate use of the term ontology in contexts where, in our view, the term thesaurus would be more appropriate. Received 14 June 2013; Revised 3 March 2014; Accepted 5 March 2014
technical symposium on computer science education | 2012
Vreda Pieterse; Lisa Thompson; Linda Marshall; Dina M. Venter
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 work on well defined assignments for short periods in teams where risk factors were induced. Through experiencing these short bursts of intense team tribulation students are prepared to handle difficult events and situations in their teams. We describe the design and implementation of this process. We report on changes in the levels of participation of the students during the process. We offer our explanation of possible factors that may have caused the observed variations.
computer science education research conference | 2016
Phatludi Modiba; Vreda Pieterse; Bertram Haskins
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 automatically. However, these automated systems do present possible disadvantages and drawbacks. In this study we explore and analyse the differences between various systems as well as how their performance compares with manual checking. We consider the different methods students use when committing plagiarism. Then we examine more closely the systems that can aid plagiarism detection, ranging from their characteristics to how they work. In the process, we determine how these systems compare with our own system and their suitability for aiding the identification of submissions which may have been plagiarised in our introductory C++ course.
computer science education research conference | 2012
Vreda Pieterse; Lisa Thompson; Linda Marshall; Dina M. Venter
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 worked in self-selected teams on an industry-based SE project. Again they were required to undergo the complete SE lifecycle. We firstly describe the design of our module. We then describe how we gathered and analysed information on how the students behaved in their teams as well as about what they experienced while participating in the module. Finally, we discuss our observations. We conclude with remarks about the potential success and possible improvement of our teaching strategies and future research directions.
leveraging applications of formal methods | 2016
Lgwa Loek Cleophas; Dg Kourie; Vreda Pieterse; Ina Schaefer; Bruce W. Watson
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 efficient and more elegant than code that is hacked into correctness. In this paper, we discuss another benefit of CbC, i.e., that it supports the deep comprehension of algorithm families. We organise the different refinements of the algorithms carried out during CbC-based design in a taxonomy. The constructed taxonomy provides a classification of the commonality and variability of the algorithm family and, hence, provides deep insights into their structural relationships. Such taxonomies together with the implementation of the algorithms as toolkits provide an excellent starting point for extractive and proactive software product line engineering.
ACM Transactions on Computing Education | 2016
Linda Marshall; Vreda Pieterse; Lisa Thompson; Dina M. Venter
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 teaching strategy applied in the exercise maximises risks in order to provide maximal experiential learning opportunities. The students are expected to work in fairly large, yet short-lived, instructor-assigned teams to complete software engineering tasks. After undergoing the exercise our students form self-selected teams for their capstone projects. In this article, we determine and report on the influence the teaching exercise had on the formation of teams for the capstone project. By analysing data provided by the students through regular peer reviews we gain insight into the team dynamics as well as to what extent the members contributed to the team effort. We develop and present a graphical model of a capstone project team which highlights participation of individuals during the teaching exercise. The participatory history of the members is visualised using segmented concentric rings. We consider how this visualisation can aid the identification of capstone project teams that are at risk. In our experience the composition of the team and the behaviour of other members in the team may have a marked impact on the behaviour of each individual in the team. We established a team classification in order to model information about teams. We use a statistical clustering method to classify teams. For this we use team profiles that are based on the participatory levels of its members. The team types that emerge from the clustering are used to derive migration models. When we consider migration, we build spring models to visualise the teams through which individuals migrate. We colour code the teams to characterise them according to the team types that were identified during the cluster classification of the teams. Owing to the complexity of the resulting model, only migrations for capstone team members who have worked together during the exercise or for solitary capstone team members are modelled. These models support the identification of areas of interest that warrant further investigation. To conclude, we present our observations from the analysis of team compositions, team types, and team migrations and provide directions for future work and collaborations.
computer science education research conference | 2016
Janet Liebenberg; Vreda Pieterse
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 career goals for the whole cohort is stability and work / life balance. The professionals also value creativity. Knowing what motivates people to pursue and persist in a software development career can augment recruitment and retainment strategies which might contribute in alleviating the shortage of software developers.
computer science education research conference | 2012
Hugo Breedt; Vreda Pieterse
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 their personal lives. Our findings can supply a basis from which an alternative method of addressing confidence can be constructed.
international conference on software engineering | 2004
Vreda Pieterse; Derrick G. Kourie; Andrew Boake
In this position paper, after explaining the essentials of literate programming, we argue that a literate programming style is consistent with the values espoused by agile software development; and that the application of literate programming in the context of an agile software development methodology is likely to enhance both the quality and lifespan of the final product.