The course covers a selected set of topics on dynamic macroeconomics. First, we extend the notions and the key results of dynamic programming to the case of uncertainty. Second, we review some topics of time series analysis that are particularly useful for applied macroeconomic research. Third, we study numerical methods for solving dynamic models including linearization and perturbation methods, value function iteration and Euler equation methods. Finally, we review several research topics of the recent macroeconomics optimal monetary and fiscal policy choice. The problem sets include both theoretical and computer exercises. The programming languages are MATLAB and DYNARE.