This work is an updated version of a book evolved from courses offered on partial differential equations (PDEs) over the last several years at the Politecnico di Milano. These courses had a twofold purpose: on the one hand, to teach students to appreciate the interplay between theory and modeling in problems arising in the applied sciences, and on the other to provide them with a solid theoretical background for numerical methods, such as finite...