SAVY
This work was the result of my capstone with Professors Andrew McGregor and Ramesh Sitaraman.
Note: visualizations open in separate windows.
Abstract
SAVY is a stream algorithm visualization environment. It comes pre-loaded with three stream algorithm implementations that allow for experimentation. The hope is that through experimentation SAVY will allow stream algorithm designers to produce better algorithms. The interactive nature of SAVY also makes it a good environment for introducing students to the concept of stream algorithms by allowing them to follow the execution as the data "passes by". Since many stream algorithms are also approximation algorithms SAVY provides the absolute answer for comparison with the approximate answer. (Where an algorithm that provides the absolute answer is known)
Algorithms
SAVY provides an implementation of the following algorithms:
Usage
SAVY allows users to enter their own data and observe how each algorithm reacts (for example during worst case vs common case analysis). Users can also choose to allow the software to generate random data so that users can view the execution of the algorithms over time with little set-up. For more information on SAVY see the Capstone Writeup
Extendibility
SAVY exposes an API to allow users to add their own algorithms to the environment.If you are interested in developing your own visualizations for SAVY please see the user manual located in Appendix B of the capstone writeup and available by itself here.
Download
SAVY is distributed as an applet, an application, and as source code. While all are available for free the generic "do not use for evil" restriction applies. To embed as an applet use source='spring11.AppletWrapper'. To run as an application simply run the .jar file.