Questions about anything?
I've caught up with the grading, so check out my comments on your projects. If you're missing assignments, I encourage you to try to fill in the missing pieces - late work does count for some credit.
Common problems I'm seeing in your final project drafts:
Today we'll look at one last classic problem, making change, using (a) brute force, (b) greedy goal seeking, and (c) dynamic programming.
The (badly named) "dynamic programming" approach is a generalization of
"memoization" which is basically the trick of (a) breaking the problem
into smaller sub-problems, and (b) storing the answers to those subproblems
so that you don't recalculate them. One example: Finding Fibonnici number
fib(n) = fib(n-1) + fib(n-2)
using that (recursive) formula,
but storing values in a dictionary rather than recalculating them.
Explanations :
What have we covered this term?