Scientific and engineering computing relies heavily on high-performance programming languages capable of handling large numerical datasets, complex simulations, and computationally intensive tasks. C++ and Fortran have long been the dominant languages in this domain, with C++17 introducing modern abstractions and performance improvements, and Fortran 2008 remaining widely used in legacy scientific systems and high-performance computing environments.
Understanding both languages, from a practical perspective rooted in scientific applications, is a valuable skill for computational scientists, engineers, and numerical analysts.
About the book
Scientific Programming in C++17 and Fortran 2008 by Victor Eijkhout is the third volume in the Art of HPC series, published under a Creative Commons license.
The book is designed for students and practitioners in science and engineering who need to learn or deepen their knowledge of modern C++17 and Fortran 2008 in the context of real computational problems.
Rather than approaching the languages encyclopedically, the book builds understanding progressively through examples drawn from scientific practice. It includes substantial programming projects that simulate realistic computational scenarios such as infectious disease modeling, congressional redistricting, Amazon-style delivery route optimization, Google PageRank computation, and high-performance linear algebra. The book is suitable for use in university courses on scientific programming or as a self-study resource.
What you will learn
Readers will learn to write correct, efficient, and maintainable scientific programs in both C++17 and Fortran 2008. The book introduces modern C++ features and idioms, including object-oriented design and template programming, alongside Fortran constructs for numerical computing. Topics include data types, control flow, functions, memory management, arrays, input/output operations, and program organization.
The book also introduces parallel programming concepts and numerical computing patterns. Through extended project work, readers develop the ability to implement algorithms at a level of complexity representative of real scientific and engineering applications.
Table of contents
Part I: C++17 Programming
- Basics of C++
- Objects and classes
- Containers and iterators
- Pointers and memory management
- Templates and generic programming
- Standard algorithms and lambda expressions
- Input/output
- Parallel programming with C++
Part II: Fortran 2008 Programming
- Fortran basics
- Arrays and array operations
- Modules and interfaces
- Fortran I/O
- Parallel Fortran with coarrays
Part III: Programming Projects
- Infectious Disease Simulation
- Congressional Redistricting
- Amazon Delivery Trucks
- Google PageRank
- High Performance Linear Algebra
Book details
- Title: Scientific Programming in C++17 and Fortran 2008
- Author(s): Victor Eijkhout
- Main category: Programming
- Subcategory: C++
- Language: English
- License: Creative Commons Attribution 4.0 (CC BY 4.0)
More books in: C++, Programming
Legal notice: This book is shared for educational purposes only. The content is distributed under Creative Commons licenses or with explicit permission from the author. FreeProgrammingBooks may host files that comply with their respective licenses.