Reducing the variability of programmers' performance through explained examples

  title={Reducing the variability of programmers' performance through explained examples},
  author={David F. Redmiles},
  journal={Proceedings of the INTERACT '93 and CHI '93 Conference on Human Factors in Computing Systems},
  • D. Redmiles
  • Published 1 May 1993
  • Business
  • Proceedings of the INTERACT '93 and CHI '93 Conference on Human Factors in Computing Systems
A software tool called EXPLAINER has been developed for helping programmers perform new tasks by exploring previously worked-out examples. EXPLAINER is based on cognitive principles of learning from examples and problem solving by analogy. The interface is based on the principle of making examples accessible through multiple presentation views and multiple representation perspectives. Empirical evaluation has shown that programmers using EXPLAINER exhibit less variability in their performance… 

Figures and Tables from this paper

An Object-Oriented Represenation Language to Support Multiple Perspective Explanations

The EXPLAINER tool [Redmiles 93] was developed to help programmers solve tasks in computer graphics by allowing them to explore previously worked-out examples from several different perspectives.

Exploring novice programmer example use

An exploratory study of novices using examples to complete programming tasks shows that participants spent more time after the realization point using the example than they did identifying which part of the example to use.

Observations on using empirical studies on developing a knowledge-based software engineering tool

  • D. Redmiles
  • Computer Science
    Proceedings of 8th Knowledge-Based Software Engineering Conference
  • 1993
An analysis of several techniques for performing empirical studies is presented through an approach that balances empirical study with tool development, based on a several-year experience of consulting in a scientific software environment and in building an evaluating a prototype knowledge-based tool to capture aspects of that experience.

The reuse of uses in Smalltalk programming

An empirical study of expert Smalltalk programmers reusing user interface classes in small graphical applications to develop a qualitative characterization of expert reuse strategies that could be used to identify requirements for teaching and supporting reuse programming.

WebEx: Learning from Examples in a Programming Course

This paper presents WebEx a Webbased tool for exploring programming examples that enables teachers to use example-based programming approach with heterogeneous classes and maximizes learning opportunity for every student.

How effective developers investigate source code: an exploratory study

The results support the intuitive notion that a methodical and structured approach to program investigation is the most effective.

Cognitive support through visualization and focus specification for understanding large class libraries

  • J. Ali
  • Computer Science
    J. Vis. Lang. Comput.
  • 2009

Obstacles in Using Frameworks and APIs: An Exploratory Study of Programmers' Newsgroup Discussions

  • Daqing HouLin Li
  • Computer Science
    2011 IEEE 19th International Conference on Program Comprehension
  • 2011
An exploratory study was conducted in which a set of newsgroup discussions about  specific challenges that programmers had about a software framework were analyzed and several categories of obstacles in using APIs were identified.

Towards Understanding Successful Novice Example Use in Blocks-Based Programming

A study exploring the impacts of example-task similarity and annotation style on children’s abilities to use examples in a blocks-based environment suggests that annotations improve task performance to an extent and that mappings and programming behavior can begin to explain the remaining problems novices have.

The Example Guru: Suggesting Examples to Novice Programmers in an Artifact-Based Context

This work aims to encourage novices in artifact-based programming contexts to explore new API methods and skills, as examples are effective for learning and highly available.



From programming tasks to solutions: bridging the gap through the explanation of examples

E scXPLAINER is described, which supports programmers' use of examples in the domain of graphics programming, assisting them with examples and explanations from various views and representation perspectives, and serves as a test bed for representations based upon multiple perspectives.

Empirical Studies of Programming Knowledge

Two empirical studies attempt to evaluate the hypothesis that expert programmers have and use two types of programming knowledge: programming plans, which are generic program fragments that represent stereotypic action sequences in programming, and rules of programming discourse, which capture the conventions in programming and govern the composition of the plans into programs.

Supporting Software Designers with Integrated Domain-Oriented Design Environments

An approach that embeds human-computer cooperative problem-solving tools into knowledge-based design environments that work in conjunction with human software designers in specific application

End-user modifiability in knowledge-based design environments

MODIFIER is a system component that supports end users in changing the design environment without the need for dealing with the programming language level substrate.

Schema Creation in Programming

The creation of plan schemas is examined in a naturalistic, longitudinal study of problem solving, which showed a process of backward development from the goal to the plan focus, that part of the plan that directly implements the goal.

Minimalist explanations in knowledge-based systems

The authors have designed an explanation system that provides several levels of explanations, specifically tailored to the user, in the context of a knowledge-based critiquing system, LISP-CRITIC.

Self-Explonations: How Students Study and Use Examples in Learning to Solve Problems

The present paper analyzes the self-generated explanations that “Good” and “Poor” students produce while studying worked-out exomples of mechanics problems, and their subsequent reliance on examples during problem solving and the adequacy of current Al models of explanation-based learning is discussed.

Why and How to Learn Why: Analysis-Based Generalization of Procedures

This paper describes a method for causal attribution that can produce the analyses of examples that the generalization methods require, in the domain of simple procedures in human-computer interaction, and argues that none of the current analysis-based generalized methods fully captures Wertheimer s notion of understanding.

What kind of minimal instruction manual is the most effective

An empirical study examined the effectiveness of four different versions of a self-instruction manual for a word processing system: a Skeletal version that explicitly states only the essential