
Project Overview
Project Overview
For my bachelor thesis, I developed an interactive educational software that helps students understand dynamic programming concepts through visualization and interactive examples. The software bridges the gap between theoretical concepts and practical implementation.
Key Features
- Interactive Visualizations: Real-time visualization of recursion trees and memoization
- Step-by-Step Execution: Watch algorithms execute with detailed explanations
- Multiple Algorithms: Covers classic DP problems like Fibonacci, Knapsack, and LCS
- Performance Comparison: Compare recursive vs. DP solutions in real-time
Technical Architecture
The application uses a modern tech stack:
- Frontend: React with Redux for state management
- Desktop App: Tauri framework for native performance
- Visualization Engine: Custom rendering engine built with TypeScript
- Algorithm Implementation: Rust for high-performance computation
- Styling: TailwindCSS for responsive design
Educational Impact
- Visual Learning: Complex concepts made accessible through visualization
- Active Learning: Students can modify parameters and see immediate results
- Self-Paced: Learn at your own speed with built-in examples
- Comprehensive: Covers both top-down and bottom-up approaches
Development Highlights
- Implemented custom visualization algorithms for tree structures
- Created an intuitive UI/UX specifically for educational purposes
- Optimized performance to handle large problem instances
- Extensive testing with actual computer science students
Tech Stack
Rust
TypeScript
Tauri
React
Redux
TailwindCSS
GitHub Actions
Vite
Security Features
Sandboxed Execution
User code runs in isolated environment for safety
Input Validation
Comprehensive validation to prevent malicious inputs
Memory Safety
Rust's memory safety guarantees prevent common vulnerabilities