Beginning with the development of finite difference equations, and leading to the complete FDTD algorithm, this is a coherent introduction to the FDTD method (the method of choice for modeling Maxwell's equations). It provides students and professional engineers with everything they need to know to begin writing FDTD simulations from scratch and to develop a thorough understanding of the inner workings of commercial FDTD software. Stability, numerical dispersion, sources and boundary conditions are all discussed in detail, as are dispersive and anisotropic materials. A comparative introduction of the finite volume and finite element methods is also provided. All concepts are introduced from first principles, so no prior modeling experience is required, and they are made easier to understand through numerous illustrative examples and the inclusion of both intuitive explanations and mathematical derivations.