Numerical Methods for Wave Propagation