Decisions are often made sequentially and in environments where their outcomes are subject to stochastic variability. Dynamic Programming (DP) provides a powerful tool for obtaining structural insight about, as well computing prescriptions for, such decisions. The method finds wide application in operations management, marketing, economics, and finance among other fields. This course is intended to provide a rigorous introduction to the method with an emphasis on applications from these fields. When appropriate, finite or countable state Markovian settings will be used to obtain theoretical results with a minimum of technical fuss. Implementation and computational issues will be discussed.