Introducing the core concepts of Dynamic Programming: overlapping subproblems and optimal substructure, through classic problems.
Using Fibonacci to illustrate memoization and tabulation, and solving the classic 0/1 Knapsack problem.
Solving the Longest Increasing Subsequence and Coin Change problems using DP.