Book: Guide to Scientific Computing in C++ (Undergraduate Topics in Computer Science)
Many books have been written on the C++ programming language, varying across
a spectrum from the very practical to the very theoretical. This book certainly lies
at the practical end of this spectrum, and has a particular focus for the practical
treatment of this language: scientific computing.
Traditionally, Fortran and MATLAB®1 have been the languages of choice for
scientific computing applications. The recent development of complex mathematical
models—in fields as diverse as biology, finance, and materials science, to name
but a few—has driven a need for software packages that allow computational simulations
based on these models. The complexity of the underlying models, together
with the need to exchange code between coworkers, has motivated programmers to
develop object-oriented code (often written in C++) for these simulation packages.
The computational demands of these simulations may require software to be written
for parallel computing facilities, typically using the Message Passing Interface
(MPI). The need to train programmers in the skills to program applications such as
these led to the development of a graduate level course C++ for Scientific Computing,
taught by the authors of this book, at the University of Oxford.
This easy-to-read textbook/reference presents an essential guide to object-oriented C++ programming for scientific computing. With a practical focus on learning by example, the theory is supported by numerous exercises. Features: provides a specific focus on the application of C++ to scientific computing, including parallel computing using MPI; stresses the importance of a clear programming style to minimize the introduction of errors into code; presents a practical introduction to procedural programming in C++, covering variables, flow of control, input and output, pointers, functions, and reference variables; exhibits the efficacy of classes, highlighting the main features of object-orientation; examines more advanced C++ features, such as templates and exceptions; supplies useful tips and examples throughout the text, together with chapter-ending exercises, and code available to download from Springer.