742 CHAPTER 24. GRAPH DRAWING IN EDUCATION
include source code, data structures, and runtime behavior. Program visualization can
be used to illustrate the functioning of an algorithm or data structure (as in algorithm
animation), to gain an understanding of how the program works, to aid in debugging, and
to evaluate and improve program performance.
In the classroom, program visualization can help students learn to program and debug by
revealing what their programs are actually doing. This is more effective than systems which
attempt to explain a bug (because explanations require understanding the underlying con-
cept in the first place), try to guide the student to a particular way of solving the problem
(ignoring other valid solutions), or are limited ...