Data Structures and Algorithms is a fundamental course in Computer Science. However, many students find it difficult because it requires abstract thinking. The best way to understand complex data structures is to see them in action. . It would be very helpful if there was a visualization tool of data structures such as arrays, queues, stacks, trees and graphs for students to experiment with. This project is intended to create such an exploration environment, in which students can learn through experimentation. We've developed interactive animations for a variety of data structures and algorithms. Our visualization tool is written in Java using Swing, and runs well under OS X, most flavors of Linux, and most flavors of Windows.
We have visualizations for the following data structures and algorithms:
- Stacks (both array and linked list implementations)
- Queues (both array and linked list implementations)
- Binary Search Trees
- Sorting Algorithms
- Bubble Sort
- Selection Sort
- Insertion Sort
This tool provides complete animation of common operations associated with the data structures, such as inserting an element into and deleting an element from stack and queue. It includes the animation of insertion, deletion and finding operation in binary search tree and the visualization of sorting algorithms such as bubble sort, selection sort and insertion sort. Ultimate gain of this project is that this tool can be used as an effective supplement to the traditional classroom education and textbooks for Data Structures and Algorithms courses.
The development of technologies and the evolvement of the World Wide Web have influenced education. Instructional Web sites and courses on the Web have grown dramatically. Web-based courses that consist of the syllabus, assignments and lecture notes are now widely used. Instructional Web sites that are dedicated to Data Structures and algorithms can be easily found by using Search Engines. However, the majority of the instructional web sites explored during this project lack interactive multimedia.
Feasibility study is a procedure that identifies, describes and evaluates candidate system and selects the best system for the job. An estimate is made of whether the identified user needs may be satisfied using current software and hardware technologies. The study will decide if the proposed system will be cost effective from a business point of view and if it can be developed given existing budgetary constraints. The key considerations involved in the feasibility analysis are economic, technical, behavioral and operational.
Economic Feasibility
The economic analysis is to determine the benefits and savings that are expected from a candidate system and compare them with costs. The system we have proposed is economically feasible, as the organization possesses the hardware and software resources required for the functioning of the system. Any additional resources, if required, can also be easily acquired. The cost of the proposed system is considerably very low.
Technical Feasibility
It centers on the existing computer system and to what extent it can support the proposed addition. The minimum requirement of the proposed system includes a basic knowledge about Java and net beans, which is an IDE of java.
Operational Feasibility
The system operation is the longest phase in the development cycle of a system. So, operational stability should be given much importance. The users of the system are expected to have a knowledge about the commonly used data structures such as stack, queue, binary search tree and also about the different sorting algorithms which include bubble sort, selection sort and insertion sort. The ideas can be more clarified by giving these data structures and sorting algorithms a graphical visualization, which is finally accomplished by the proposed system.
Behavioral Feasibility
In today’s world, computer is an inevitable entity. All the computer students who are aware of the data structures and also about the sorting algorithms can use the graphical implementation done by our proposed system to supplement the traditional instructions.