The Challenges of Dynamic Programming