The chapter introduces the dynamic programming (DP) algorithm, a key technique for solving optimal control problems. The DP algorithm is based on the principle of optimality, which states that an optimal policy can be constructed by solving a sequence of subproblems, each of which involves the optimal decision for the remaining stages of the problem. The chapter provides two examples to illustrate the application of the DP algorithm: a deterministic scheduling problem and an inventory control problem. In the deterministic scheduling problem, the goal is to schedule operations to minimize setup costs, while in the inventory control problem, the objective is to minimize the expected cost of ordering inventory over multiple periods. The DP algorithm is formulated as a recursive backward procedure, where the optimal cost for the current stage is calculated using the optimal costs of the subsequent stages. The chapter also discusses the computational aspects of the DP algorithm, including the need for discretization of the state space and the potential for numerical execution when analytical solutions are not feasible.The chapter introduces the dynamic programming (DP) algorithm, a key technique for solving optimal control problems. The DP algorithm is based on the principle of optimality, which states that an optimal policy can be constructed by solving a sequence of subproblems, each of which involves the optimal decision for the remaining stages of the problem. The chapter provides two examples to illustrate the application of the DP algorithm: a deterministic scheduling problem and an inventory control problem. In the deterministic scheduling problem, the goal is to schedule operations to minimize setup costs, while in the inventory control problem, the objective is to minimize the expected cost of ordering inventory over multiple periods. The DP algorithm is formulated as a recursive backward procedure, where the optimal cost for the current stage is calculated using the optimal costs of the subsequent stages. The chapter also discusses the computational aspects of the DP algorithm, including the need for discretization of the state space and the potential for numerical execution when analytical solutions are not feasible.