KONCEPT

KONCEPT-Algorithm Visualizer offers an interactive platform to visually understand and experiment with various algorithms.

Inspiration


The main issue we faced in our early years of computer science education was not having an accurate understanding of basic concepts of DS algorithms . As a visual learner, it was harder to grasp these concepts just through lectures. Our goal was to overcome these limitations by developing a website called Koncept, which provides a visual depiction of complex algorithms, thereby bridging the gap between theory and practice, particularly for beginners.


Introduction


Koncept is a dynamic webpage designed to demonstrate and interactively visualize various sorting and searching algorithms. It provides users with a platform to observe the behavior of algorithms in real-time and understand their workings through interactive visualizations. Koncept serves as an educational tool for computer science students, developers, and anyone interested in understanding algorithmic concepts.


D3.js Structural Overview


1) Scale Creation:

       Linear Scale :

     *  Purpose : Used to scale the heights of bars in the chart based on data values.

     *  Usage : d3.scaleLinear()

     *  Domain : Defined from 0 to the maximum value in the  data  array.

     *  Range : Defined from 0 to  areaHeight .


2) Chart Creation:

   *  Purpose : To visualize the data in the form of a bar chart.

   *  Usage :  createChart(data)

   *  Description : This function initializes or updates the chart with the given data. It's assumed to utilize D3.js for rendering the chart.


3) Event Handling:

     *  Search Button : Triggers the start of the search operation based on the selected algorithm.

     * Random Data Button : Generates new random data and updates the chart.

 

4) Search Algorithms:

     -  Linear Search :

     *  Purpose : It is a simple search algorithm that sequentially checks each element in a list or array until the target element is found or the end of the list is reached

     

     - Binary Search :

     *  Purpose : Binary search efficiently finds a target value within a sorted array by repeatedly halving the search interval. It compares the target with the middle element and adjusts the search range accordingly until the target is found.


5) Sort Algorithms :

     - Bubble Sort :

     * Purpose : Bubble sort is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. It continues to do this until the list is sorted.


     - Selection Sort :

     * Purpose : Selection sort iterates through the array, selecting the smallest (or largest, depending on sorting order) element, and swapping it with the first unsorted element. This process continues until the entire array is sorted.


Usage


Select a searching or sorting algorithm from the dropdown menu.

Adjust the animation speed using the slider controls.

Click the "Search" or "Sort" button to see the algorithm in action.

Study visualization and observe how the algorithm works step by step.

Read the brief description provided to understand the pseudocode of the concept.

Repeat the process with different algorithms to compare their performance.


Future Scope


To further enhance its utility and educational value, we aim to expand the project in the following directions:


* Enable users to compare multiple sorting and searching algorithms simultaneously, providing insights into their relative efficiencies.

* Incorporate a wider range of sorting, searching, and other fundamental algorithms, such as merge sort, quicksort, depth-first search, and breadth-first search.

* Implement feature for user-provided input data for algorithms, allowing users to experiment with different scenarios and input sizes.


Contributors


Agnes Mary Allen

Devu S Thirumangal

Nidha Mohammed Sageer

Agnes Mary Allen
Devu S Thirumangal
Nidha Mohammed Sageer

Project created by Agnes Mary Allen

6 March 2024