Incorporating software visualization in the design of intelligent diagnosis systems for user programming

Haider A. Ramadhan, Fadi Deek, Khalil Shihab

Research output: Contribution to journalArticlepeer-review

12 Scopus citations


Program diagnosis systems were developed to help users solve programming problems. By providing guidance on errors and misconceptions, these systems can help the users in writing programs and understanding their dynamic behavior. Features of software visualization which aim at providing visual and concrete depictions to the abstractions and operations of programs have also shown to be making programs more understandable. The main theme of this paper is to asses the usefulness of incorporating features of software visualization into the design of program diagnosis systems intended for novices. We report an empirical evaluation to assess the effectiveness of supporting visualization features during problem solving. The system used in the evaluation integrates visualization and immediacy features and supports a model-tracing based approach to program diagnosis. Unlike other similar systems, our prototype system supports a more flexible style of interaction by increasing the grain size of diagnosis to a complete programming statement. The evaluation reported here seems to suggest that when supported with visualization features, systems for program diagnosis tend to be more effective in helping the users during problem solving.

Original languageEnglish (US)
Pages (from-to)61-84
Number of pages24
JournalArtificial Intelligence Review
Issue number1
StatePublished - Sep 2001

All Science Journal Classification (ASJC) codes

  • Language and Linguistics
  • Linguistics and Language
  • Artificial Intelligence


  • Intelligent program diagnosis & tutoring
  • Knowledge representation
  • Program debugging
  • Programming by discovery
  • Software development environments
  • Software visualization


Dive into the research topics of 'Incorporating software visualization in the design of intelligent diagnosis systems for user programming'. Together they form a unique fingerprint.

Cite this