There has been extensive use of algorithm animation systems as teaching aids in computer science education. A number of empirical studies have been conducted to evaluate their effectiveness in education but results vary.
Brown (1984) used BALSA-I to teach an introductory programming course and an "algorithms and data structure" course. The system was used as a program visualizer in the introductory course, and as a high-level algorithm animator in the data structure course. He reported that the use of animation scripts to supplement lectures led to 'demonstrable gains in speed of comprehension' over the traditional lecture. Stasko (1997) used Samba, the Animator program of the XTango system to teach a computer science algorithms course. Students were required to use the system to add animation to their assignment programs. Results indicated that students enjoyed the animations and that the animations were able to engage students' creativity and expressiveness. Furthermore, students' understanding of the algorithms were enhanced by the animations.
The use of algorithm animation in teaching, however, does not always prove successful. Empirical studies have been conducted by educators and have produced mixed results. Stasko et al. (1993) conducted an experiment on teaching two groups of students with different lecture materials. Both groups of students studied the "pairing heap" algorithm. One group learned the algorithm based on textual description and the other group received the same textual descriptions supplemented by interactive animation. Although the results showed that the animated group achieved higher marks than the other group, no significant benefit could be linked specifically to the animation.
Similarly, Byrne et al. (1996) conducted two experiments in which the results showed that the benefits of animations were not obvious. These mixed results were regarded as disappointing as most educators believe that animation does aid learning.
However, these unfavourable experiment results suggest other important factors regarding the use of algorithm animation. The results indicate that to achieve the full effectiveness of algorithm animation, it is important that the animation is used in conjunction with other factors. Lawrence et al. (1994) used the XTANGO and POLKA systems to teach Kruskal's minimum spanning tree algorithm. Amongst the group of students who attended laboratory sessions, performance of students who attended an interactive laboratory session was significantly better than students who attended passive laboratory sessions. Their results have shown that it is important to let students control and interact with animation and that the animation is available to them outside the classroom setting. Better control and interaction were achieved by means of letting students to create their own data sets for the algorithm rather than observing prepared data sets.
Moreover, more recent research by Kehoe et al. (1999), while not entirely successful, does make some possible claims for the use of animation as an educational tool. The experiment was carried out in a different manner from other experiments. Students were divided into two groups and both learned the 'binomial heap" algorithm. One group learned the algorithm by interacting with animation whilst the other group did so by reading still figures about the operations' key points of the algorithm. The difference in this experiment was that it simulated a homework scenario. Students were given the questions prior to the start of the session. During the test, students could have access to teaching materials and there was no limit on time spent to complete the test. Results of this experiment showed the group was interacted with animation in some aspects, but not all, performed better than the other group. However, comments from students of the animated group reflected that animation did help them to understand the algorithm better.
The report by Kehoe et al. (1999) demonstrated a more effective way of using algorithm animation in teaching to achieve higher pedagogical value. It demonstrated that algorithm animation was better used in open and interactive learning situations (such as a homework exercise). As well, algorithm animation can be more useful pedagogically when it is used in coordination with other learning materials or accompanying other instructions that explain how the animation simulates an algorithm's operations. The report also demonstrated that algorithm animation can best facilitate learning of the procedural operations of algorithms. While animation does not always facilitate learning, at least, it can make an algorithm less intimidating by making that algorithm more accessible.
Stasko et al. (1993) concluded from their experiment a number of conditions under which algorithm animation might be most beneficial. One of the conditions was to accompany algorithm animation with comprehensive motivational instructions. When the algorithm animation simulates this instruction, the animation display should be augmented by textual descriptions of the ongoing operations. Another condition was that the algorithm animation system should include rewind or replay capabilities to allow users to back up and review important operations. Some form of history showing previous state should also be provided. They also suggested that students' feedback was also valuable in improving the instructional quality of the animation.
Although results drawn from these empirical studies are not always favourable, this does not indicate that algorithm animation is ineffective in teaching. In fact, there is ongoing research in the redesign and reevaluation of algorithm animation. Hansen et al. (1999) believe that disappointing results in previous empirical studies are not because of flaws with animation as a technique, but because of the approach used to convey the animations. They have developed a hypermedia algorithm visualization system called HalVis (Hypermedia Algorithm Visualizations). Based on their framework for the design of algorithm visualizations, they conducted several empirical experiments by using this system. All the experimental results shown that hypermedia algorithm visualization was significantly more effective than traditional teaching methods.
These issues indicate that for algorithm animation to be effective and beneficial to users, appropriate design and utilization of animation are important factors. These have been used as our guidelines for designing our LL parsing animation system. For algorithm animation to be effective, the animation system should possess the following:-
1. Open access:
Users should be able to have open access to the animation system. That is, besides having access to the system in school, they should be able to access the system from home or anywhere else.
2. Control of animation:
Users should be able to create their own data sets when using the animation system. While predefined data sets can also help students to build up initial understanding, the system should have both options.
3. Ineractivity:
The animation system should provide interaction between the users and the system. Interaction includes users ability to step, undo, rewind or fast forward the animation to any desirable state.
4. History:
The animation system should enable users to return and view previous states of the animation in execution.
5. Feedback:
Students' feedback on using the animation system should be obtained to evaluate the effectiveness of the system as well as to improve the system.
This thesis will use these guidelines for building the parsing animation system with appropriate technology. In the remainder of this thesis, we will look at several algorithm animation tools that can be used to build the animation system and how to choose appropriate tool amongst them. We will then describe how to use the tool to build an animation system that meets with the above-mentioned guidelines.