Summary For Soloway Rubin Johnson 83

  • The BUG-FINDER must be able to recognize two types of bugs: problem independent ones (semantic bugs) and problem dependent ones (pragmatic bugs).
  • Currently, the specification of the intended program is represented as a database of programming plans that correctly solve the problem. A programming plan reflects stereotypic action sequences in programming .
  • The Bug Catalogue was derived from emperical studies carried out with novice programmers.
  • The BUG-FINDER works by first analyzing a student's program into a deep structure representation. The deep structure representation of the program specifies the functional characteristics of the program. the set of primitives of this deep structure representation is based on what an expert programmer might know about the problems of this type.
  • 4 stages in the bug finding process:
    1. the program is parsed into an augmented parse tree. All occurences of each variable are linked together, since many bugs deal with the use of variables, fast access to the occurences of variables is needed in order to faciliate subsequent bug analysis.
    2. annotate the parse tree with useful information about the variuos nodes. This information is designed to simplify and summarize parts of the tree for subsequent bug finding steps.
    3. BUG-FINDER search for instances of the variuos programming plans. this is a pattern matching process which uses the annotations in the parse tree as feature detectors against which to compare the plans
    4. finally, given the augmentes parse tree, the annotation, and instantiated plans, the BUG-FINDER program searches the Bug Catalogue for matches
  • given that the BUG-FINDer has found a bug in a student's program, the next step is to hypothesize the set of potential misconceptions which were in the head of the student which might have been responsible for the program bug.This is the job of the TUTOR.
  • There are four knowledge bases currently in the TUTOR:
    1. The Expert Knowledge Model - the correct knowledge about programming is contained in this component.
    2. The Bug Network - the common bugs we have identified in our empirical work are catalogued in this component.
    3. The Misconception Network - associated with a bug(s) are misconceptions which could give rise to the bug; this network explicitly stores the misconception(s) and a tutorial associated with each bug.
    4. THe Student Model - this is the system's hypothesis as the what the student does and does not know, the student's history of interaction.
  • bugs, indexed by their numbers, are stored in the Bug Network, and are tied to the Expert Knowledge Model by Buggy-Version links. Associated with a bug is a set of possible misconceptions which the student might have and which could cause the observed bug.

-- LeNguyenThinh -- 07 Dec 2004
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback