skip to main content
Understanding the bugs of novice programmers (pascal, human-computer interaction, problem solving)
Publisher:
  • University of Massachusetts Amherst
Order Number:AAI8509525
Pages:
288
Bibliometrics
Skip Abstract Section
Abstract

Why do people have trouble learning to program__ __ This dissertation presents a theory of novice programming bugs motivated by interviews where novice programmers solved simple programming problems. Novice programming knowledge is represented in two components. Fragments of pragmatic programming knowledge (PK) describe the expert programming knowledge that a novice has acquired. Step-by-step Natural Language procedural knowledge (SSK) describes the experience a novice brings to programming from Natural Language. These two knowledge bases are tied together by functional and surface parallels. PK and SSK are represented by Plans: frame-like bundles of knowledge about the pragmatic features of programming.

When a novice is programming and encounters a gap or inconsistency in the PK, he or she has reached an impasse. The theory proposes bug generators as strategies for patching the impasse and continue developing a solution. Usually this patch introduces a bug. Three types of bug generators are discussed. SSK/PK bug generators use SSK knowledge to patch an impasse, exploiting functional and surface parallels to convert a PK impasse into a problem in SSK, the better known domain. With Intra-PK bug generators, novices rely on interconnections between fragments of PK to patch an impasse. Other/PK bug generators use other knowledge, from algebra, for example, to patch an impasse.

The theory is evaluated based on interviews of novice programmers working on Pascal programming problems. A key set of predictions from the theory are formulated and a two part method to analyze the protocol data is described. The plan analysis describes the plans being used by the novice. The bug analysis interprets each bug in terms of all plausible bug generators. An entire analyzed protocol is shown. Based on that and three other protocols, the predictions of the theory are evaluated. Also, that analysis is used to comment on general patterns of plan usage and bug generator coverage.

The dissertation concludes by summarizing what has been accomplished, the implications of the work, and future directions for the work. A plan-based novice programming environment and tutor is described as a natural extension of this work.

Contributors
  • International Business Machines

Recommendations