Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046371
Paolo Bottoni, M. Costabile, S. Levialdi, A. Piccinno
Usability is the most important feature of a computer program from the users point of view. Even if various techniques for evaluating usability have been proposed, formal methods are still lacking. A good indication of program usability is given by the agreement between the mental model of the system, as conceived by the user, and the model of the user, as understood by the designer and implemented in the system. We extend here the visual sentence theory we have developed in the last few years by introducing the concept of relation system. This provides a means for describing both the user's and the program's models. Based on this formalism, we can also define some measurable properties for usability, and develop experimental protocols for their measurement.
{"title":"Towards formal measures of usability for visual interactive systems","authors":"Paolo Bottoni, M. Costabile, S. Levialdi, A. Piccinno","doi":"10.1109/HCC.2002.1046371","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046371","url":null,"abstract":"Usability is the most important feature of a computer program from the users point of view. Even if various techniques for evaluating usability have been proposed, formal methods are still lacking. A good indication of program usability is given by the agreement between the mental model of the system, as conceived by the user, and the model of the user, as understood by the designer and implemented in the system. We extend here the visual sentence theory we have developed in the last few years by introducing the concept of relation system. This provides a means for describing both the user's and the program's models. Based on this formalism, we can also define some measurable properties for usability, and develop experimental protocols for their measurement.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127442113","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046360
Timothy N. Wright, A. Cockburn
This paper describes a visual programming environment for children: Mulspren. Unlike many conventional visual programming environments, Mulspren users program using two languages: an English-like language and a conventional programming language. We believe that showing multiple representations of a program, combined with good program visualisation support, will help children create a good mental model of conventional programming constructs. This model may be helpful later in life when they have to modify programs written in conventional languages, for example Visual Basic or Microsoft Word macros.
{"title":"Mulspren: A Multiple Language Simulation Programming Environment","authors":"Timothy N. Wright, A. Cockburn","doi":"10.1109/HCC.2002.1046360","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046360","url":null,"abstract":"This paper describes a visual programming environment for children: Mulspren. Unlike many conventional visual programming environments, Mulspren users program using two languages: an English-like language and a conventional programming language. We believe that showing multiple representations of a program, combined with good program visualisation support, will help children create a good mental model of conventional programming constructs. This model may be helpful later in life when they have to modify programs written in conventional languages, for example Visual Basic or Microsoft Word macros.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"391 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116494068","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046376
Mihail E. Tudoreanu, Rong Wu, A. Hamilton-Taylor, Eileen T. Kraemer
Previous studies of program visualization have generally failed to provide convincing support for the benefits of algorithm animation in promoting the understanding of computations. This paper presents a study in which the use of program visualization resulted in significantly better understanding of a distributed computation. Understanding was measured in terms of the number of correct responses to questions about the algorithm. The environment used in this study differs from that of previous studies in a number of aspects: it combines the use of distributed algorithm visualization, 3D visualization, and legends. In addition, the design of both the experiment and animation focuses on reducing cognitive noise.
{"title":"Empirical evidence that algorithm animation promotes understanding of distributed algorithms","authors":"Mihail E. Tudoreanu, Rong Wu, A. Hamilton-Taylor, Eileen T. Kraemer","doi":"10.1109/HCC.2002.1046376","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046376","url":null,"abstract":"Previous studies of program visualization have generally failed to provide convincing support for the benefits of algorithm animation in promoting the understanding of computations. This paper presents a study in which the use of program visualization resulted in significantly better understanding of a distributed computation. Understanding was measured in terms of the number of correct responses to questions about the algorithm. The environment used in this study differs from that of previous studies in a number of aspects: it combines the use of distributed algorithm visualization, 3D visualization, and legends. In addition, the design of both the experiment and animation focuses on reducing cognitive noise.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123692130","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046372
John F. Pane, B. Myers, Leah B. Miller
A programming system is the user interface between the programmer and the computer. Programming is a notoriously difficult activity, and some of this difficulty can be attributed to the user interface as opposed to other factors. Historically, the designs of programming languages and tools have not emphasized usability. This paper describes the process we used to design HANDS, a new programming system for children that focuses on usability, where HCI knowledge, principles, and methods guided all design decisions. The features of HANDS are presented along with their motivations from prior empirical research on programmers and new studies conducted by the authors. HANDS is an event-based language that features a concrete model for computation, provides operators that match the way non-programmers express problem solutions, and includes domain-specific features for the creation of interactive animations and simulations. In user tests, children using HANDS performed significantly better than children using a reduced-feature version of the system where more traditional methods were required to solve tasks.
{"title":"Using HCI techniques to design a more usable programming system","authors":"John F. Pane, B. Myers, Leah B. Miller","doi":"10.1109/HCC.2002.1046372","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046372","url":null,"abstract":"A programming system is the user interface between the programmer and the computer. Programming is a notoriously difficult activity, and some of this difficulty can be attributed to the user interface as opposed to other factors. Historically, the designs of programming languages and tools have not emphasized usability. This paper describes the process we used to design HANDS, a new programming system for children that focuses on usability, where HCI knowledge, principles, and methods guided all design decisions. The features of HANDS are presented along with their motivations from prior empirical research on programmers and new studies conducted by the authors. HANDS is an event-based language that features a concrete model for computation, provides operators that match the way non-programmers express problem solutions, and includes domain-specific features for the creation of interactive animations and simulations. In user tests, children using HANDS performed significantly better than children using a reduced-feature version of the system where more traditional methods were required to solve tasks.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124935440","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046367
L. Beckwith, M. Burnett, C. Cook
To help improve the reliability of spreadsheets created by end users, we are working to allow users to communicate the purpose and other underlying information about their spreadsheets, using a form of requirement specifications we call "guards." For large spreadsheets with replicated/shared formulas across groups of rows or columns, guards can only be practical if users can enter them across these groups of rows or columns. The problem is, this introduces many-to-many relationships, and it is not clear how the system should reason and communicate about them in a way that will make sense to end users. In this paper, we present the human-centric design rationale for our approach to how the system should reason about such many-to-many relationships. The design decisions are presented with their reasons gleaned from two design-time models - cognitive dimensions and attention economics -and from the users themselves in a small think-aloud study.
{"title":"Reasoning about many-to-many requirement relationships in spreadsheets","authors":"L. Beckwith, M. Burnett, C. Cook","doi":"10.1109/HCC.2002.1046367","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046367","url":null,"abstract":"To help improve the reliability of spreadsheets created by end users, we are working to allow users to communicate the purpose and other underlying information about their spreadsheets, using a form of requirement specifications we call \"guards.\" For large spreadsheets with replicated/shared formulas across groups of rows or columns, guards can only be practical if users can enter them across these groups of rows or columns. The problem is, this introduces many-to-many relationships, and it is not clear how the system should reason and communicate about them in a way that will make sense to end users. In this paper, we present the human-centric design rationale for our approach to how the system should reason about such many-to-many relationships. The design decisions are presented with their reasons gleaned from two design-time models - cognitive dimensions and attention economics -and from the users themselves in a small think-aloud study.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121900016","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046353
S. Reiss
Visualization for software understanding requires that the user be able to define specific visualizations that are specialized to the particular understanding task at hand. In this paper we describe a system that lets the user define such visualizations quickly and effectively. The system uses a visual query language over a variety of data sources to let the user specify what information is relevant to the understanding task and to correlate that information. Then it provides a mechanism for letting the user select and customize an appropriate visualization for this data.
{"title":"A visual query language for software visualization","authors":"S. Reiss","doi":"10.1109/HCC.2002.1046353","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046353","url":null,"abstract":"Visualization for software understanding requires that the user be able to define specific visualizations that are specialized to the particular understanding task at hand. In this paper we describe a system that lets the user define such visualizations quickly and effectively. The system uses a visual query language over a variety of data sources to let the user specify what information is relevant to the understanding task and to correlate that information. Then it provides a mechanism for letting the user select and customize an appropriate visualization for this data.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116144832","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046340
J. Sajaniemi
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, frequencies of the roles, and discovered role changes.
{"title":"An empirical analysis of roles of variables in novice-level procedural programs","authors":"J. Sajaniemi","doi":"10.1109/HCC.2002.1046340","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046340","url":null,"abstract":"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, frequencies of the roles, and discovered role changes.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131178816","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046375
P. Gestwicki, B. Jayaraman
The design and implementation of a novel visual interactive execution environment for Java is described. This system displays both the run-time object structure as well as the internal details of object and method activations. The representation of the execution state is based upon a novel yet simple representation technique which clarifies the important fact that objects are environments. All major Java features, including inheritance, inner classes, static methods, exceptions, etc., are supported. The GUI components built from Java's Swing or AWT libraries can be visualized in juxtaposition with the underlying execution state. We also include a reverse-execution mechanism that allows a user to rollback to previous states of an execution. A notable characteristic of the visualization system is that it employs the existing Java virtual machine; no new Java interpreter is needed. A novel preprocessor (source-to-source transformation) is employed in conjunction with a run-time mediator written in Java, which carries out the visualization. A prototype of these ideas was completed to validate the entire approach.
{"title":"Interactive visualization of Java programs","authors":"P. Gestwicki, B. Jayaraman","doi":"10.1109/HCC.2002.1046375","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046375","url":null,"abstract":"The design and implementation of a novel visual interactive execution environment for Java is described. This system displays both the run-time object structure as well as the internal details of object and method activations. The representation of the execution state is based upon a novel yet simple representation technique which clarifies the important fact that objects are environments. All major Java features, including inheritance, inner classes, static methods, exceptions, etc., are supported. The GUI components built from Java's Swing or AWT libraries can be visualized in juxtaposition with the underlying execution state. We also include a reverse-execution mechanism that allows a user to rollback to previous states of an execution. A notable characteristic of the visualization system is that it employs the existing Java virtual machine; no new Java interpreter is needed. A novel preprocessor (source-to-source transformation) is employed in conjunction with a run-time mediator written in Java, which carries out the visualization. A prototype of these ideas was completed to validate the entire approach.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130412315","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046334
A. Blackwell
Research into the cognitive aspects of programming originated in the study of professional programmers (whether experts or students). Even "end-user" programmers in previous studies have often worked in organizations where programming is recognized to be demanding professional work-the term "power-user" recognizes this technical kudos. But as personal computers become widespread, and most new domestic appliances incorporate microprocessors, many people are engaging in programming-like activities in domestic or nonprofessional contexts. Such users often have less motivation and more obstacles to programming, meaning that they may be unlikely even to take the first steps. This paper analyses the generic nature of those first steps, and identifies the cognitive demands that characterize them. On the basis of this analysis the paper proposes the attention investment model, a cognitive model of programming that offers a consistent account of all programming behaviour, from professionals to end-users.
{"title":"First steps in programming: a rationale for attention investment models","authors":"A. Blackwell","doi":"10.1109/HCC.2002.1046334","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046334","url":null,"abstract":"Research into the cognitive aspects of programming originated in the study of professional programmers (whether experts or students). Even \"end-user\" programmers in previous studies have often worked in organizations where programming is recognized to be demanding professional work-the term \"power-user\" recognizes this technical kudos. But as personal computers become widespread, and most new domestic appliances incorporate microprocessors, many people are engaging in programming-like activities in domestic or nonprofessional contexts. Such users often have less motivation and more obstacles to programming, meaning that they may be unlikely even to take the first steps. This paper analyses the generic nature of those first steps, and identifies the cognitive demands that characterize them. On the basis of this analysis the paper proposes the attention investment model, a cognitive model of programming that offers a consistent account of all programming behaviour, from professionals to end-users.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130754822","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-09-03DOI: 10.1109/HCC.2002.1046373
Pablo Romero, R. Lutz, R. Cox, John Benedict du Boulay
Java program debugging was investigated in computer science students who used a software debugging environment (SDE) that provided concurrently displayed, adjacent, multiple and linked representations consisting of the program code, a visualisation of the program, and its output. The aim of this investigation was to address questions such as 'To what extent do programmers use each type of representation?', 'Are particular patterns of representation use associated with superior debugging performance?', 'Are graphical representations more helpful to Java programmers than textual ones?' and 'Are representations that highlight data structure more useful than those that highlight control-flow for Java debugging?.
{"title":"Co-ordination of multiple external representations during Java program debugging","authors":"Pablo Romero, R. Lutz, R. Cox, John Benedict du Boulay","doi":"10.1109/HCC.2002.1046373","DOIUrl":"https://doi.org/10.1109/HCC.2002.1046373","url":null,"abstract":"Java program debugging was investigated in computer science students who used a software debugging environment (SDE) that provided concurrently displayed, adjacent, multiple and linked representations consisting of the program code, a visualisation of the program, and its output. The aim of this investigation was to address questions such as 'To what extent do programmers use each type of representation?', 'Are particular patterns of representation use associated with superior debugging performance?', 'Are graphical representations more helpful to Java programmers than textual ones?' and 'Are representations that highlight data structure more useful than those that highlight control-flow for Java debugging?.","PeriodicalId":298317,"journal":{"name":"Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131620790","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}