Visualization for Education: Softwares

The original motivation for software visualization (SV) research in this area was an effort to assist novices attempting to understand computing algorithms or trying to debug their programs. These articles [1][2][3][4] surveyed revealed the experiences, insights, successes and failures of several research groups in using SV technology.

Two guidelines [1] reveal certain concerns over the use of SV in computer science education. Better utilization of students’ lab time is considered as a central premise. It lies on the fact that in the past most of the students’ lab time was consumed by coding programs rather than spending in learning at the conceptual level advocated by the instructors. Drawing conceptual conclusions from the results of one’s programming efforts determines students’ grade. The second guideline for a SV lab is to emphasize the conceptual orientation of modern computer science. Students are encouraged to visualize and explore the conceptual foundations of algorithms instead of the code behind them.

GAIGS (Generalized Algorithm Illustration through Graphical Software) system was produced under these two guidelines. The ease to use, low expenses and independent of the language environment were kept in mind during the design. They were achieved to some extent since GAIGS relies upon the separation of an algorithm’s implementation and its visualization.

It is quite impressive that a step-by-step lab learning approach was taken to lead student have a complete view and full understanding of the algorithm. However, the effectiveness of this approach is not mentioned in the paper. The educational effort based on the two guidelines mentioned above could possibly have exerted even more positive effect if coding practice using the conceptual knowledge constructed in the SV lab were reflected in the curriculums.

The experiences of using software to teach computer programming at Open University give some insights in utilization of SV technique in this area [2]. It evolved through a "learning by debugging" approach, a "cradle to grave" approach, i.e. using a common environment to support novices and experts, and finally a "stage appropriate" approach. In the last approach, students use visualization appropriate for their current learning stage. This all-the-way exploration reflects a nature process of accumulating knowledge in this area.

The roles of SV technique played in education were discussed based on the two different domains: novices and experts. The major difference of novice and expert in absorbing and digesting the ways that information presents, to a large extent, lies in their existing knowledge base. A big obstacle for a novice in learning programming is suggested to be the lack of a clear execution model, which is expressed as the difficulties in mapping his pre-existing real-world model onto the one required for programming. Thus being able to "see what was happening" rather than "feel something happening" without "understanding what was going on" can be a very useful way for novices to overcome some of the bottlenecks in learning process. However, with a sound knowledge of execution model and ability to develop a collection of strategies utilizing implicit information, experts wish to "see the wood for the trees", that is, to have a way homing in quickly on the trouble spots. It was concluded that the viewpoints required by these two domains are one of abstraction level rather than one of physical scale size.

Several issues present in this paper still need more exploration. It was argued that by providing multiple abstractions both groups can be supported. It also shows the possibility of using SV to support the transition between novice and expert. More questions include how to incorporate SV into the education, how to identify the level and kind of support necessary for each stage of the learning process, the roles of free exploratory learning, and so on.

It is very interesting to compare the SV systems developed by Peter Gloor and Mark Brown [3][4]. Both employ the most recent technologies in this discipline. Gloor’s hypercard-based integrated hypermedia learning environment contains three components: a full hypertext version of the algorithm textbook, interactive animations of the most important algorithms (allow some kind of interactivity), movies explaining the use of the hypertext interface and the animations (non-interactive versions). Simple uniform framework for animations were used in this system, an animation window and an algorithm window (which displays code in progress). A VCR type controller was used as the basic user interface metaphor for all the algorithms. It is reported that this approach has improved student motivation, as student used particular animations to get a better understanding of the algorithm.

Brown’s approach, a CAT (Collaborative Active Textbook) system, employs the web publishing ability to achieve a collaborative learning environment. A limited interaction such as with part of textbook is allowed. It can broadcast its synchronized animation through a wide area network, contrasted to the X protocol multiplexer providing views within LAN-based workstations. This approach separates algorithms from views which are connected by way of "interesting events" collected in an algorithm "oblet" file. Instructor and student see slightly different pages. Instructor has the control over the algorithm by algorithm-independent control panel provided for starting, pausing, stopping, and speed control. Replay of the views is also featured. The animation 2D and 3D library was declared well proven in practice. The requirement for certain specific web browsers is its downside, which could limit its wide acceptance. And how it can be incorporated into a class for best effectiveness may still be an open issue. To overcome CAT’s drawback, JCAT was implemented as a 2D CAT version in JAVA. It runs in major web browsers.

The papers surveyed here all indicated that their system could not replace the human teachers, rather than hopefully assist them in teaching. It is possible, though, for users with certain knowledge base can rely solely on one or more SV tools to obtain the further knowledge pursued.

Reference:

[1] "Algorithm Visualization in Computer Science Laboratories", Thomas Naps, SIGCSE BULLETIN (1990) 22, 105-110.

[2]"Using Software to Teach Computer Programming: Past, Present and Future", Chapter 26. 

[3] "Animated Algorithms", Chapter 27.

[4] "Collaborative Active Textbooks", Marc Brown and Marc Najork, Journal of Visual Languages and Computing (1997) 8, 453-486.