Gabby Best and Heather Mahaney
The Algorithm Animator Package is a program designed for use by students and faculty in the Computer Science department at Washington and Lee. This program is teaching software, targeted at the beginning student. Its purpose is to help the student gain a further understanding of the basic algorithms in computer science. The student may choose to view a hardwired algorithm or one programmed by their instructor using a simple language designed for the software. The user sees the written algorithm and an array of random numbers. As each step takes place, the program highlights its code and animates the changes to the array, allowing the user to view the actions of the steps. The program serves as a valuable as a valuable learning tool by allowing the user to view and interact with the execution of the code.
We decided to write the program in Java because it is a modern, object orientated language that is extremely portable. Java’s ease of use was also very attractive because it allowed us to utilize Sun tutorials and packages, such as SWING, making it easy to design a user-friendly interface. Several modern Java design patterns were also used to enhance the structure of the program and make it easier for others to understand. The Model-View-Controller design pattern provided the basic framework for the program by dividing it into three sections. The user sees and interacts with the view. The model represents and manipulates the data. The controller handles communication between the model and view. The Observer and Command patterns were used in conjunction with the MVC pattern to create independence between the model and the view. This allows both the view and model to be used for different applications without changing the code. It also makes the program easier to maintain because changes can be made to one aspect of the program without effecting the other. The rapid advancements in computer technology make reusability and maintainability extremely important in software development.
Our program allows two basic users: the instructor and the student. This program allows the instructor to write an algorithm, rather than just choosing a hard-wired program to be animated. This gives the instructor valuable flexibility to use the program in conjunction with many aspects of beginner courses. For example, an instructor can design a new algorithm to assess the students understanding of specific concepts. The student benefits from our program because it makes comprehension simpler through the animation of algorithms. The user can manipulate the program so they obtain a clear understanding of each step in the program. They may choose to use the "Run Mode" to get a feel for the flow of the program, or the "Step Mode" to see the action of each command at the click of the mouse.
Although the program is fully operational, there are still minor features that need to be enhanced. We plan to continue work on the project throughout the year, so that the software can be used in our computer labs.