Optics is an enabling science that forms a basis for our technological civilization. Courses in optics are a required part of the engineering or physics undergraduate curriculum in many universities worldwide. The aim of Understanding Optics with Python is twofold: first, to describe certain basic ideas of classical physical and geometric optics; second, to introduce the reader to computer simulations of physical phenomena. The text is aimed more broadly for those who wish to use numerical/computational modeling as an educational tool that promotes interactive teaching (and learning). In addition, it offers an alternative to developing countries where the necessary equipment to carry out the appropriate experiments is not available as a result of financial constraints. This approach contributes to a better diffusion of knowledge about optics. The examples given in this book are comparable to those found in standard textbooks on optics and are suitable for self-study. This text enables the user to study and understand optics using hands-on simulations with Python. Python is our programming language of choice because of its open-source availability, extensive functionality, and an enormous online support. Essentials of programming in Python 3.x, including graphical user interface, are also provided. The codes in the book are available for download on the book’s website.
Discusses most standard topics of traditional physical and geometrical optics through Python and PyQt5
Provides visualizations and in-depth descriptions of Python’s programming language and simulations
Includes simulated laboratories where students are provided a "hands-on" exploration of Python software
Coding and programming featured within the text are available for download on the book’s corresponding website.
"Understanding Optics with Python by Vasudevan Lakshminarayanan, Hassen Ghalila, Ahmed Ammar, and L. 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 or her 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