Jorma Sajaniemi's research while affiliated with University of Eastern Finland and other places

Publications (73)

Article
Full-text available
To address the problem of errors in spreadsheets, we have investigated spreadsheet authors mental models in a hope of finding cognition-based principles for spreadsheet visualization and debugging tools. To this end, we have conducted three empirical studies. The first study explored the nature of mental models of spreadsheet authors during explain...
Conference Paper
Full-text available
Earlier research on spreadsheet authors' mental models has shown that people possess several types of information about spreadsheets. Especially, when explaining a spreadsheet, the real-world and domain mental models are prominent and the spreadsheet model is suppressed, but when locating and fixing an error, one must constantly switch back and for...
Conference Paper
Full-text available
Earlier research on spreadsheet authors' mental models has shown that people possess several types of information about spreadsheets. The research results also suggested that a tool intended to aid in comprehension and debugging of spreadsheets should make prominent real-world and problem domain concepts and map them easily to spreadsheet-specific...
Conference Paper
Full-text available
In this paper, we report on an empirical study exploring the nature of mental models of spreadsheet authors when they are explaining and debugging their own spreadsheets. Study participants were first asked to explain one of their own spreadsheets, and then to find and fix seeded errors in the same spreadsheets. Talk-aloud protocols were collected...
Article
In computer science education and research into the psychology of programming, program summary analysis has been used to characterize mental models of novice and expert programmers and to measure learning outcome of programs and programming concepts. This paper reports an investigation where three raters used Good's program summary analysis scheme...
Article
Testing in companies with highly competitive environments has many opportunities and challenges. Testing is diversified, both contextually and geographically: there are many testing goals, many ongoing parallel projects, many testing phases and all this needs to be managed so that the full view of testing is visible for management and reporting. Te...
Article
When visualization tools utilized in computer programming education have been evaluated empirically, the results have remained controversial. To address this problem, we have developed a model of short-term effects of program animation, and used it in a series of experiments. In the current experiment, we varied visual representation of an animatio...
Conference Paper
A smoothly running software production line (SPL) requires consistent family-viewpoint awareness among the stakeholders through the development cycle, which in software-intensive products' engineering extends from requirements elicitation and marketing to detailed design and integration testing. To improve knowledge sharing among the stakeholders,...
Article
Full-text available
Programming education has experienced a shift from imperative and procedural programming to object-orientation. This shift has been motivated by educators' desire to please the information technology industry and potential students; it is not motivated by research either in psychology of programming or in computer science education. There are pract...
Conference Paper
Expert programmers possess programming knowledge, which is language independent and abstract. Still, programming is mostly taught only via constructs of a programming language and explicit teaching of programming knowledge is often disregarded. Experts' high level programming knowledge can, however, be explicitly taught in an introductory programmi...
Article
Full-text available
Program visualization and animation has traditionally been done at the level of the programming language and its implementation in a computer. However, novices do not know these concepts and visualizations that build upon programming language implementation may easily fail in helping novices to learn programming concepts. Metaphor, on the contrary,...
Article
Visual metaphors in the form of still or animated pictures have been used in user interfaces with the hope of enhancing learning and use of computer applications. This paper studies animated metaphors with the intent to understand how they relate to human cognition and how their quality can be measured. We present a model of the relationships withi...
Conference Paper
Novice programmers' program tracing skills have been found to be poor but the difficulties leading to inefficient tracing are not well known. To study this issue, we conducted exploratory interviews that included program comprehension tasks with novice students and analyzed comprehension protocols to identify specific difficulties affecting novices...
Conference Paper
Students often find that learning to program is hard. Introductory programming courses have high drop-out rates and students do not learn to program well. This paper presents experiences from three educational institutions where introductory programming courses were improved by adopting Python as the first programming language and roles of variable...
Article
Full-text available
Executive Summary Students often find that learning to program is hard. Introductory programming courses have high drop-out rates and students do not learn to program well. This paper presents experiences from three educational institutions where introductory programming courses were improved by adopting Python as the first programming language and...
Article
The development of high level programming knowledge is not well known and there are no direct techniques to evaluate and measure it. Measurement of programming skills is mostly based on the evaluation of programs written by students but the final programs do not reveal the correctness of students' mental models of programming concepts. This paper p...
Article
Empirical evaluation of visualizations has so far been typically carried out by measuring the performance of participants that have been shown the visualization in relation to control group by grading programming tasks. Such studies tell little about what effects take place during the visualizations and how these effects build up into the learning...
Conference Paper
Full-text available
Learning elementary programming can be enhanced by introducing the notion of variable roles to students. This paper presents a web-based automatic role detection service that can be utilized in teaching when consolidating role knowledge. The service is based on data flow analysis techniques and uses machine learning to create flow characteristics f...
Conference Paper
Roles of variables capture tacit expert knowledge in a form that can be taught in introductory programming courses. A role describes some stereotypic use of variables, and only ten roles are needed to cover 99% of all variables in novice-level programs. This paper presents the results from a protocol analysis of a program creation task in an experi...
Conference Paper
Full-text available
Program visualization and animation have traditionally been done at the level of programming language implementation, or by using some formal graphical notation, e.g., UML; both of which are unfamiliar to novices. We present a metaphor approach to animating object-oriented programs with the goal to provide novices with visually rich visualizations...
Article
Full-text available
UML contains a variety of diagram types for modeling object- oriented systems at various levels of abstraction. This paper describes how the comprehensibility of object models can be increased by aug- menting UML diagrams with additional information about the behavior of attributes. A recent notion of "roles of variables" is used as the nota- tion...
Article
Many current program editors use syntax highlighting but effects of various coloring schemes are not known. This paper presents the results of an experiment where three coloring schemes were used by intermediate programmers in visual search tasks for local patterns in Java programs. Differences between the coloring schemes were small and not statis...
Article
Full-text available
Roles can be assigned to occurrences of variables in programs accord-ing to a small number of stereotypical patterns of use. Studies on explicitly teaching roles to novices learning programming have shown that roles are an excellent pedagogical tool for clarifying the structure and meaning of pro-grams and that their use improves students' programm...
Conference Paper
Full-text available
Roles can be assigned to occurrences of variables in programs according to a small number of stereotypical patterns of use. Studies on explicitly teaching roles to novices learning procedural programming have shown that roles are an excellent pedagogical tool for clarifying the structure and meaning of programs and that their use improves students'...
Conference Paper
Full-text available
Very little is known about professional programmers' mental representations of variables, yet this information is vital in designing effective tools for program comprehension. In order to find out what types of information programmers have about variables and their relations, we conducted a knowledge elicitation study where professional programmers...
Article
Roles of variables is a new concept that captures tacit expert knowl-edge in a form that can be taught in introductory programming courses. A role describes some stereotypic use of variables, and only ten roles are needed to cover 99 % of all variables in novice-level programs. This paper presents the results of an experiment where roles were intro...
Conference Paper
Software process improvement is a complex and expensive endeavor requiring extensive resources and long term commitment. In the present study software process improvement (SPI) problems in small organizations were tackled by dividing the overall effort into three subtopics: technical infrastructure, working practices, and management infrastructure....
Article
Full-text available
Roles of variables capture the dynamic nature of variables, i.e., their behavior. Only ten roles are needed to cover 99 % of variables in novice-level procedural programs. Roles were originally identified by studying variables in existing programs and creating a classification for them. In order to find out whether roles are a part of experts ’ pro...
Article
Roles of variables, which describe stereotypic usages of variables, can be exploited to facilitate teaching introductory programming. This paper describes the evaluation of visual metaphors for roles used in a role-based program animator. The evaluation is based on several criteria: properties of the images, metaphor recognition and grading, and ef...
Article
Computer programming is a difficult skill for many students and new methods and techniques to help novices to learn programming are needed. Roles of variables is a recently introduced concept that captures expert programmers' tacit knowledge in a way that can be explicitly taught to students. The use of roles and role-based program animation in tea...
Article
The empirical evaluation of program visualisation has been based mostly on observations of long-term effects of the program visualisation tools, while possible short-term effects of the visualisations and their relation to the long-term effects have been elided. In order to study short-term effects of visual- isation of variables in a context where...
Conference Paper
Roles of variables, which describe stereotypic usages of variables, can be exploited to facilitate teaching introductory programming. This paper describes the evaluation of visual metaphors for roles used in a role-based program animator. The evaluation is based on several criteria: properties of the images, metaphor recognition and grading, and ef...
Conference Paper
Computer programming is a difficult skill for many students and new methods and techniques to help novices to learn programming are needed. This paper presents roles of variables as a new concept that can be used to assist in learning and gives detailed instructions on techniques to present roles to novices. These techniques are based on current le...
Conference Paper
Full-text available
Roles can be assigned to occurrences of variables in programs according to a small number of patterns of use that are both language- and algorithm-independent. Preliminary studies on explicitly teaching roles of variables to novice students have shown that roles are an excellent pedagogical tool for clarifying the structure and meaning of programs....
Article
Full-text available
Visualizations may be used to assist in learning elementary computer programming - a skill that is hard to acquire by many students. This article presents a program animation system, PlanAni, that is based on the concept of the roles of variables. Roles represent schematic uses of variables that occur in programs over and over again, and a set of n...
Article
Eye tracking can be used in measuring point of gaze data that provides information concerning subject's focus of attention. The focus of subject's attention can be used as supportive evidence in studying cognitive processes. Despite the potential usefulness of eye tracking in psychology of programming research, there exists only few instances where...
Conference Paper
Computer programming is a difficult skill for many students and visualizations may be used to foster learning. This paper presents a program animation system, PlanAni, that is based on the concept of the roles of variables. Roles represent schematic uses of variables that occur in programs over and over again, and a set of nine roles covers practic...
Article
Roles can be assigned to occurrences of variables in programs according to a small number of patterns of use that are both language-and algorithm-independent. The concept of roles of variables is almost certainly part of the tacit knowledge of expert programmers, and we believe that explicitly teaching roles of variables to novice students can be a...
Article
Full-text available
Many small companies do requirements engineering (RE) superficially or neglect it totally. However, according to software project risk studies a cursorily done RE is one of the biggest risks for software projects. So far RE research has focused on large and complex projects that cannot be managed without proper RE practices. At the same time smalle...
Article
Keywords: POP-I.A. learning to program, POP-II.A. novices, POP-III.A. variables, POP-III.D. visualisation, POP-V.B. case studies, POP-VI.D. computer science education research Abstract Many students learning to write computer programs encounter considerable difficulties. For novices, one of the key problems is in understanding how the very basic pr...
Conference Paper
The use of all variables in 109 novice-level, but expert written, procedural programs were analyzed in order to find a small but still comprehensive set of generic roles that describe the nature of the successive values a variable obtains. This paper gives the results of the analysis: a list of only nine roles that cover 99% of variables, frequenci...
Conference Paper
View-based editing provides a technique to integrate program analysis tools into the comprehension and editing process. The programmer may study the result of an analysis in a separate view window and make changes in the output, and the system will propagate the changes back to the original program. In this paper, we will study how view-based edito...
Conference Paper
Word processing and spreadsheet programming are the two most common computer applications - the former for textual communication and the latter for end-user programming and data visualization. Their user interfaces differ substantially, even in common concepts and even if produced by the same vendor and their integration is cumbersome and difficult...
Article
The state-of-the-practice in requirements engineering (RE) is still one of the major problems in software development. Even if technology transfer has been exercised for decades now many of the industry representatives still do not know how they could solve their RE related issues. This paper presents the results of an empirical survey showing that...
Article
Technology transfer to small- and medium-sized enterprises has failed to achieve its full potential in the requirements engineering (RE) field. Most companies do not know how to start their RE improvement efforts even if they are aware of the problems in this field. The state-of-the-practice survey presented in this paper gives a realistic view of...
Article
Full-text available
Technology transfer to small-and medium-sized enterprises has failed to achieve its full potential in the requirements engineering (RE) field. Most companies do not know how to start their RE improvement efforts even if they are aware of the problems in this field. The state-of-the-practice survey presented in this paper gives a realistic view of h...
Article
Computations in spreadsheets are hard to grasp and consequently many errors remain unnoticed. The problem with the hidden errors lies in the invisibility of the structure of calculations. As a result, auditing and visualization tools are required to make spreadsheets easier to comprehend and to make errors easier to detect. This paper presents a th...
Conference Paper
Program comprehension is a hard cognitive task that can be promoted by the use of views, i.e., automatically created concrete representations of a program revealing different aspects of its structure and behavior. VinEd is a view-based editor that allows users to add their own views to the system. The paper analyzes the VinEd approach by presenting...
Article
Full-text available
The state-of-the-practice in requirements engineering (RE) is still one of the major problems in software development. Even if technology transfer has been exercised for decades now many of the industry representatives still do not know how they could solve their RE related issues. This paper presents the results of an empirical survey showing that...
Article
Three kinds of supporting material are needed for lectures: lecture notes, presentation material and guidance material for the lecturer. Current computer-aided presentation systems do not allow easy preparation and maintenance of these three interwoven materials. In this paper, we present the idea of three-level teaching material and describe a com...
Article
Lecturers need three kinds of supporting materials: lecture notes given to learners, presentation material to be shown in the lectures, and lecturer's own guidance material to direct her during the lecture. Hardly any of the current presentation systems supports easy preparation and maintenance of these three interwoven material sources. In this pa...
Article
Programmers' mental representations of programs do not obey the order and immediate content of program texts. Multiple visible representations, or views, of programs help programmers to construct mental representations needed in, e.g., maintenance tasks. We have implemented VinEd, a language-independent editor framework that supports an unlimited n...
Article
A common subtask in spreadsheet calculation is the transformation of verbal task instructions into spreadsheet formulas. This task can be used to study the relation of imagery to thinking. Research using physics and mathematics problems has indicated that mental transformation from verbal to mathematical representations is not necessarily direct bu...
Article
Sumario: While information search in user interfaces has mainly been studied with menu systems, this paper extends the problem to spreadsheets, where it is important to extract, i.e. search and store in memory, implicit compatational structures. The central concern is the extent to which subjects'cursor paths follow visible surface structures and t...
Article
Spreadsheet calculation causes a heavy memory load, since it is necessary to remember complex cell and calculation systems. A series of experiments were carried out to study the role of visual information chunking in spreadsheet calculation. The experiments showed that a possibility to visual information chunking substantially decreases the memory...
Conference Paper
A data structure classification scheme based on a study of a large set of spreadsheets is presented. A distinction is made between logical and physical data structures, and their relationship is described. The classification of data structures is then used to formulate a mechanism called structured spreadsheet calculation. The basic building blocks...
Article
Spreadsheet calculation is a powerful tool in simple administrative data processing. Formulae in spreadsheets have similar forms to expressions in traditional programming languages, but the implementation of control structures is totally different. This paper contains an analysis of 101 spreadsheets made and used in business and government. The ana...
Article
Full-text available
Programming knowledge can be characterized in the form of goals and plans that describe what must be achieved and how this is done. We have conducted interviews of spreadsheet users and analyzed spreadsheet applications qualitatively. The analysis resulted in a set of basic programming goals and plans describing spreadsheet programming knowledge. T...
Article
Lectures need three kinds of supporting material: lecture notes given to learners, presentation material to be shown in the lectures, and lecturers own guidance material to direct her during the lecture. Current presentation systems do not support easy preparation and maintenance of these three interwoven material sources. In this paper, we present...
Article
During recent years software globalisation has become an important part of the whole software industry. Adaptation of software to different market-areas is not an easy or straightforward task. The adaptation process usually involves two participants: a software developer and a localisation vendor. We interviewed Finnish software industry representa...
Article
Programming education has experienced a shift from imperative and procedural programming to object-orientation. This shift has been motivated by educators' desire to please information technology industry and potential stu- dents; it is not motivated by psychology of programming nor by computer sci- ence education research—there are practically no...
Article
The prevailing paradigm in teaching elementary program- ming uses Java as the first programming language and the "objects first" approach as the conceptual basis. This approach has several short- comings, e.g., high drop-out rates and poor skills in basic constructs like loops. This paper suggests an alternative approach that combines a strong star...
Article
Full-text available
Automatic program comprehension applications, which try to extract programming knowledge from program code, share many fea- tures of human program comprehension models. However, the human trait of learning seems to be missing among the shared features. We present an approach to integrate machine learning techniques into auto- matic program comprehe...
Article
When visualization tools utilized in computer science education have been evaluated empirically, the results have been controversial. The extent to which the tools have benefited learning has remained unclear, as well as the ways through which the benefit has been achieved. In our research, we have chosen to vary type of students' engagement and re...

