This repository documents my personal learning journey through algorithmic problem-solving in Python, focusing on Backtracking and Dynamic Programming.
Each notebook is a reflection of exploration, reasoning, and progressive learning of core algorithmic thinking.
As a faculty member transitioning from Mechanical Engineering to AI & Data Science, I began this journey to strengthen my problem-solving mindset and teaching foundation.
These notebooks are both a record of my own learning and open resources for students and educators exploring Python algorithms.
| Folder | Description |
|---|---|
Backtracking/ |
Recursive and decision-tree-based problems (N-Queens, Rat in Maze, Word Search). |
DynamicProgramming/ |
Problems solved using optimal substructure and overlapping subproblems (Jump Game II, Climbing Stairs, etc.). |
-
Backtracking
- Recursive exploration and state cleanup
- Pruning decisions to avoid redundant paths
- Applications: Maze solving, N-Queens, Word Search
-
Dynamic Programming (DP)
- Transition from recursion to memoization to tabulation
- Identifying optimal substructure
- Greedy vs DP intuition building
“Understanding why a state transition works is more important than writing the transition.”
This repository represents a gradual shift from trial and error to structured thinking — mirroring how I guide students to build algorithmic intuition rather than memorizing patterns.
- Extend this series to Greedy Algorithms
- Build a visual guide for each DP pattern
- Connect algorithmic concepts to Machine Learning optimization (Phase 2)
This project is licensed under the MIT License — feel free to reuse with attribution.
Ruthuraraj R.
Faculty, Mechanical Engineering — exploring the intersection of AI, Algorithms, and Education.