Papers by Sylvia Stuurman

European Conference on Social Media
Recent digital technological developments facilitate the translation, empowerment, and extension ... more Recent digital technological developments facilitate the translation, empowerment, and extension of expressing individual and collective ideas, beliefs, and attitudes towards specific concepts and events through different social platforms. In this complex arena, social media manipulation campaigns and corresponding mechanisms like disinformation and misinformation are used through techniques like deep fakes and fake news for, e.g., altering existing information and spreading manufactured information to {targeted, diverse} audiences or producing polarization among communities and users. Nevertheless, academic and practitioner efforts to capture, control, and limit social manipulation techniques exist in the form of strategies and policies based on human intelligence, Artificial Intelligence, or a combination thereof. However, such mechanisms and consonant techniques advance in adaptivity and complexity and can reach and impact broader communities. On this behalf, and especially in co...
Lecture notes in networks and systems, 2022
2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET), 2021
We gained insight into ideas and beliefs on testing of students who finished an introductory cour... more We gained insight into ideas and beliefs on testing of students who finished an introductory course on programming without any formal education on testing. We asked students to fill in a small survey, to do four exercises and to fill in a second survey. We interviewed eleven of these students in semi-structured interviews, to obtain more in-depth insight. The main outcome is that students do not test systematically, while most of them think they do test systematically. One of the misconceptions we found is that most students can only think of test cases based on programming code. Even if no code was provided (black-box testing), students try to come up with code to base their test cases on.

