ACTIVE vs. PASSIVE APPROACHES TO INTELLIGENT PROGRAM DIAGNOSIS
Much of research in intelligent programming systems for users has been polarized towards two opposite domains: active and passive approaches to diagnosis. The advocates of the active approach claim that much of the effectiveness of intelligent program systems is contributed to having strong control over the behavior of the users and providing immediate feedback on errors and misconceptions. Opponents of this approach, on the other hand, have argued that active approach through its interventionist style does not provide users the flexibility needed to observe their own behavior and discover their own errors, hence the users are not given an opportunity to selfdebug their solutions. This paper covers the engineering of intelligent program diagnosis systems and reports an empirical evaluation which attempts to get some insights into the superiority of active approach over passive approach or vice versa. The evaluation is conducted using our prototype system DISCOVER. The system provides a visualization-based environment which supports both active and passive modes of intelligent program diagnosis.