Results 1 - 10
of
14
How Effective Developers Investigate Source Code: An Exploratory Study
- IEEE Transactions on Software Engineering
, 2004
"... ©2004 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other wo ..."
Abstract
-
Cited by 60 (11 self)
- Add to MetaCart
©2004 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
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.
An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 2006
"... Much of software developers’ time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debug ..."
Abstract
-
Cited by 44 (12 self)
- Add to MetaCart
Much of software developers’ time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes. The study found that developers interleaved three activities. They began by searching for relevant code both manually and using search tools; however, they based their searches on limited and misrepresentative cues in the code, environment, and executing program, often leading to failed searches. When developers found relevant code, they followed its incoming and outgoing dependencies, often returning to it and navigating its other dependencies; while doing so, however, Eclipse’s navigational tools caused significant overhead. Developers collected code and other information that they believed would be necessary to edit, duplicate, or otherwise refer to later by encoding it in the interactive state of Eclipse’s package explorer, file tabs, and scroll bars. However, developers lost track of relevant code as these interfaces were used for other tasks, and developers were forced to find it again. These issues caused developers to spend, on average, 35 percent of their time performing the mechanics of navigation within and between source files. These observations suggest a new model of program understanding grounded in theories of information foraging and suggest ideas for tools that help developers seek, relate, and collect information in a more effective and explicit manner.
Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase. Submitted for Publication
, 1999
"... Abstract. The goal of our study is to evaluate the effect on program comprehension of three factors that have not previously been studied in a single experiment. These factors are programmer expertise (expert versus novice), programming task (documentation versus reuse), and the development of under ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
Abstract. The goal of our study is to evaluate the effect on program comprehension of three factors that have not previously been studied in a single experiment. These factors are programmer expertise (expert versus novice), programming task (documentation versus reuse), and the development of understanding over time (phase 1 versus phase 2). This study is carried out in the context of the mental model approach to comprehension based on van Dijk and Kintsch’s model [(1983) Strategies of Discourse Comprehension. New York: Academic]. One key aspect of this model is the distinction between two kinds of representation the reader might construct from a text: (1) the textbase, which refers to what is said in the text and how it is said, and (2) the situation model, which represents the situation referred to by the text. We have evaluated the effect of the three factors mentioned above on the development of both the textbase (or program model) and the situation model in object-oriented program comprehension. We found a four-way interaction of expertise, phase, task and type of model. For the documentation group we found that experts and novices differ in the elaboration of their situation model but not their program model. There was no interaction of expertise with phase and type of model in the documentation group. For the reuse group, there was a three-way interaction between phase, expertise and type of model. For the novice reuse group, the effect of the phase was to increase the construction of the situation model but not the program model.
Task Oriented Software Understanding
- In Proceedings of Automated Software Engineering
, 1998
"... The main factors that affect software understanding are the complexity of the problem solved by the program, the program text, the user's mental ability and experience and the task being performed. This paper describes a planning approach solution to the software understanding problem that focuses o ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
The main factors that affect software understanding are the complexity of the problem solved by the program, the program text, the user's mental ability and experience and the task being performed. This paper describes a planning approach solution to the software understanding problem that focuses on the user's task and expertise. First, user questions about software artifacts have been studied and the most commonly asked questions are identified. These questions are organized into a question model and procedures for answering them are developed. Then, the patterns in user questions while performing certain tasks have been studied and these patterns are used to build generic task models. The explanation system uses these task models in several ways. The task model, along with a user model, is used to generate explanations tailored to the user's task and expertise. In addition, the task model allows the system to provide explicit task support in its interface. Keywords software explan...
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.
Expert error in trouble-shooting: an exploratory study in electronics
, 1999
"... It is known that novices show poor problem-solving performances and that they engage in a relatively inefficient inferential reasoning mode. Experts show high performances in routine situations in which they only activate knowledge. The main purpose of this work was to test the hypothesis that, unde ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
It is known that novices show poor problem-solving performances and that they engage in a relatively inefficient inferential reasoning mode. Experts show high performances in routine situations in which they only activate knowledge. The main purpose of this work was to test the hypothesis that, under some conditions, novices may develop a more efficient diagnostic reasoning than experts, i.e. they may discover the cause of a faulty system conducting fewer tests while avoiding fixation errors. This hypothesis mainly relies on the possibility that experts may be victims of their own knowledge format (French and Sternberg, manuscript). It is tested in a faulty electronic circuit troubleshooting task. Data suggest that novices perform better than experts. Results are discussed with reference to the concepts of schema and expert error.
Individual Differences in Program Comprehension Strategies in an Unfamiliar Programming System
- at International Workshop on Program Comprehension
, 2003
"... This study examines the effect of individual differences on the program comprehension strategies of users working with an unfamiliar programming system. Participants of varying programming expertise were given a battery of psychological tests, a brief introduction to a statistical programming enviro ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
This study examines the effect of individual differences on the program comprehension strategies of users working with an unfamiliar programming system. Participants of varying programming expertise were given a battery of psychological tests, a brief introduction to a statistical programming environment, and a 20-minute debugging task. Our data show three distinct comprehension strategies that were related to programming experience, but individuals with stronger domain knowledge for specific bugs tended to succeed. 1.
N.: Aspects of cognitive style and programming
- Proceedings of the Sixteenth Annual Workshop of the Psychology of Programming Interest Group (PPIG
, 2004
"... There is widespread concern about low pass rates on introductory programming courses. While considerable research has been carried out to elucidate the reasons for this situation, many of the parameters leading to success or failure in the subject remain unknown. This article describes the results o ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
There is widespread concern about low pass rates on introductory programming courses. While considerable research has been carried out to elucidate the reasons for this situation, many of the parameters leading to success or failure in the subject remain unknown. This article describes the results of an experiment to test two cognitive characteristics that have been shown to be important in other conceptual areas: working memory space and field dependency. These are related to examination results of around 150 students on an introductory programming course at the University of Glasgow. The results show that whilst working memory space appears to have only a marginal influence on levels of achievement on the course, field dependency is an important factor in determining success. The implications of this on the teaching of the subject are discussed briefly.
My program is correct but it doesnt run: A review of novice programming and a study of an introductory programming paper
, 2001
"... Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novic ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novice capabilities and behavior 2.2.4 Kinds of novice 2.3 Novice learning and teaching in CS1 2.3.1 Goals and progress 2.3.2 Course design and teaching methods 2.3.3 Alternative methods and curricula 2.4 Summary 3.0 A study of an introductory programming paper 3.1 The design of COMP103 3.1.1 Context 3.1.2 Lectures and knowledge 3.1.3 Laboratory sessions and strategy 3.1.4 Summary 3.2 The study 3.2.1 Background 3.2.2 Method 3.3 Results 3.3.1 Lab based problem tallies 3.3.2 Trends 3.3.3 Other observations 4.0 Discussion 4.1 Kinds of novice 4.2 Knowledge, strategies, and effective teaching and learning 4.3 A framework 5.0 Summary References

