This book is an introductory text to a range of numerical methods used today to simulate time-dependent processes in Earth science, physics, engineering, and many other fields. The physical problem of elastic wave propagation in 1D serves as a model system with which the various numericalmethods are introduced and compared. The theoretical background is presented with substantial graphical material supporting the concepts. The results can be reproduced with the supplementary electronic material provided as python codes embedded in Jupyter notebooks. The book starts with a primer onthe physics of elastic wave propagation, and a chapter on the fundamentals of parallel programming, computational grids, mesh generation, and hardware models. The core of the book is the presentation of numerical solutions of the wave equation with six different methods: 1) the finite-difference method2) the pseudospectral method (Fourier and Chebyshev)3) the linear finite-element method4) the spectral-element method5) the finite-volume method; and 6) the discontinuous Galerkin methodEach chapter contains comprehension questions, theoretical, and programming exercises. The book closes with a discussion of domains of application and criteria for the choice of a specific numerical method, and the presentation of current challenges.