Dynamic programming Dynamic programming is a technique to provide an efficient solution to a problem by avoiding recomputations FibonacciNumbers Recursion vs Recursion(Memoized) vs DP Largest sum subarray Max sum (non adjacent) Combinations for game scoring