PROJECT_LOADED

Bachelor thesis: educational software for dynamic programming

This educational software enriches understanding of dynamic programming with interactive tools. It visualizes recursion tree structures and bottom-up solutions for clearer comprehension.

Created
Read Time
2 min
Type
Educational Software
Bachelor thesis: educational software for dynamic programming - Image 1

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