Algorithm Explorer
Algorithm Explorer is a sample application that can be used by computer science instructors and their students to better visualize the operation of important data structures & algorithms. Algorithm Explorer consists of an API of animation functions that will be interleaved with C++ code for the algorithms and data structures in question. Animation will be implemented using Microsoft DirectX in C++ under Microsoft Visual Studio. There will be a full-screen option that can be used in class presentations. All animations will be smooth, high-quality, tied to a timer to ensure correct operation on all hardware, with animation speed controlled by a slide bar.

There will be three main groups of API function calls. The first group controls a Block World that can be used to demostrate sorting algorithms. The second group will control a Graph World that can be used to demonstrate graph algorithms. The third group will control a Stack World that can be used to demonstrate recursion.

The Block World API will be illustrated by providing animations for quicksort, bubblesort, and mergesort. The Graph World API will be demonstrated by providing animations for heaps and for Dijkstra's algorithm for single-source shortest paths. The Stack World API will be demonstrated by providing an animation for the Towers of Hanoi problem.

Input to the algorithms will give the user the option of using random data or input from a file. Data structures will be illustrated using human-centric pictures representing trees and graphs. The user will be able to control the animation one step at a time in response to a button push, or as a smooth animation. Text description of each step of the algorithm will also be provided in the user interface.

The application will also create Microsoft Visual C++ projects for each algorithm at the touch of a button. We will provide Visual C++ project and full source code for Algorithm Explorer so that developers can use the existing API to animations more algorithms, and to extend the API to more classes of animations.

This project is funded by a grant from Microsoft Corporation.

Personnel

Ian Parberry
Principal Investigator
Erik Carson
Programmer

Downloads


Created by Ian Parberry, October 25, 2005
Last updated November 15, 2005