With significant advantages in terms of speed, bandwidth, and energy economy, optical computing has emerged as a possible substitute for conventional electrical computing. The concepts of light manipulation, the components utilized in optical computing systems, and several computational models are all covered in this chapter's exploration of the foundations of optical computing. Optics have been used in computing for a long time, however, the main emphasis has been and continues to be on linking computer components, for communications, or more fundamentally in systems that include some optical function or feature (optical pattern recognition, etc.). Although optical digital computers are still in their infancy, this paper discusses a number of earlier developments that could someday result in true optical computers, including optical logic gates, optical switches, neural networks, and spatial light modulators. More complex photonic devices and systems can be precisely simulated and built using high-performance off-the-shelf computers.