Computer simulation has become a basic tool in many branches of physics such as statistical physics, particle physics, or materials science. The application of efficient algorithms is at least as important as good hardware in large-scale computation. This volume contains didactic lectures on such techniques based on physical insight. The emphasis is on Monte Carlo methods (introduction, cluster algorithms, reweighting and multihistogram techniques, umbrella sampling), efficient data analysis and optimization methods, but aspects of supercomputing, the solution of stochastic differential equations, and molecular dynamics are also discussed. The book addresses graduate students and researchers in theoretical and computational physics.