The basic of the BPM technique in the frequency domain relies on treating the slowly varying envelope of the monochromatic electromagnetic field under paraxial propagation, thus allowing efficient numerical computation in terms of speed and allocated memory. In addition, the BPM based on finite differences is an easy way to implement robust and efficient computer codes. This book presents several approaches for treating the light: wide-angle, scalar approach, semivectorial treatment, and full vectorial treatment of the electromagnetic fields. Also, special topics in BPM cover the simulation of light propagation in anisotropic media, non-linear materials, electro-optic materials, and media with gain/losses, and describe how BPM can deal with strong index discontinuities or waveguide gratings, by introducing the bidirectional-BPM. BPM in the time domain is also described, and the book includes the powerful technique of finite difference time domain method, which fills the gap when the standard BPM is no longer applicable. Once the description of these numerical techniques have been detailed, the last chapter includes examples of passive, active and functional integrated photonic devices, such as waveguide reflectors, demultiplexers, polarization converters, electro-optic modulators, lasers or frequency converters. The book will help readers to understand several BPM approaches, to build their own codes, or to properly use the existing commercial software based on these numerical techniques.