This exploration of Dynamic Programming was created in Spring, 2015 by Awjin Ahn and Jonah Schwartz as the final project for CS41: Algorithms.
Our research was guided by the following topics:
- how dynamic programming works, at a surface and deeper level
- memoization vs. tabulation
- pros/cons of different implementations
- example algorithms
Our goal was to make a deep understanding of dynamic programming accessible to learners at any level, by creating the following:
- neatly-designed visualizations (using D3 graphics library) of how dynamic programming algorithms traverse search spaces and save data
- articles explaining the algorithms and their visualizations
Source code can be found here.