Software: Practice and Experience, 2021
Design patterns are standard solutions to common design problems. The famous Gang of Four book de... more Design patterns are standard solutions to common design problems. The famous Gang of Four book describes more than twenty design patterns for the object‐oriented paradigm. These patterns were developed more than twenty‐five years ago, using the programming language concepts available at that time. Patterns do not always fit underlying domain concepts. For example, even when a concrete strategy is a pure function, the classical strategy pattern represents this as a separate subclass and as such obscures the intent of this pattern with extra complexities due to the inheritance‐based implementation. Due to the ongoing development of oo‐languages, a relevant question is whether the implementation of these patterns can be improved using new language features, such that they fit more closely with the intent. An additional question is then how we can decide which implementation is to be preferred. In this article, we investigate both questions, using the strategy pattern as an example. Our main contribution is that we show how to reason about different implementations, using both the description of a design pattern and design principles as guidance.
ion thus was the main tool for the software designer to handle complexity. Abstract data types [L... more ion thus was the main tool for the software designer to handle complexity. Abstract data types [Liskov and Zilles 1974] are introduced as a set of ready-made abstractions, to be used in different situations. These ideas on software design fall under the umbrella of modular programming [Gauthier and Ponto 1970], which means that a problem should be divided in separate tasks, that will form separate, distinct program modules. Each module has well-defined inputs and outputs and can be tested independently. Each module can be designed by structured programming. Using modules, one divides a problem into tasks, which is an example of the divide-and-conquer strategy for handling complexity, and modules thus show separation of concerns.
Within Computer science and Software engineering, the prevalence of students with a diagnosis of ... more Within Computer science and Software engineering, the prevalence of students with a diagnosis of autism spectrum disorder is relatively high. Ideally, education should be inclusive, with which we mean that education must be given in such a way that additional support is needed as little as possible. In this paper, we present an overview on what is known about the cognitive style of autistic individuals and compare that cognitive thinking style with computational thinking, thinking as an engineer, and with academic thinking. We illustrate the cognitive style of autistic students with anecdotes from our students. From the comparison, we derive a set of guidelines for inclusive education, and we present ideas for future work.
One of the aims of education in the field of software engineering is to teach students to value s... more One of the aims of education in the field of software engineering is to teach students to value software quality. We would like students to be able to evaluate software with respect to quality, we would like them to be able to produce software with quality, and we would like them to know how to optimize software quality. Software quality is composed of characteristics of the software; those characteristics can be categorized according to the standard software quality framework [10]. We discern three ways to produce and guarantee software quality:

To gain insight into ideas and beliefs of students who finished an introductionary course on prog... more To gain insight into ideas and beliefs of students who finished an introductionary course on programming without any formal education on testing, we asked students to fill in a small questionnaire, to make four exercises in which they had to write test cases to decide whether a specific method is correct or not and to determine the correctness of a given implementation, and to fill in a second questionnaire. We interviewed eleven of these students, in a semi-structured interview, to obtain more in-depth insight. The main outcome of our research shows that students do not test systematically, while most of them think they do test sytematically. We found that many (of most) students can only think of test cases based on programming code. Even if no code was provided (black box testing), students try to come up with code to base their test cases up on. We found more misconceptions related to testing.

Proceedings of the 8th Computer Science Education Research Conference, 2019
Teaching Object-Oriented design on the class diagram level is often a cumbersome effort. Requirin... more Teaching Object-Oriented design on the class diagram level is often a cumbersome effort. Requiring the use of specific design patterns helps the students in structuring their design properly. However, checking whether students used the right design pattern can be a very time-intensive task due to the variety of possibilities of creating structure using design patterns on the high-level class diagrams. For the same reason, it is hard for students to check for themselves whether their solution fulfills the basic requirements that are required by the instructor with respect to the use of design patterns. Efficiency and the quality of design pattern education can be improved by automatic detection of design patterns in UML class diagrams. We introduce a new method to detect design patterns in class diagrams, together with a prototype of a tool that uses this new method. Using this tool, an instructor needs less effort to review solutions of design exercises since the tool can check the ...
Proceedings of the 7th Computer Science Education Research Conference, 2018
Creating test cases is a difficult task for students. The number of existing recommendations on h... more Creating test cases is a difficult task for students. The number of existing recommendations on how to create test cases is overwhelming. There is a lack of guidelines on how to apply those recommendations one step after another. This problem even becomes more complicated when students are taught to refactor their code as a habit. We propose an approach to teach students how to develop and test their code systematically, with refactoring integrated. In our approach, we pay attention to both functionality and robustness. CCS CONCEPTS • Software and its engineering → Software design engineering; Software development techniques;

Proceedings of Second Computer Science Education Research Conference, 2012
Open Educational Resources (OER) seem to be a natural fit with a distance learning university: op... more Open Educational Resources (OER) seem to be a natural fit with a distance learning university: open resources are in line with the university's mission to provide access to academic education, most material is available in digital form, and even the name of distance learning universities often contains the word "open". However, in practice, it is difficult to realize sustainable OER, especially if no existing material may be used. We propose a new method to create sustainable OER based on new educational material, and compare this method with existing models for sustainable OER. The main characteristic of the method is that OER are produced as side-effect of Continuous Professional Development (CPD). As an example of this CPD method, we describe the development of a short OER course about the programming language Scala.
What about the licensing? All learning materials used in and developed by the FTA are Open Educat... more What about the licensing? All learning materials used in and developed by the FTA are Open Educational Resources, published under copyleft free licenses that allow them to be freely used, modified and redistributed. Similarly, the software used in the FTA virtual campus is Free Software and is built upon an Open Standards framework.
Delft University of Technology, Mar 5, 1997
Facts of life like the ever increasing costs of maintenance and evolution of software, show that ... more Facts of life like the ever increasing costs of maintenance and evolution of software, show that requirements are not as static and nal as they are usually treated. One requirement of probably all software systems should be a certain degree of exibility with respect to changes in the remainder of the requirements, due to an inaccurate modeling of the environment or to a changing environment. In several systems, changes in software as an answer to changes of the requirements should be applicable during execution. According to Stankovic in 10, ...

Proceedings of the 8th Computer Science Education Research Conference, 2019
Within Computer science and Software engineering, the prevalence of students with a diagnosis of ... more Within Computer science and Software engineering, the prevalence of students with a diagnosis of autism spectrum disorder is relatively high. Ideally, education should be inclusive, with which we mean that education must be given in such a way that additional support is needed as little as possible. In this paper, we present an overview on what is known about the cognitive style of autistic individuals and compare that cognitive thinking style with computational thinking, thinking as an engineer, and with academic thinking. We illustrate the cognitive style of autistic students with anecdotes from our students. From the comparison, we derive a set of guidelines for inclusive education, and we present ideas for future work. CCS CONCEPTS • Social and professional topics → People with disabilities; • Applied computing → Education.

Information Processing Letters
How to test abstract classes is an area of testing that is not paid much attention to. Abstract c... more How to test abstract classes is an area of testing that is not paid much attention to. Abstract classes cannot be instantiated and therefore standard executionbased test strategies are not applicable. In this paper, we consider a special case of an abstract class, namely one produced by the Template Method pattern. This pattern results in an abstract class, with a concrete template method and one or more abstract primitive operations, and one or more subclasses, implementing the primitive operations specifically for each subclass. How should we test an instance of the Template Method pattern? Testing the concrete template method by testing the abstract class is impossible. Testing an instance of the Template Method pattern by testing the template method in all of the subclasses individually is error-prone in the long run. This paper presents a structured approach to test instances of the Template Method pattern in an elegant way using the Abstract Factory pattern. Furthermore, we introduce the new concept semi-abstract method to reason about concrete methods that depend on abstract operations. We formalize the pattern and demonstrate the approach at work using an example program.
Proceedings of the 52nd ACM Technical Symposium on Computer Science Education

Proceedings of the 16th Koli Calling International Conference on Computing Education Research - Koli Calling '16, 2016
The design of software is known to be difficult for novice computer scientists. In this paper, we... more The design of software is known to be difficult for novice computer scientists. In this paper, we focus on software redesign and on the refactoring necessary to implement a redesign. Redesigning an application aims to improve nonfunctional aspects such as extensibility, without changing the functionality. Redesign is a complex task, involving knowledge and skills from software design in general and the use of design patterns in particular. This study is part of an educational design research project aiming at developing scaffolding for students' software redesign activities in the form of procedural guidance. We investigated students' strategies and usage of concepts during a software redesign assignment using students' reports and team colllaboration recordings as data sources, thus focusing on the process instead of on the design results, in contrast with existing studies. We identified several difficulties that can serve as starting points for procedural guidance. For instance, students seem to avoid using a structured analysis method. Our findings indicate that students' activities were mainly directed towards the code rather than the design problem. CCS Concepts •Social and professional topics → Computer science education; •Software and its engineering → Designing software;
Wicsa, 1999
Much has been written recently about software architecture, how to represent it, and where design... more Much has been written recently about software architecture, how to represent it, and where design fits in the software development process. In this article I will focus on the people who drive this effort: the architect or a team of architects-the software architecture team. Who are they, what special skills do they have, how do they organise themselves, and where do they fit in the project or the organisation?
Uploads
Papers by Sylvia Stuurman