This course presents standard analytical tools in the theory of contracts, in both moral hazard problems and in screening problems, and provides a range of applications. Topics in moral hazard problems include moral hazard in teams, information acquisition in groups, dynamic principal-agent problems, dynamic team competition, and renegotiation of risk-sharing. Topics in screening problems include nonlinear pricing, sequential screening, resource allocation with multiple agents, strategic information aggregation, renegotiation in dynamic screening.