Results 1 - 10
of
31
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.
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.
What Users Need in Parallel Tool Support: Survey Results and Analysis
, 1994
"... Considerable effort and expense have been devoted to developing tools that support parallel programming. Recent evidence suggests that users do not find the current generation of tools useful for their program development needs, but offers no guidance on how that problem might be addressed. This pap ..."
Abstract
-
Cited by 22 (5 self)
- Add to MetaCart
Considerable effort and expense have been devoted to developing tools that support parallel programming. Recent evidence suggests that users do not find the current generation of tools useful for their program development needs, but offers no guidance on how that problem might be addressed. This paper reports the results of a survey applied to a significant (N=448) cross-section of the parallel user community at Supercomputing '93. The responses establish a number of general patterns in program development and tool use among scientists, engineers, and computer scientists. Our analysis suggests several likely directions for future tool development efforts.
Programming with Agents: New metaphors for thinking about computation
, 1996
"... Computer programming environments for learning should make it easy to create worlds of responsive and autonomous objects, such as video games or simulations of animal behavior. But building such worlds remains difficult, partly because the models and metaphors underlying traditional programming lang ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Computer programming environments for learning should make it easy to create worlds of responsive and autonomous objects, such as video games or simulations of animal behavior. But building such worlds remains difficult, partly because the models and metaphors underlying traditional programming languages are not particularly suited to the task. This dissertation investigates new metaphors, environments, and languages that make possible new ways to create programs -- and, more broadly, new ways to think about programs. In particular, it introduces the idea of programming with "agents" as a means to help people create worlds involving responsive, interacting objects. In this context, an agent is a simple mechanism intended to be understood through anthropomorphic metaphors and endowed with certain lifelike properties such as autonomy, purposefulness, and emotional state. Complex behavior is achieved by combining simple agents into more complex structures. While the agent metaphor enables...
Two Studies of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code
, 2009
"... This paper investigates the role of online resources in problem solving. We look specifically at how programmers—an exemplar form of knowledge workers—opportunistically interleave Web foraging, learning, and writing code. We describe two studies of how programmers use online resources. The first, co ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
This paper investigates the role of online resources in problem solving. We look specifically at how programmers—an exemplar form of knowledge workers—opportunistically interleave Web foraging, learning, and writing code. We describe two studies of how programmers use online resources. The first, conducted in the lab, observed participants ’ Web use while building an online chat room. We found that programmers leverage online resources with a range of intentions: They engage in just-in-time learning of new skills and approaches, clarify and extend their existing knowledge, and remind themselves of details deemed not worth remembering. The results also suggest that queries for different purposes have different styles and durations. Do programmers’ queries “in the wild ” have the same range of intentions, or is this result an artifact of the particular lab setting? We analyzed a month of queries to an online programming portal, examining the lexical structure, refinements made, and result pages visited. Here we also saw traits that suggest the Web is being used for learning and reminding. These results contribute to a theory of online resource usage in programming, and suggest opportunities for tools to facilitate online knowledge work.
Example-Centric Programming: Integrating Web Search into the Development Environment
, 2010
"... The ready availability of online source-code examples has fundamentally changed programming practices. However, current search tools are not designed to assist with programming tasks and are wholly separate from editing tools. This paper proposes that embedding a task-specific search engine in the d ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
The ready availability of online source-code examples has fundamentally changed programming practices. However, current search tools are not designed to assist with programming tasks and are wholly separate from editing tools. This paper proposes that embedding a task-specific search engine in the development environment can significantly reduce the cost of finding information and thus enable programmers to write better code more easily. This paper describes the design, implementation, and evaluation of Blueprint, a Web search interface integrated into the Adobe Flex Builder development environment that helps users locate example code. Blueprint automatically augments queries with code context, presents a code-centric view of search results, embeds the search experience into the editor, and retains a link between copied code and its source. A comparative laboratory study found that Blueprint enables participants to write significantly better code and find example code significantly faster than with a standard Web browser. Analysis of three months of usage logs with 2,024 users suggests that task-specific search interfaces can significantly change how and when people search the Web.
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.
Pedagogy and usability in interactive algorithm visualizations: Designing and evaluating CIspace
, 2007
"... www.elsevier.com/locate/intcom ..."
Experiences with Novices: The Importance of Graphical Representations in Supporting Mental Models
- 12 th Annual Workshop of the Psychology of Programming Interest Group
, 2000
"... Recursion is an important problem solving technique used in programming. It is also a highly unfamiliar mental activity and many computing novices have difficult understanding recursion and applying recursive techniques in problem solving. Research studies have concluded that novices and experts dif ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Recursion is an important problem solving technique used in programming. It is also a highly unfamiliar mental activity and many computing novices have difficult understanding recursion and applying recursive techniques in problem solving. Research studies have concluded that novices and experts differ in their mental models of recursion. Novices seem to possess various inadequate models of recursion especially the iterative or loop model. This paper examines whether novices who are aided in acquiring an expert's mental model of recursion (the copies model) can effectively use this model in evaluating recursive algorithms. Results of a study indicated that a large percentage of novices who had previously demonstrated an understanding of the copies model (using explicit diagrammatic traces) failed do so when not using diagrammatic traces. In fact, they appeared to demonstrate evidence for the incorrect iterative or loop model when trying to mentally evaluate recursive programs. The resu...
Reducing Cognitive Load
- Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04
, 2004
"... This paper explores issues related to cognitive load in the contexts of learning, information filtering, user modeling, categorization and personal information organizing behavior. We incorporate expertise from the fields of information science, educational psychology and computer science to report ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
This paper explores issues related to cognitive load in the contexts of learning, information filtering, user modeling, categorization and personal information organizing behavior. We incorporate expertise from the fields of information science, educational psychology and computer science to report research that can ultimately influence the design of personalized adaptive systems. 1.

