Macroeconomics (PhD core), 2019

This is an advanced course in macroeconomic theory intended for first-year PhD students.

The first part covers dynamic programming theory and applications in both deterministic and stochastic environments and develops tools for solving such models on a computer using Matlab (or your preferred language). The second part covers various extensions and further applications, including consumption-savings problems, job search, asset pricing, and models with heterogeneous households and firms.


Lecture 1 Introduction and course overview. Intertemporal choice in discrete time.
Lecture 2 Review of neoclassical growth model in discrete time.

Dynamic programming methods
Lecture 3 Introduction to deterministic dynamic programming.
Lecture 4 Mathematical background for dynamic programming. Contraction mappings etc.
Lecture 5 Principal of optimality. Properties of the value function.
Lecture 6 Introduction to numerical dynamic programming. Discrete state approximation.
Lecture 7 Collocation methods for solving dynamic programming problems.
Lecture 8 Introduction to stochastic dynamic programming. Markov chains, etc.
Lecture 9 Solving stochastic dynamic programming problems.

Dynamic programming applications
Lecture 10 Consumption-based asset pricing. Contingent claims.
Lecture 11 Job search and matching. Applications to labor markets.
Lecture 12 Consumption-savings problems. Precautionary savings.

Complete markets general equilibrium
Lecture 13 Arrow-Debreu equilibrium. Pareto problems. Implications for risk sharing.
Lecture 14 Radner equilibrium. Additional implications when state is Markov.

Tutorial 1, solutions
Tutorial 2, solutions
Tutorial 3, solutions
Tutorial 4, solutions
Tutorial 5, solutions
Tutorial 6, solutions

Problem sets
Problem set 1, solutions, code
Problem set 2, solutions, code
Problem set 3

Scraps of code
Optimal growth model (value function iteration)
Optimal growth model (collocation)
Stochastic growth model (collocation)