Computational methods are an integral part of most scientific disciplines, and a rudimentary understanding of their potential and limitations is essential for any scientist or engineer. This textbook introduces computational science through a set of methods and algorithms, with the aim of familiarizing the reader with the field’s theoretical foundations and providing the practical skills to use and develop computational methods. Centered around a set of fundamental algorithms presented in the form of pseudocode, this self-contained textbook extends the classical syllabus with new material, including high performance computing, adjoint methods, machine learning, randomized algorithms, and quantum computing. It presents theoretical material alongside several examples and exercises and provides Python implementations of many key algorithms. Methods in Computational Science is for advanced undergraduate and graduate-level students studying computer science and data science. It can also be used to support continuous learning for practicing mathematicians, data scientists, computer scientists, and engineers in the field of computational science. It is appropriate for courses in advanced numerical analysis, data science, numerical optimization, and approximation theory.