DFS Visualizer

I designed the interaction flow, created low-fidelity storyboards and task flows, and implemented the final interactive visualizer and game mode to support step-by-step learning and practice.

Jun 21, 2025

DFS Visualizer

I designed the interaction flow, created low-fidelity storyboards and task flows, and implemented the final interactive visualizer and game mode to support step-by-step learning and practice.

Jun 21, 2025

DFS Visualizer

I designed the interaction flow, created low-fidelity storyboards and task flows, and implemented the final interactive visualizer and game mode to support step-by-step learning and practice.

Jun 21, 2025

Role

UX Designer, Backend Coder

Service

Educational Tool

Role

UX Designer, Backend Coder

Service

Educational Tool

Role

UX Designer, Backend Coder

Service

Educational Tool

Problem & Context

Problem & Context

Problem & Context

Depth-First Search is often difficult for students to grasp because it is typically taught using static diagrams and abstract explanations. These approaches make it hard to understand how the algorithm moves through a graph, when backtracking happens, and why certain nodes are visited in a specific order. The goal of this project was to transform DFS into an interactive learning experience that allows users to see and control the algorithm as it runs, reducing confusion and increasing confidence.

Target Users
  • Undergraduate computer science students

  • Learners new to graph algorithms

  • Students who learn better through visualization and interaction rather than static text

My Role & Duration

My Role & Duration

My Role & Duration

I worked as the UX designer and backend developer on this project. I was responsible for defining the learning goals, designing the interface and interaction flow, creating early sketches and diagrams, and implementing the final interactive tool. The project was completed over an academic term in a group of 3 people.

Why This Was Hard

Why This Was Hard

Why This Was Hard

Designing an educational tool required balancing technical accuracy with usability. DFS involves recursion and backtracking, which can happen quickly and feel unintuitive if presented all at once. A major challenge was deciding how much control to give the user without overwhelming them. I needed to slow the algorithm down, clearly communicate state changes, and ensure users always understood what was happening and why.

Process & Design Decisions

Process & Design Decisions

Process & Design Decisions

Storyboarding

Before writing any code, I created a storyboard to explore how users would move through the interface. This helped define the layout, core controls, and progression from explanation to interaction. The storyboard focused on reducing cognitive load by keeping the interface simple and guiding users step by step.

Task Flow

I designed a task flow that mirrors how students naturally learn:

  1. Open the visualizer

  2. Read a short introduction to DFS

  3. Start the algorithm

  4. Step through traversal at their own pace

  5. Switch to game mode to practice predicting the next node

This flow ensured users could both observe and apply what they learned.

Key Design Choices
  • Step-by-step control instead of autoplay to let users control pacing

  • Visual highlights for visited nodes to reinforce traversal order

  • Game mode to encourage active learning rather than passive watching

  • Simple layout to keep attention on the graph, not the interface

Findings

Findings

Findings

Through designing and building the visualizer, I found that users understand DFS more quickly when they can interact with the algorithm directly rather than watching a continuous animation. Giving users control over each step helped them notice patterns like backtracking and recursion. The game mode reinforced learning by encouraging prediction and immediate feedback, which made the experience feel more engaging and less intimidating. Small UI decisions, such as clearly separating explanation, visualization, and interaction, had a large impact on clarity and user confidence.

What I Learned and the Impact

What I Learned and the Impact

What I Learned and the Impact

This project taught me how to design for learning, not just functionality. I learned how important pacing, visual feedback, and interaction design are when explaining complex technical concepts. It also strengthened my ability to translate abstract ideas into intuitive interfaces and reinforced the value of sketching and task flows before implementation.

The DFS Visualizer turns an abstract algorithm into a hands-on learning experience that reduces confusion and supports different learning styles. It demonstrates how thoughtful UX design can make technical concepts more accessible, especially for students encountering them for the first time. This project reflects my interest in designing educational and interactive systems that prioritize clarity, inclusivity, and user understanding.

Some Next Steps: Add keyboard controls, adjustable speed, and a BFS comparison mode to support deeper learning.

Project Links

Project Links

Project Links