Computation in science : from concepts to practice In the course of only a few decades computers have revolutionized scientific research and more and more scientists are writing computer programs for doing their work. In spite of the ubiquitous use of computers in science few researchers in the natural sciences have any schooling in computer science software engineering or numerical analysis. They usually acquire their computing knowledge on the job and often feel overwhelmed by the amount of computing knowledge they must absorb. Computation in Science provides a background in computation for scientists who use computational methods. The book explains how computing is used in the natural sciences and provides a high level overview of relevant aspects of computer science and software engineering with a focus on concepts results and applications. The goal of this book is to explain these basic principles and to show how they relate to the tasks of a scientists daily work in a language familiar to them. Its unique feature is in connecting the dots between computational science the theory of computation and information and software engineering. It will compensate for the general lack of any formal training in computer science and information theory allowing readers to better understand how they use computers in their work and how computers work. Readers will learn to use computers with more confidence and to see computing technologies in a different light evaluating them based on how they contribute to doing science. This new edition has been significantly updated and extended to reflect developments in scientific computing including new examples and references. It also includes a new chapter on reproducibility which reflects the importance that computational reproducibility plays. Accompanied by a website maintained by the author which hosts companion code and supplementary material it is intended for both graduate students and experienced scientists. Some hands on experience with computing is highly desirable but no competence in any specific computing technology is expected.