This book offers an ideal introduction to the theory of partial differential equations. It focuses on elliptic equations and systematically develops the relevant existence schemes, always with a view towards nonlinear problems. It also develops the main methods for obtaining estimates for solutions of elliptic equations: Sobolev space theory, weak and strong solutions, Schauder estimates, and Moser iteration. It also explores connections between elliptic, parabolic, and hyperbolic equations as well as the connection with Brownian motion and semigroups. This second edition features a new chapter on reaction-diffusion equations and systems.