Having previously seen a problem evolve from DFS-like recursive search to a memoized version to a bottom-up memoized version, we now:
Keep only a fraction of the (bottom-up) memoized table — that's Dynamic Programming!
We do this first in the context of our (continued) coin/change-making problem, and then the same process in the context of chaining matrix-multiplications.