Professional Documents
Culture Documents
ON
ABHISHEK (20518002720)
MS SWETA RAI
(Assistant Professor)
1. The work contained in this Project Report is original and has been done by us
under theguidance of my supervisor.
2. The work has been submitted to any other University or Institute for the award of
any otherdegree or diploma.
3. We have followed the guidelines provided by the university in the preparing the
Report.
4. We have confirmed to the norms and guidelines in the ethical code of conduct of the
University
5. Whenever we used materials (data, theoretical analysis, figure and texts) from other
sources, we have given due credit to them by citing them in the text of the report and
giving their details in the reference. Further, we have taken permission from the
copywrite owners of the sources, whenever necessary.
Abhishek (20518002720)
i
CERTIFICATE OF ORIGINALITY
To the best of my knowledge this work has not been submitted in part or full for any Degree
or Diploma to this University or elsewhere.
Date :
ii
ACKNOWLEDGEMENT
I would like to express my sincere gratitude to my project guide “Ms. Sweta Rai” for giving me
the opportunity to work on this topic. It would never be possible for us to take this project to
this level without his innovative ideas and his relentless support and encouragement.
Abhishek (20518002720)
iii
CONSENT FORM
Place:
Date:
iv
DELHI TECHNICAL CAMPUS
(Affiliated Guru Gobind Singh Indraprastha University, New Delhi)
Greater Noida
TABLE OF CONTENTS
CANDIDATE’S DECLARATION ....................................................................................................... i
CERTIFICATE OF ORIGINALITY ................................................................................................... ii
ACKNOWLEDGEMENT ...................................................................................................................iii
CONSENT FORM ............................................................................................................................... iv
LIST OF FIGURES ............................................................................................................................ vii
ABSTRACT ........................................................................................................................................viii
CHAPTER 1 INTRODUCTION ......................................................................................................1-3
1.1 BACKGROUND ............................................................................................................................. 1
1.2 OBJECTIVE.................................................................................................................................... 1
1.3 PURPOSE ....................................................................................................................................... 1
1.4 SCOPE ............................................................................................................................................ 2
1.5 APPLICABILITY ........................................................................................................................... 2
1.6 ACHIEVEMENTS .......................................................................................................................... 3
CHAPTER 2 SURVEY OF TECHNOLOGIES LITERATURE ............................................... 4
2.1 PROBLEM DEFINITION............................................................................................................... 4
CHAPTER 3 REQUIREMENT AND ANALYSIS............................................................ 5-6
3.1 REQUIREMENTSPECIFICATION .................................................................................. 5
3.2 REQUIREMENTS .......................................................................................................................... 5
3.2.1 HARDWARE REQUIREMENT ............................................................................................... 5
3.2.2 SOFTWARE REQUIREMENT ................................................................................................. 5
3.3 PLANNING AND SCHEDULING ..............................................................................................5-6
CHAPTER 4 IMPLEMENTATION AND CODING ........................................................ 7-8
4.1 IMPLEMENTATION AND APPROACH...................................................................................... 7
4.2 CODING DETAILS AND CODE EFFICIENCY ........................................................................7-8
vii
ABSTRACT
The project, "Advancing Algorithm Tracing and Visualization," is a comprehensive
endeavor to revolutionize algorithm education through an interactive and immersive
platform. Focusing on essential computer science algorithms, the tool provides dynamic
visualizations of sorting algorithms such as Bubble Sort, Selection Sort, Insertion Sort,
and Quick Sort. Users witness step-by-step executions, gaining insights into efficiency
and functionality.
Expanding its scope, the project introduces visualizations for pathfinding algorithms,
including Depth-First Search (DFS), Breadth-First Search (BFS), and Dijkstra's
algorithm. Users actively engage in the pathfinding process through a drawable maze
canvas, setting start and end points for a hands-on learning experience.
The tool also features a visualizer for Huffman Encoding, unraveling the compression
process in an intuitive manner. This aspect enhances understanding of optimal data
representation and the principles of data compression.
In essence, "Advancing Algorithm Tracing and Visualization" seamlessly blends visual
representation with algorithmic concepts, providing an engaging and effective
means for users to grasp the inner workings of sorting, pathfinding, and encoding
algorithms. The project's dynamic platform transforms algorithm education into an
informative, enjoyable, and customizable journey, catering to learners, educators, and
algorithm enthusiasts alike.
viii
CHAPTER 1 INTRODUCTION
1.1 BACKGROUND
Algorithms form the backbone of computer science, providing systematic
procedures for problem-solving and data manipulation. As the demand for
computational literacy grows, so does the necessity for effective tools to
facilitate the understanding of algorithms, a fundamental skill for
programmers and developers. Learning algorithms, however, can pose
challenges, with abstract concepts often proving difficult to grasp, and the
dynamic nature of algorithmic processes challenging to visualize.
Recognizing these hurdles and driven by a commitment to enhance algorithm
education, the algorithm visualizer project aims to bridge these gaps. The
project's goal is to provide an interactive and captivating learning
environment for a broad audience, involving students, teachers, and future
developers, by making difficult algorithms more approachable. By providing
a visual representation of algorithmic processes, the visualizer seeks to
demystify these abstract concepts and create a platform that fosters a deeper
understanding of the underlying principles. In the following sections, we
delve into the specific objectives, features, and achievements of the algorithm
visualizer, highlighting its potential impact on algorithm education and the
broader field of computer science.
1.2 OBJECTIVE
This visualization platform's primary goal is to give students a more engaging
and entertaining approach to learn complex topics, which will keep them
interested and prevent boredom. The goal is to provide an intuitive interface
that allows students to study and explore with data structures. A system that
offers common operations related to the data structures, like adding and
removing elements from arrays, stacks, and queues, as well as visualizations
for some basic mathematical algorithms and popular data structures like tree,
heap, graph, and queue.
1.3 PURPOSE
It would be helpful to observe algorithms in operation in order to comprehend
the intricate data structures. There are several animated features for different
algorithms in the suggested system. The purpose of the visualisations is to be
1
largely self-explanatory. Our suggested method may be utilised to improve
Data Structures and Basic Mathematical Algorithms textbooks as well as
regular classroom instruction.
1.4 SCOPE
Since SVA is a web application a large number of people can use it with ease
without having the need of downloading any external software or application
and this can be very helpful for students.
1.5 APPLICABILITY
1. Educational Empowerment:
The Algorithm Visualizer project serves as a powerful educational tool,
providing educators with a dynamic resource to teach fundamental
algorithms and data structures. Students can interactively explore and
understand complex concepts, fostering a hands-on learning experience that
goes beyond traditional classroom instruction.
2
complexities, and make informed decisions to optimize their code for better
performance.
1.6 ACHIEVEMENTS
Development Milestones:
Outline the key milestones achieved during the development of the algorithm
visualizer. This could include major feature implementations, successful
integration of algorithms, and the completion of critical development phases.
Educational Impact:
Discuss the project's impact on education. If it has been used in academic
settings or online courses, highlight any positive feedback from educators or
students. Mention partnerships with educational institutions if applicable.
3
CHAPTER 2 SURVEY OF TECHNOLOGIES
2.1 PROBLEM DEFINITION
Visualizing algorithms is the most tried-and-true approach of learning them.
It is not feasible to learn concepts intellectually without also understanding
them practically, especially for disciplines like Data Structures, where
algorithms are the foundation. Since our mental conceptual models of are
formed mostly through abstract thinking, trying to see them on our own gets
quite difficult and perplexing. Therefore, a tool for dynamically visualising
the data structure algorithms is needed so that students may practise and pick
up new skills as needed.
4
CHAPTER 3 REQUIREMENT AND ANALYSIS
3.1 REQUIREMENTS SPECIFICATION
The minimally required computer system can efficiently execute this
suggested software. The requirements for all gadgets are not met; instead,
they are already met by the systems management between the users' devices.
Thus, introducing the correct tools for the product is the primary requirement.
The prerequisites are divided into two groups, specifically:
3.2 REQUIREMENTS
The basic software requirements to run the program are:
3.2.1 SOFTWARE REQUIREMENTS
• Integrated Development Environment (IDE) such as Visual Studio
Code, IntelliJ IDEA.
• Appropriate compiler and build tools for the chosen programming
languages such as JavaScript, TypeScript etc.
3.2.2 HARDWARE REQUIREMENTS
The basic hardware required to run the program are:
• Processor: A modern multi-core processor (e.g., Intel Core i3 or higher).
• Memory (RAM): Minimum 2 GB RAM
• Storage: Sufficient free disk space for the application and
sample data sets.
3.3 PLANNING AND SCHEDULING
The development of the Algorithm Visualizer project was meticulously
planned to ensure efficiency and the successful realization of our objectives.
The project initiation involved a comprehensive analysis of requirements,
defining the scope, and establishing clear goals. A detailed project plan was
formulated, outlining key milestones, deliverables, and the overall timeline.
To manage the complexity inherent in algorithm visualization, we adopted
an agile development approach, allowing for iterative improvements and
responsiveness to evolving needs. The project was divided into distinct
phases, encompassing research, design, implementation, testing, and user
feedback incorporation. Each phase had well-defined tasks and
dependencies, with regular check-ins to assess progress and adjust the plan
as necessary. Furthermore, we utilized project management tools to enhance
collaboration among team members, track tasks, and maintain a transparent
5
workflow. This strategic planning and scheduling approach not only
facilitated a systematic development process but also ensured that the
Algorithm Visualizer adhered to deadlines and met the high standards set for
its educational and user experience goals. In the subsequent sections, we
delve into the execution of this plan and the outcomes achieved at each stage
of the project.
6
CHAPTER 4 IMPLEMENTATION AND CODING
4.1 IMPLEMENTATION APPROACHES:
The realization of the Algorithm Visualizer project involved a strategic and
multifaceted implementation approach. Leveraging an object-oriented
programming paradigm, we structured the codebase to accommodate a
variety of algorithms and ensure extensibility. The project utilized widely
adopted web technologies, such as HTML, CSS, and JavaScript, to create an
accessible and platform-independent user interface. Visualization
components were carefully designed to provide clarity without sacrificing
detail, and we incorporated responsive design principles to optimize the
visualizer for various screen sizes. The real-time interactivity of the
visualizer was achieved through asynchronous programming techniques,
allowing users to control the pace of algorithm execution. A modular
architecture was adopted, facilitating the addition of new algorithms and
features in a seamless manner. Additionally, version control systems were
employed to streamline collaboration among team members, ensuring a
cohesive and efficient development process. In this section, we delve into the
specific technical aspects of the implementation, offering insights into the
decisions made to create a robust and user-friendly Algorithm Visualizer.
8
CHAPTER 5 SOFTWARE TESTING
5.1 TESTING APPROACH
The testing phase of the Algorithm Visualizer project was comprehensive,
ensuring the reliability and accuracy of algorithm implementations as well as
the overall functionality of the visualizer. We adopted a multi-faceted testing
approach that encompassed unit testing, integration testing, and user
acceptance testing.
9
• Performance Optimization:
Performance testing identified areas for optimization, particularly when
10
CHAPTER 6 RESULT AND DISCUSSION
6.1 RUNNING PROJECT SCREENSHOT
In the above figure Insertion Sort is being performed, here we can increase
or decrease the number of books and the speed in which the sorting is being
performed as per the convenience of the user. There are many other sorting
11
algorithms available that user can implement.
In the above figure, DFS is being performed. In path finding algorithms user
can add starting point, goal and obstacles. The user can also change the speed.
The other path finding algorithms that are included in the application are
Breadth First Search and Dijkstra.
12
CHAPTER 7 CONCLUSION & LIMITATION
7.1 CONCLUSION
Relationship between concepts and their theory can be more easily and
quickly understood by students using diagrams and visualization rather than
in textual form. Lecturers can use more of visual tools such as this project to
teach students by providing them with visual stimuli helping them grasp the
concept just by watching the how the process takes place. The result
presented here doesn’t indicate that it outperforms black board learning but
shows a different way of engaging students to learn not just by reading and
writing but also by engaging them visually. This project mainly shows the
visual representation of sorting algorithms but other topics on data structures
such as trees, queues, linked lists, graphs etc. can be shown and taught
visually for better understanding the topic.
• Simplified Representations:
- The visualizations, although informative, provide simplified representations
of algorithmic processes. This simplicity may not fully capture the intricacies
of certain algorithms, potentially leading to a less nuanced understanding for
advanced users.
• Performance Considerations:
- The real-time visualization of complex algorithms may pose performance
challenges, especially for users with lower-end hardware or slower internet
connections.
Optimizing the tool's performance could improve the overall user experience.
• Browser Compatibility:
- Compatibility issues may arise across various web browsers,
impacting the consistency of the user experience. Thorough testing
and optimization for different browsers could address this
limitation.
13
• Limited Interactivity in Huffman Encoding:
- The Huffman Encoding visualizer offers step-by-step representations, but
the interactivity is limited compared to the sorting and pathfinding
visualizations. Enhancing user engagement in the Huffman Encoding
section could improve theoverall balance of the project.
• Educational Depth:
- The educational resources, such as tooltips and explanations, may not cater to
advanced users seeking in-depth theoretical insights. Expanding educational
materials to cater to a broader audience with varying levels of expertise could
enhance the project's educational value.
• Mobile Responsiveness:
- The project's user interface may not be fully optimized for smaller
screens, potentially limiting the experience for users on mobile
devices. Implementing better mobile responsiveness could broaden the
accessibility of the tool.
14
FUTURE SCOPE
The Algorithm Visualizer project exhibits promising potential for future
expansion and refinement. To further enrich its capabilities, the project can
explore a range of avenues. This includes broadening the library of supported
algorithms to encompass diverse data structures and optimization techniques,
ensuring a comprehensive resource for algorithmic exploration. Interactive
learning modules and collaborative features can be introduced to enhance the
educational experience, providing step-by-step tutorials and real-time
collaborative problem-solving opportunities. Integrating performance
metrics and analytics would empower users to make informed algorithmic
choices, while gamification elements such as achievements and challenges
could amplify user engagement. Mobile compatibility, community
contributions, and partnerships with educational platforms offer avenues for
accessibility, collaboration, and integration into formal curricula.
Implementing internationalization features and investigating augmented
reality integration for immersive learning experiences are additional
considerations. Embracing a user-centric approach, continuous feedback
collection, and iterative development will be instrumental in adapting the
Algorithm Visualizer to evolving educational needs and technological
advancements. Overall, the future scope envisions a more inclusive, feature-
rich, and globally impactful algorithmic learning tool.
15
REFERENCES
[1] E-learning Tool for Visualization of Shortest Paths Algorithms” by
Daniela Borissova and IvanMustakerov, ResearchGate, July 2020.
[5] “Finding the shortest path in a graph and its visualization using C# and
WPF” by RadoslavMavrevski, Metodi Traykov, Ivan Trenchev, International
Journal of Computers, ISSN: 23678895, Volume 5, 2020.
16
INDIVIDUAL REPORT
Nishant Bharti (07418002720) - Sorting Algorithms
17
toward providing users with an engaging experience while exploring file
compression techniques and navigating the project's main website.
18
GLOSSARY BIBLIOGRAPHY
Glossary
1. Sorting Algorithms:
A set of algorithms that arrange elements in a specified order. Sorting
algorithms that include Bubble Sort, Selection Sort, Insertion Sort, and Quick
Sort.
2. Pathfinding Algorithms:
Algorithms that examine the shortest path the between two points in a graph.
Examples include Depth First Search Algorithm (DFS), Breadth First Search
Algorithm (BFS), and Dijkstra's algorithm.
3. Huffman Encoding:
An algorithm for compressing data and reduces the total amount of the data
by assigning variable-length values to input characters, including smaller
codes for characters that appear frequently.
4. Virtual Library Model:
A simulated environment representing the sorting process, often used for
educational purposes to visualize the execution of sorting algorithms.
5. Drawable Maze Canvas:
An interactive canvas where users can draw mazes for pathfinding
algorithms, setting the stage for algorithmic exploration.
6. User-Driven Controls:
Interface elements that allow users to interact with and customize the
visualization, such as dropdown menu, sliders, and input fields.
7. Real-Time Interaction:
Immediate responsiveness of the system to user inputs, ensuring a smooth
and interactive user experience.
19
Bibliography
20
RESEARCH PAPER
*1,2,3,4Student,
*5Assistant Professor,
Department Of Computer Engineering, Computer Science & Engineering,
Delhi Technical Campus,
Greater Noida, UP, India.
ABSTRACT
Algorithm visualization can help improve computer science education. The process of instructing and acquiring
algorithms is frequently complicated, making the issue difficult to comprehend. In any engineering course, visualisation
is a useful learning tool. This report describes e-learning tools, ranking algorithms, and Huffman coding for Pathfinder.
For example, during sorting, the animation tool will represent data as cards, and users will run automatic animations or
step through animations at their personal pace while choosing the data sorting and algorithm.
In the search, move the beginning and end of the end or user can choose what is the beginning or end. The e-learning
design tool allows visualization of the execution of the policy steps of the algorithm. It can be utilised as a stand-alone
programme or as an addition to in-person training.
In Huffman coding the text is compressed by the coding process which helps in compressing the size, here we see this
from a tree to explain how text is compressed in binary form.
Keywords: Algorithm Visualization, Pathfinder, Sorting Algorithms, Huffman Encoding.
I. INTRODUCTION
Algorithm visualization tools (also known as algorithm animations) use dynamic graphics to visualize the calculations of
an algorithm program. Beginning in the middle of the 1980s, algorithms were first tested for robustness (Brown, 1988;
Brown and Sedgewick, 1985); also, the heyday of algorithmic visualisation occurred throughout the year 2000,
exceptional work on visualising dynamic algorithms began to appear, ushering in the golden age of algorithm
visualisation. (such the Java programming language and graphical libraries) and potent tools that are now on the market.
He thinks algorithm visualization will transform algorithm teaching. Many algorithmic animations have emerged to solve
simple problems, mostly simple data trees and analysis. Even attempts to develop algorithm visualisations and animation
programmes have been made. Making resources that make it simple for pupils to make their graphics is another approach.
Readers are referred to Algoviz, which has a list of more than 800 authors, compared to directly accessing algorithmic
animation knowledge.; Some even have 29 instructions on algorithmic animation and visualization. Additionally, a
plethora of websites offer algorithmic animation tools, including VisuAlgo, DD2, Algoanim, and Algomation.
We believe the principle is simple: an algorithmic service operates on some data (different input and output data). Good
architecture instruction generally uses a method of visualising information: trees are depicted as circles joined by lines,
numerals are viewed as a group of vertical lines, and drawings follow a pattern. Real numbers, matrices, vectors, etc.
Occasionally, algorithmic animation is achieved by modifying the data structure on the screen by gradually running an
algorithmic programme.
A novice can just observe things moving and trading forms and colours; yet, it might occasionally be challenging for him
in figuring out why the animation continues or he has excessive animations. Algorithm experts can notice how
algorithmic programmes are continually developing. problems. . Observing the algorithm's actions and the reasons behind
their behaviour is the method we propose. Put differently, our objective is to understand the computational method's
underlying abstract algorithmic concepts.
The aim of this research is to design a visual system, operate the system, and determine how long each algorithm takes to
execute.
II. LITERATURE SURVEY
Motivation
The purpose behind this exercise is to examine how the operations function. As a result, students may use animation to
analyse various algorithms. To have a thorough understanding of various record systems and their functions. It will
make mastering record systems more fascinating. The primary goal of the task is to develop a device for multiple sorting
set of rules, path finding, Huffman En-coding - for researching and visualising the best and worst case for each applied
algorithmic rule.
Relevance Of Work
To create software that works, a software developer has to have a solid grasp of DSA. Visualizers have continuously
provided users with useful information. Over time, several different algorithm visualizers have been created.
• The 2008 study "AlCoLab: Architecture of Algorithm Visualisation System" discusses the design of script-
supported algorithm visualising systems for use in education, emphasising the advantages and assistance that
these systems offer for teaching concept subjects like algorithms.[1]
• Athabasca University is now working on developing an efficient algorithm visualisation tool for online
learning, as per the study outlined in the 2019 article "Towards Developing an Effective Algorithm
Visualisation Tool for Online Learning."[2]
• The 2019 article "Open Interactive Algorithm Visualisation" describes the ongoing efforts to create an open
interactive algorithm visualisation website.[3]
• "AlgoAssist: Algorithm Visualizer and Coding Platform for Remote Classroom Learning," published in 2021,
focuses mostly on "algorithm visualisation," which facilitates understanding of algorithm operation. It is
enabled to integrate the lab into a single application for pre-assessment, coding, visualisation, algorithm
elucidation, and post-assessment.[4]
• The article "Algorithm visualizer" from 2021 aims to improve and simplify our understanding of how
algorithms function. In the paper, we address how algorithm visualisations may improve on the traditional
methods of teaching algorithms.[5]
• "A Meta-Study of the Effectiveness of Algorithm Visualisation" The technology known as algorithm
visualisation (AV) uses graphics to explain how algorithms operate. The technique is intuitively appealing, but
conventional computer science education has not adopted it. [6]
• "Visualising algorithms in programming education" The idea of algorithm visualisation is introduced in this
article, along with the educational outcomes that have been attained so far. An example of an algorithm
visualisation tool will then be provided, which we will ultimately assess. [7]
II. PROPOSED SY
A. System Architecture
The suggested device involves simulating unique types of algorithm codes. As you can see, the three coding languages are
the only significant elements. Most websites include components or scripts that need a server, but since React JS operates
directly in the user's browser, it is not required in this instance.
Figure 1: System Architecture 1.
The UI is made with CSS and HTML5. To initiate the precise algorithms and change the interface, which is displayed
with a single, bidirectional arrow, HTML5 communicates with the JS code and vice versa. When JS transitioned from a
functional programming recognition to an additional item-oriented recognition, the HTML5 components that alternated
were those that were necessary for each button. In the animation, every back-give-up interaction is abstracted to the
different buttons for selecting algorithms and taking strolls.
Data flow diagrams describe how data moves through our system. DFD0 displays the base DFD, with a circle
representing a process and a rectangle representing an external entity (a system outside our system that provides or
receives data) that modifies the data to produce an output.Input is shown by arrows pointing towards the process, while
output is shown by arrows pointing away from it.
• DFD LEVEL-1
DFD1 is the further bifurcation of DFD0.
II. CONCLUSION
We We began our project by studying some of the popular rule visualisations that have been created over a number of
years. According to our research, algorithmic visualisation is widely regarded as a priceless auxiliary tool that is used in
conjunction with real training methods in the field of computer technology. By completing this task, we have
successfully fulfilled our purpose to distinguish students' performance and implant graph course locations with
visualisation. The concept and practical knowledge of algorithm awareness have a major gap, as is the situation with
most other educational domains. This is consistently true for Dijkstra set of rules and shortest routes algorithms in
particular. The project's primary goal is to use it to train research educators and college students in interpreting and
guiding the currently accepted graph algorithms. The machine's main goal is to provide instructors and students with a
low-cost educational environment that will aid in the learning process.
IV. REFERENCES
[1] https://www.researchgate.net/publication/221423715_AlCoLab_Architecture_of_Algorithm_Visualiza
tion_System - AlCoLab: Architecture of Algorithm Visualization System
[2] https://www.researchgate.net/publication/329481179_Towards_Developing_an_Effective_Algorithm_Visualiz
ation_Tool_for_Online_Learning - Towards Developing an Effective Algorithm Visualization Tool for Online
Learning
[3] https://ieeexplore.ieee.org/document/8861535 - Open Interactive Algorithm Visualization
[4] https://www.researchgate.net/publication/352848285_AlgoAssist_Algorithm_Visualizer_and_Coding_Platfor
m_for_Remote_Classroom_Learning - AlgoAssist
[5] https://www.ijraset.com/research-paper/shortest-path-finding-visualizer
[6] https://faculty.cc.gatech.edu/~john.stasko/papers/jvlc02.pdf
[7] https://academia.edu/16269848/Algorithm_visualization_in_programming_education
PLAG REPORT OF THESIS
25
PLAG REPORT OF RESEARCH PAPER
26