359 pages | 32 Color Illus. | 164 B/W Illus.
This book introduces optics through the use of simulations, namely, Python. Students, researchers, and engineers will be able to use Python simulations to better understand the basic concepts of optics and professors will be able to provide immediate visualizations of the complex ideas. Readers will learn programming in Python. Throughout this book, a simulated laboratory will be provided where students can learn by "hands on" exploration. The text will cover most of the standard topics of traditional optics.
"Understanding Optics with Python by Vasudevan Lakshminarayanan, Hassen Ghalila, Ahmed Ammar and Srinivasa Varadharajan is born around a nice idea: using simulations to provide the students with a powerful tool to understand and master optical phenomena. The choice of the python language is perfectly matched with the overall goal of the book, as the python language provides a completely free and easy to learn platform with huge cross platform compatibility, where the reader of the book can conduct his own numerical experiments to learn faster and better."
— Costantino De Angelis, University of Brescia, Italy
"Teaching an important programming language like Python through concrete examples from optics is a natural and, in my view, very effective approach. I believe that this book will be used by students and appreciated greatly by instructors. The topic of modelling optical effects and systems where the students should already have a physical background provides great motivation for students to learn the basics of a powerful programming language without the intimidation factor that often goes with a formal computer science course."
— John Dudley, FEMTO-ST Institute, Besançon, France
"This book is unusual in that it serves two purposes: teaching the students to program using a simple, open-access programing environment, and learning optics along the way. The list of topics in optics covered by the book is quite broad. The first part of the book focuses more on the Python side, introducing methodically and clearly the different aspects of programming in this language. However, even from some of the early examples, basic concepts and functions in optics start to be used. This way, the student practices her/his programming skills but at the same time gets familiar with the mathematical tools that will be useful when the book transitions into optics. This book would be very well fit for an advanced undergraduate course or even a first year graduate course."
—Miguel Alonso,University of Rochester, New York, USA
Introduction to Python. GUI Programming with Python and Qt. Electromagnetic Waves. Radiometry and Photometry. Fermat’s Principle, Reflection, and Refraction. Lenses and Mirrors. Thick Lenses and Lens Systems. Polarization. Interference. Coherence. Diffraction. Fresnel Integrals.