The unifying purpose of this paper to introduces basic ideas and methods of dynamic programming. It sets out the basic elements of a recursive optimization problem, describes Bellmans Principle of Optimality, the Bellman equation, and presents three methods for solving the Bellman equation with example. Dynamic programming is a mathematical optimization method. It refers to simplifying a complicated problem by breaking it down into simpler subproblems in a recursive manner. While some decision problems cannot be taken apart this way, decisions that span several points in time do often break apart recursively Bellman called this the Principle of Optimality.