This highly recommended textbook provides an innovative approach to learning geometrical and physical optics. The book simultaneously solves two pedagogical requirements: how to code with Python and how to simulate optical phenomenon. A bibliography and an index are provided, and the book’s website contains all of the codes and programs. It is suitable for undergraduate and graduate students.

Each topic in geometrical and physical optics is concisely presented, both physically and mathematically, and is enhanced with large, well-designed diagrams. The authors introduce the language Python, which is free, easy to learn, works on various platforms, contains many modules, and is ideal for computer simulations, and teach the details of coding with Python and provide many examples. Python coding is developed to form interactive simulations for which the students can vary key parameters and observe the effects. While optics simulations can be used in the absence of laboratory experiments, their combination improves the learning and understanding of optics.

Review by Barry R. Masters, Fellow of AAAS, OSA and SPIE.

The opinions expressed in the book review section are those of the reviewer and do not necessarily reflect those of OPN or OSA.