This new edition is intended for a one semester course in optics for juniors and seniors in science and engineering. It uses scripts from Maple, MathCad, Mathematica, and MATLAB to provide a simulated laboratory where students can learn by exploration and discovery instead of passive absorption. The text covers all the standard topics of a traditional optics course. It contains step by step derivations of all basic formulas in geometrical, wave and Fourier optics. The threefold arrangement of text, applications, and files makes the book suitable for "self-learning" by scientists or engineers who would like to refresh their knowledge of optics.