Cognitive Questions in Software Visualization

Rodney T Walker
CS 7390 - Winter 1998
Dr. John Stasko
College of Computing
Georgia Institute of Technology


Introduction
One of the most practical questions in the field of software visualization, and by extension algorithm animation, is "Do these techniques actually work?" While answering this question is not an easy task, there have been studies done to examine certain parts of it. One of the more interesting areas looking at this concerns the cognitive questions associated with software visualization (SV).

In looking at the cognitive questions, there are three topics that we want to examine. These include usage (Does it make visualizing certain things easier?), validation (Does it go about doing things "right"?), and verification (Is it being used correctly?). Obtaining further evidence into these areas will enable us to better answer our original question. The book chapter and two papers that I examined for this gave much insight into, and a wealth of information about, SV.

SV Construction
One of the first things we must do is determine what the focus of SV is. The primary aims listed in the book included the following:

All of these have to do with displaying information from different perspectives. This is done in an attempt to better show certain relationships, emphasize underlying trends or information which would otherwise be missed, and, in general, allow the viewer to have a understanding of what is going on.

However, in doing this the presentation must be done in such a way as to clearly represent what is going on and convey the information in a manner so that it can be understood and interpreted correctly. This is no easy task, as there are many ways and areas that the visualization (viz) can be focused, among them being the following:

One way in which this can be simplified is with specifying the viz to a particular audience. For this purpose, the readings focused on two general groups -- novice and expert users. The goals of the viz's for the two groups varied greatly. The four main reasons for creating a viz for novices were to: The expert users were assumed to have not only topic knowledge, but also experience with using and interpreting viz's. In their case, different objectives were desired, including:

Case Study
One example of the novice approach is the HyperProof system, developed to teach first-order predicate calculus. In HyperProof, standard logic calculus or a graphical display is used in an attempt to combine the techniques of abstraction and mental modelling. The claim is made that by doing this, the user incorporates both of these models and internalizes the information, thereby gaining a better grasp of the relationships involved.

Techniques
If our focus is on novice and expert users, then we must tailor our viz's to them. First, in order to make sure they get as much from them as possible. Second, to ensure that they take this information and interpret it correctly. If this is done correctly, then our viz will be serving its purpose and adding value to the learning experience.

For novice users, two very important things must be done. We must first look at the needs of the novice user and make sure we are meeting and fulfilling them. We should understand their problems and misconceptions, and work on removing these. In addition, the student's intuitive model and the model of the software viz or language should be made to match as closely as possible. This can be done by leveraging off knowledge the student already has, which brings us to our second point.

We should not assume that the student has any background training or information into the topic we are covering. One way to test this would be to ask the student what knowledge they have and to see if their cognitive model of what is happening in the model matches with what is actually occurring. From this, we can tailor the viz to the student in such a way as to more closely match their mental model.

Expert users have a different set of goals and objectives, so their viz's must be constructed in a different way. With experts, one big change is that we can assume background knowledge, so we can build our viz's accordingly. We can have more implicit information than we could with novices, and we can establish more in-depth relationships between data.

There are two other factors which are important in the creation of viz's. the first concerns the level of knowledge which the audience has. The more knowledge they possess, the more information which can be placed in the viz itself, and the more they can possibly gain from viewing it. The other factor that can be used with almost all users is leveraging off cultural conventions in the viz. This can help in many ways, including the following:

Conclusion
The evidence presented in the readings I researched presented a compelling argument that SV is a valid method for helping people to understand programs and their execution better. If the information is presented in a coherent and reasonable manner, and targeted towards its audience, then it should be a useful and invaluable tool in education.

References
Petre, M., Blackwell, A. & Green, T. Cognitive Questions in Software Visualization. In "Software Visualization", edited by John Stasko et al. MIT Press. pp. 453-480. 1998.

Eisenstadt, M., Price, B. & Dominque, J. Software Visualization as a Pedagogical Tool. Technical Report 93. Human Cognition Research Laboratory. The Open University. 1992.

Douglas, S. & Hundhausen, C. Exploring Human Visualization of Computer Algorithms. Graphics Interface '96. Toronto, Ontario, Canada. pp. 9-16. 1996.