Skip to content

sathwick-p/Explorable-Augmented-Reality-Application-for-Data-Structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

Introduction

  1. The data structure course is the most essential and critical course for computing-related majors because it is one of the fundamental courses that needs to be taken by students.
  2. However, learning data structures and understanding the performance effects of distinct data structures on the same problem can be challenging. Mostly, students change their majors if they are not successful in this course in their first attempt.
  3. Our approach combines real-world environment with virtualization by using Augmented Reality (AR), and then we observe the effects of AR by comparing AR-based visualization approach with the pure lecturing and lecturing with animations.
  4. AR is defined in as “3D virtual objects are integrated into a 3D real environment in real-time”. The objective is to develop AR visualization contents for data structures and analyse the effects of AR-based visualization and animation techniques for teaching data structures course
  5. I've developed an AR application that visualizes some operations of data structures such as Array list, Linked list, and Stack. In order to develop an AR application, we have followed AR requirements such as integration of virtual objects or environment into the real environment; and real-time interactivity of the virtual and real objects at the same time

User Interface

image

Shows the main menu of the developed AR application. The main menu and sub-menus are kept as simple as possible to decrease user interface complexity. Users can select one of the data structures from the main menu to experience the concepts


Linked List

image

image

Represents the dragging of chain links next to each other for appending and the C code for addition/appending of linked list is being shown in a scroll view at the right side of the screen

image

Shows the addition of chain link between the 2 other chain links, the chain links shift one position right clearing up a position for the chain link to be added in between

A similar operation can be performed for removal of the linked list too


Stack

image

image

The stack module is being simulated using a shoe rack with shoes inside. On the press of add button the shoes are being added to the rack one by one from bottom to the top.

image

The stack module is simulating the operation of removing objects from the stack, the shoes are removed one by one from the top to the bottom in the form of “Last in First out".


Queue

image

shows the 3d model of the rack which is representing the Queue data structure, the C code for getting the front of the queue is shown in a scroll view at the right side of the screen

image

shows the enqueue operation where shoes are being added to the rack from right to left, a pointer/arrow points at the most recently added node. The C code for enqueue operation is shown at the right side of the screen

image

shows the dequeue operation where shoes are being removed from the right side/front of the queue, when shoe is removed the rest of the shoes in the queue shift one position forward to occupy the empty spaces in the queue following the “First in First out” pattern.


Future Works

There is much improvement that can be made in the future in terms of development and experiments. This section will detail some of the ideas that have been considered for features that future groups can develop.

Expanded Object Addition

The ability to choose from a wider array of objects to add to a data structure would improve the user experience. For example, being able to add objects like bread, tomato, lettuce, cheese, etc. to a data structure can be more attractive because students can “make a sandwich” type things with their list. This would work exceptionally well with the Stack data structure. This would be a simple way to improve user engagement with the application. Adding basic shapes to a data structure is interesting, but adding some more realistic objects to the program would be an exciting feature. This would require some work with the user interface as well as in the Unity Asset Store to find these objects.

Expanded Data Structure Selection

The current application supports Linked List, Array List, and Stack. There are many other types of data structures that students need to learn. Adding some other data structures like AVL Tree, Heap, Queue, and HashMap would benefit students. Currently, we are working on adding Binary Search Tree and Queue.

Improved AR Stability and Recognition

Improved AR Stability and Recognition As it stands, the application requires the use of a “target image” to function. We chose the Marshall University Logo as our target image. This is partly a limitation of the Vuforia framework. Along with the elimination of the target image requirement, improved stability for the objects in the AR environment will increase the usability of the application

About

Intern, Centre for Information Security, Forensics and Cyber Resilience

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published