Citations

... For instance, 'tip of the iceberg' is a visual metaphor frequently used to describe that something being discussed, encountered, felt, or experienced is a relatively small proportion of a much larger concept, situation or problem that remains unexplored (Schuman, Rowe, Glazer, & Redding, 1977). Furthermore, verbal metaphors and their visual counterparts are also commonly used in scientific writings (Robson, 1985), medicine (Marcos, 1997), biology (Shilo, 2013), physiology (Paton, 1992), chemistry (Bhushan & Rosenfeld, 1995), psychiatry (Alyami et al., 2015), psychology (Nash, 1962;Stott et al., 2010), computer science (Carroll & Mack, 1985;Petre & Blackwell, 1999;Stützle & Sajaniemi, 2005), and films (Forceville, 2015). ...
... As we outline below, irrespective of measurement method: anything that interferes with obtaining or process- Komínková et al. (2008) Search Coil, Chronos Vision Accuracy, main sequence, torsion Houben et al. (2006) Tobii 1750, ASL, 501, ASL 504 Accuracy, data loss Nevalainen and Sajaniemi (2004) Tobii ET-17, LC EyeGaze Accuracy, data loss, drift Cheng and Vertegaal (2004) EyeLink I, Scleral Search Coil Saccade dynamics Frens and van der Geest (2002) DPI Gen 5, Scleral Search Coil Saccade dynamics Deubel and Bridgeman (1995) ing of a feature used in estimating gaze direction (P, CR, P1, P4, limbus, magnetic induction or retinal features) will affect the data quality of the signal in the data reported by the eye tracker. ...
... Four visualization tools support various aspects of teaching computer science courses. PlanAni [47] is a program animation system based on the concept of the roles of variables for teaching programming. ALVIS [48] enables algorithm visualization to learning programming. ...
... (Nash, 1962; Stott et al., 2010), computer science (Carroll & Mack, 1985; Petre & Blackwell, 1999; Stützle & Sajaniemi, 2005), and films (Forceville, 2015). ...
... Se encarga de estudiar la cognición de los programadores de computadoras, así como herramientas y métodos para actividades relacionadas con la programación y su aprendizaje. Aborda también la usabilidad desde el punto de vista humano y una gran variedad de fenómenos, desde problemas de principiantes hasta el conocimiento de los expertos, desde la etapa de diseño hasta la etapa de pruebas y desde programas cortos e individuales hasta grandes sistemas creados en colaboración (Sajaniemi, 2008). Existen por lo menos cinco paradigmas psicológicos desde los cuales se abordan los problemas de la programación (Curtis, 1988): 1) Diferencias individuales. ...
... To address some of these challenges, Kankuzi extensively studied the mental models of spreadsheets users [27]. He advocates techniques and tools that reflect these mental models such as abstracting implementation details by replacing cell references in formulas through user-defined names. ...
... That is, it should consist of a small number of parts that interact in ways that can be easily understood. " [37, p. 265] As others before [37,77,83,120], we distinguish between conceptual simplicity of program behavior and syntactic simplicity; we focus on the former. ...
... Variables are a very basic concept in most of the programming languages, but novices may mistakenly believe that the computer understands variables by the English meanings of their names, even though variable names are arbitrary (Kaczmarczyk et al., 2010;Sleeman et al., 1986). In addition, students usually lack well-established programming strategies (Clancy & Linn, 1999;Davies, 1993;Lister, Simon, Thompson, Whalley, & Prasad, 2006;Sajaniemi & Prieto, 2005;Soloway, 1986) leading to difficulties with planning, composing, and debugging programs. ...
... The execution of the inspection is done by human experts (studies indicate that teams detect more defects than individuals and that experienced practitioners perform only about 16 -23% better than untrained students [7]). The use of tools is optional -tools in this area support human experts, e.g. by providing interactive checklists or a visualization of the spreadsheet which is adjusted for inspection purposes such as [15] or [21]. ...
... Since labels have been successfully employed in the past for annotating and explaining cells [4,19,26,29], we use labels to explain a set of references by one or two (row and/or column) labels ℓ ∈ Lab = Val ∪ Val × Val. More precisely, based on a relationship L ⊆ A × A where (a, a ′ ) ∈ L whenever the ...