CPP Report
CPP Report
Project on-
Algorithm Visualization
Sr.
Name of student Enrollnment No. Roll no
No.
Seal of
Institution
S.M.D.R GOVTERNMENT POLYTECHNIC
DHULE
-SUBMISSION-
I am …………………………………………………………………………………
Roll No.- …………………………………………………….as a student of 5th Sem/Year of
the Programme Computer Engineering humbly submit that I have completed from time to
time the Practical/Micro-Project work as described in this report by my own skills and study
between the period from ……………………… to …………………….. as per
instructions/guidance of prof…………….
And that following students were associated with me for this work, however, quantum
of my contribution has been approved by the Lecturer.
And that I have not copied the report on its any appreciable part from any other literature
in contravention of the academic ethics.
The success and final outcome of this project required a lot of guidance and assistance
from many people and we are extremely privileged to have got this all along the completion of
our project. All that we have done is only due to such supervision and assistance and we would
not forget to thank them.
We heartily thank Mr. Deshmukh, Head, Department of Science and Humanities, for his
guidance, suggestions and encouragement during this project work.
We owe our deep gratitude to our project guide prof………………., who took keen
interest on our project work and guided us all along, till the completion of our project work by
providing all the necessary information for developing a good system.
We are thankful to and fortunate enough to get constant encouragement, support and
guidance from all the Teaching staffs of Department of Science and Humanities which helped
us in successfully completing our project work.
ABSTRACT
Software visualization provides methods to make algorithms and programs more understandable.
Allowing a user to interact with dynamically changing graphical representations of algorithms or data
structures can be helpful in teaching, research, or systems programming. For example, a sorting
algorithm could be animated by a sequence of frames displaying a set of vertical lines of different
heights, permuted in an order of increasing height. Such animations are useful for developing new
programs, for debugging, and for explaining how programs work.
This paper discusses a study performed on animating sorting algorithms as a learning aid for classroom
instruction. A web-based animation tool was created to visualize four common sorting algorithms:
Selection Sort, Bubble Sort, Insertion Sort, and Merge Sort. The animation tool would represent data
as a bar-graph and after selecting a data-ordering and algorithm, the user can run an automated
animation or step through it at their own pace. Afterwards, a study was conducted with a voluntary
student population at Rhode Island College who were in the process of learning algorithms in their
Computer Science curriculum. The study consisted of a demonstration and survey that asked the
students questions that may show improvement when understanding algorithms. The results and
responses are recorded and analyzed in this paper with respect to previous studies.
Algorithm visualization illustrates how algorithms work in a graphical way. It mainly aims to simply
and deepen the understanding of algorithms operation. Within the paper we discuss the possibility of
enriching the standard methods of teaching algorithms, with the algorithm visualizations. As a step in
this direction, we introduce the VizAlgo algorithm visualization platform, present our practical
experiences and describe possible future directions, based on our experiences and exploration
performed by means of a simple questionnaire.
Table of Content
Sr no. Content
1. Introduction
2. Literature Review
INTRODUCTION
Data Structures and Algorithm is an important topic for the students who are pursuing Computer
Science and Engineering or IT. There is a need of DSA no matter which programming language you
learn. An application like this is to help students to understand Data Structures and Algorithms through
animation and not just theory. As Data Structures and Algorithms is the building block of the software
developing process, it is very important to learn them in easier and simple way for which we are using
animations. Our aim is to create an appealing application for students and professors on both mobile
and browser platform which will help in better understanding of working of simple data structures as
well as complex algorithms. Also, to bring forth the beauty of the algorithms by animating them in a
visually appealing manner. Algorithm animation can provide a visual representation of data structures
and algorithm execution that can simplify algorithm learning and understanding. However, algorithm
animation has not widely used in teaching data structures and algorithms.
Nowadays sorting algorithms are widely used in computer software. For example, if you open file
explorer on your PC, you may see files sorted in different ways. Searching in sorted data is more
efficient than in not sorted ones. Students of computer science start learning different algorithms in the
first year of studies and sorting algorithms are among them. Since I faced the problems of sorting during
the course of algorithm design in the first year of my studies, there is an understanding that the visual
representation is a vital part of the studying process. During working on the thesis it was very exciting
to learn different techniques of sorting algorithms into the depth. The main goal of the thesis was to
create a program which would serve as a tool for understanding how most known sorting algorithms
work. There was an attempt to make the best possible user experience.
The demonstration software is made in a user-friendly and easy-to-use style. To gain maximal benefit
from learning you can try each sorting algorithm on your data. The text of the thesis describes principles
of the most known sorting algorithms which are demonstrated in the computer program. It might be
used as a source for learning algorithms by students. Also, the program might be easily used as a
demonstration by lecturers and tutors during classes. Besides, there is programmer documentation and
user guide to the provided software. Readers of this text are expected to have some programming
experience to know basic data structures such as arrays, lists, trees and understand recursive procedures.
Also, knowledge of some simple algorithms and their implementations could be helpful. In order to
understand the topic better, knowledge of linear algebra and calculus is involved.
LITERATURE REview