This book is a rigorous but concise macroscopic description of the interaction between electromagnetic radiation and structures containing graphene sheets (two-dimensional structures). It presents canonical problems with translational invariant geometries, in which the solution of the original vectorial problem can be reduced to the treatment of two scalar problems, corresponding to two basic polarization modes. The book includes computational problems and makes use of the Python programming language to make numerical calculations accessible to any science student. Many figures within are accompanied by Python scripts.