Results 1 - 10
of
17
Learning and teaching programming: A review and discussion
- Computer Science Education
, 2003
"... In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and objectoriented versus procedural programming. (We ..."
Abstract
-
Cited by 54 (2 self)
- Add to MetaCart
In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and objectoriented versus procedural programming. (We do not cover research relating specifically to other programming styles.) The main focus of the review is on novice programming and topics relating to novice teaching and learning. Various problems experienced by novices are identified, including issues relating to basic program design, to algorithmic complexity in certain language features, to the ‘‘fragility’ ’ of novice knowledge, and so on. We summarise this material and suggest some practical implications for teachers. We suggest that a key issue that emerges is the distinction between effective and ineffective novices. What characterises effective novices? Is it possible to identify the specific deficits of ineffective novices and help them to become effective learners of programming? 1.
Six Learning Barriers in End-User Programming Systems
- IEEE SYMP. ON VLHCC
, 2004
"... As programming skills increase in demand and utility, the learnability of end-user programming systems is of utmost importance. However, research on learning barriers in programming systems has primarily focused on languages, overlooking potential barriers in the environment and accompanying librari ..."
Abstract
-
Cited by 46 (12 self)
- Add to MetaCart
As programming skills increase in demand and utility, the learnability of end-user programming systems is of utmost importance. However, research on learning barriers in programming systems has primarily focused on languages, overlooking potential barriers in the environment and accompanying libraries. To address this, a study of beginning programmers learning Visual Basic.NET was performed. This identified six types of barriers: design, selection, coordination, use, understanding, and information. These barriers inspire a new metaphor of computation, which provides a more learner-centric view of programming system design.
Using HCI techniques to design a more usable programming system
, 2002
"... 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 ..."
Abstract
-
Cited by 34 (6 self)
- Add to MetaCart
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
A Programming System for Children that is Designed for Usability
- In C. Kann (Ed.), Proceedings of the First ESP Student Workshop
, 2002
"... This paper proposes a new programming language and environment for children. This system will be designed to be easy to learn and use, without sacrificing the power necessary to create sophisticated programs that rival commercial software such as games and simulations. Throughout the design and refi ..."
Abstract
-
Cited by 30 (1 self)
- Add to MetaCart
This paper proposes a new programming language and environment for children. This system will be designed to be easy to learn and use, without sacrificing the power necessary to create sophisticated programs that rival commercial software such as games and simulations. Throughout the design and refinement of this system, I will apply prior results from empirical studies of programmers and the psychology of programming, my own empirical studies about the ways that nonprogrammers naturally express solutions to programming tasks, and usability testing.
Assessing the cognitive consequences of the object-oriented approach: a survey of empirical research on object-oriented design by individuals and teams. Interacting with Computers
, 1997
"... This paper presents a state-of-art review of empirical research on object-oriented (OO) design. Many claims about the cognitive benefits of the OO paradigm have been made by its advocates. These claims concern the ease of designing and reusing software at the individual level as well as the benefits ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
This paper presents a state-of-art review of empirical research on object-oriented (OO) design. Many claims about the cognitive benefits of the OO paradigm have been made by its advocates. These claims concern the ease of designing and reusing software at the individual level as well as the benefits of this paradigm at the team level. Since these claims are cognitive in nature, its seems important to assess them empirically. After a brief presentation of the main concepts of the OO paradigm, the claims about the superiority of OO design are outlined.
Internal Representation and Rule Development in Object-Oriented Design
- ACM TRANSACTIONS ON COMPUTER-HUMAN INTERACTION
, 1995
"... This article proposes a cognitive framework describing the software development process in object-oriented design (OOD) as building internal representations and developing rules. Rule development (method construction) is performed in two problem spaces: a rule space and an instance space. Rules are ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This article proposes a cognitive framework describing the software development process in object-oriented design (OOD) as building internal representations and developing rules. Rule development (method construction) is performed in two problem spaces: a rule space and an instance space. Rules are generated, refined, and evaluated in the rule space by using three main cognitive operations: Infer, Derive, and Evoke. Cognitive activities in the instance space are called mental simulations and are used in conjunction with the Infer operation in the rule space. In an empirical study with college students, we induced different representations to the same problem by using problem isomorphs. Initially, subjects built a representation based on the problem description. As rule development proceeded, the initial internal representation and designed objects were refined, or changed if necessary, to correspond to knowledge gained during rule development. Differences in rule development processes among groups created final designs that are radically different in terms of their level of abstraction and potential reusability. The article concludes by discussing the implications of these results for object-oriented design.
The Influence of the Psychology of Programming on a Language Design: Project Status Report
- Project Status Report. Psychology of Programmers Interest Group
, 2000
"... Keywords: POP-I.B barriers to programming, POP-II.A. novice programmers, POP-III.C all cognitive dimensions, POP-III.B new language. Research in Psychology of Programming (PoP) and related fields over the past thirty years has identified many important usability issues for programming languages and ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Keywords: POP-I.B barriers to programming, POP-II.A. novice programmers, POP-III.C all cognitive dimensions, POP-III.B new language. Research in Psychology of Programming (PoP) and related fields over the past thirty years has identified many important usability issues for programming languages and tools. However, when new programming languages are designed these findings do not seem to have much impact, so popular modern languages continue to exhibit many of the same old problems. This paper reviews the progress of an ongoing project to elevate the influence of PoP on the design of a new programming language. In the context of designing a new programming language for children, we cataloged and interpreted the prior work, performed new studies where questions remained unanswered, and have focused on usability throughout the design. In addition to producing a system that is easier to learn and use than existing systems, we hope to exemplify a process that could be adopted by other language designers to improve the usability of their systems.
A methodology for analyzing the temporal evolution of novice programs based on semantic components
- In Proceedings of the 2006 ACM International Computing Education Research Workshop ACM
, 2006
"... Empirical studies of novice programming typically rely on code solutions or test responses as the basis of their analyses. While such data can provide insight into novice programming knowledge, they say little about the programming processes in which novices engage. For those interested in improving ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Empirical studies of novice programming typically rely on code solutions or test responses as the basis of their analyses. While such data can provide insight into novice programming knowledge, they say little about the programming processes in which novices engage. For those interested in improving novice programming environments, a key research question arises: How can we collect and analyze data on novice programming that will enable us (a) to analyze and compare the programming processes promoted by alternative novice programming environments, and (b) ultimately to build better novice programming environments? To address this question, we have collected a large video corpus of novices as they construct code solutions in various versions of ALVIS Live! [14], a novice programming environment. Through detailed post-hoc analyses of our video corpus, we have developed a methodology for compiling the moment-by-moment evolution of novice code solutions. Based on an analysis of an ideal code solution’s key semantic components, our methodology enables one to document, on a second-by-second basis, (a) what part of a code solution a programmer is focusing on, and (b) where the semantic feedback provided by the programming environment is helping. Although it is time and labor intensive, our methodology provides researchers with a standard set of data and representations for comparing the programming processes promoted by alternative programming environments.
Authoring Interactive Behaviors for Multimedia
- Proc. 9th NEC Research Symposium
, 1998
"... The tools for authoring multimedia presentations start with sophisticated interactive tools like Director and ToolBook. However, to make the presentations truly interactive requires programming in "scripting languages." These languages have generally been difficult to learn for non-programmers. "Int ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The tools for authoring multimedia presentations start with sophisticated interactive tools like Director and ToolBook. However, to make the presentations truly interactive requires programming in "scripting languages." These languages have generally been difficult to learn for non-programmers. "Interactive behaviors" allow users to click on, move, or otherwise interact with objects on the screen, as opposed to just watching the presentation like a TV show. Behaviors range from simply clicking on buttons or links, to sophisticated interactions with computerized characters. This paper presents a variety of ways we are studying to make authoring of these interactive behaviors more accessible to non-programmers. One approach is "demonstrational" techniques, where the author gives examples of the desired actions and results, and the system generates the code to perform the same actions at run time. Using demonstrational techniques has proven successful for specifying simple behaviors. To r...
Individual Differences in Programming, Testing, and Debugging Strategies in a Statistical End-User Programming Environment," Undergraduate Thesis
, 2002
"... This study intended to investigate two areas of end-user programming: the influence of individual differences on success and whether or not groups of programming, testing, and debugging style would naturally cluster together and provide predictive value. Eighty-six participants, from backgrounds of ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This study intended to investigate two areas of end-user programming: the influence of individual differences on success and whether or not groups of programming, testing, and debugging style would naturally cluster together and provide predictive value. Eighty-six participants, from backgrounds of computer science, psychology, engineering and humanities completed at battery of psychological tests and attempted to complete a timed programming task and testing and debugging task in Stata, a statistical programming environment intended for use by individuals with no programming experience. General intelligence and programming experience were good predictors of programming success. Three types of programming strategies were found: (1) the programmers group used their background knowledge to solve the programming task with little effort; (2) the lost/unmotivated group tended to exhibit repetitive and shallow problem solving; (3) the lost/motivated group tended to search for more information and exhibit more guess and check behavior. There were three types of testing and debugging strategies, but no good predictors of success: (1) the curious/distracted group ignored the task and became distracted; (2) the hesitant/focused group sought little information and

