Inspiration
Data Structures is the gateway to the CS major and key to tech interviews for internships and jobs. Students experience tremendous difficulty understanding data structures, especially how they are different from each other, and their functions. Hence, we want to create an educational tool that visualizes the process to make it more intuitive and straightforward to comprehend.
What it does
This is a tool designed for CS teachers to introduce data structures, simulate their functions, and compare time complexity in class. Students can also use it to play with data structures at home to improve their understanding.
How we built it
Ha built the skeleton of the whole program and architecture to put the panels for different data structures into one GUI, using Java Swing. Ha built necessary classes for Graph, and helped Sarah on building them for Array. Sarah later went on to fully implement the data-structure specific canvas & panel class sets for Array and ArrayList, and even put some animation in the mix. Rumor has it that Sarah dreams of adding TreeCanvas.java and TreePanel.java to the mix ...
Challenges we ran into
- Both of us were quite rusty with JComponent and had to learn on the go many things about graphics in Java.
- Ha had to design a way to organize the data structures into one GUI that can easily switch between them.
- Sarah had to implement many different activity listeners, some of which involved animation using Timer and TimerTask.
Accomplishments that we're proud of
- We were able to finish a working demo that can be shown in the presentation. Yay!
- Despite our different coding backgrounds and styles, we were able to combine both of our perspectives into a coherent Java applet.
- This will give us a springboard to continue to improve a fully functioning and helpful tool for CS students, which we are very passionate about.
What we learned
- Java & Swing may be tricky at times but it's worthwhile to learn!
- Sarah learned about Timer, TimerTask, and Runnables this hackathon.
- We learned more about teamwork, got to know each other more as friends and coders, and realized communication would help solve the problems.
What's next for our visualizer
- Although we will demo the tool in Java, this can definitely be implemented for web app. Also, Sarah has more than an idea of how to adapt this prototype for Android.
- Additionally, Sarah and Ha want to implement more class sets for data structures like HashSets, Binary Trees, and HashMaps, etc.
Log in or sign up for Devpost to join the conversation.