This textbook presents basic and advanced computational physics in a very didactic style. It contains very-well-presented and simple mathematical descriptions of many of the most important algorithms used in computational physics. Many clear mathematical descriptions of important techniques in computational physics are given. The first part of the book discusses the basic numerical methods. A large number of exercises and computer experiments allows to study the properties of these methods. The second part concentrates on simulation of classical and quantum systems. It uses a rather general concept for the equation of motion which can be applied to ordinary and partial differential equations. Several classes of integration methods are discussed including not only the standard Euler and Runge Kutta method but also multistep methods and the class of Verlet methods which is introduced by studying the motion in Liouville space. Besides the classical methods, inverse interpolation is discussed, together with the popular combined methods by Dekker and Brent and a not so well known improvement by Chandrupatla. A general chapter on the numerical treatment of differential equations provides methods of finite differences, finite volumes, finite elements and boundary elements together with spectral methods and weighted residual based methods. A comparison of several methods for quantum systems is performed, containing pseudo-spectral methods, finite differences methods, rational approximation to the time evolution operator, second order differencing and split operator methods.

The book gives simple but non trivial examples from a broad range of physical topics trying to give the reader insight into the numerical treatment but also the simulated problems. Rotational motion is treated in much detail to describe the motion of rigid rotors which can be just a simple spinning top or a collection of molecules or planets. The behaviour of simple quantum systems is studied thoroughly. One focus is on a two level system in an external field. Solution of the Bloch equations allows the simulation of a quantum bit and to understand elementary principles from quantum optics. As an example of a thermodynamic system, the Lennard Jones liquid is simulated. The principles of molecular dynamics are shown with practical simulations. A second thermodynamic topic is the Ising model in one and two dimensions. The solution of the Poisson Boltzman equation is discussed in detail which is very important in Biophysics as well as in semiconductor physics. Besides the standard finite element methods, also modern boundary element methods are discussed. Waves and diffusion processes are simulated. Different methods are compared with regard to their stability and efficiency. Random walk models are studied with application to basic polymer physics. Nonlinear systems are discussed in detail with application to population dynamics and reaction diffusion systems. The exercises to the book are realized as computer experiments. A large number of Java applets is provided. It can be tried out by the reader even without programming skills. The interested reader can modify the programs with the help of the freely available and platform independent programming environment "netbeans".