This document discusses dynamic programming and its application to sequential decision making problems. It begins by introducing dynamic programming and its basic approach of breaking problems down into smaller subproblems. The objectives are then stated as discussing sequential optimization, representing multistage decision processes, and describing sub-optimization and the principle of optimality. Sequential optimization is explained as dividing a problem into single variable subproblems that are solved successively. Multistage decision processes are represented through transformation and benefit functions at each stage. The document also covers types of multistage problems, the concept of sub-optimization through logically breaking systems into parts, and Bellman's principle of optimality.