Cover -- Title Page -- Copyright Page -- Table of Contents -- Foreword -- Preface -- Editors -- Contributors -- 1: Operating Systems Overview -- 2: Machine Numbers and the IEEE 754 Floating-Point Standard -- 3: Developing with Git and Github -- 4: Introduction to Bash Scripting -- 5: Debugging with gdb -- 6: Makefiles, Libraries, and Linking -- 7: Linking and Interoperability -- 8: Build Management with CMake -- 9: Getting Started with Python 3 -- 10: Prototyping -- 11: Introduction to High-Performance Computing Systems -- 12: Introduction to Parallel Programming with MPI -- 13: Introduction to OpenMP -- 14: Checkpointing Code for Restartability with HDF5 -- 15: Libraries for Linear Algebra -- 16: Parallel Computing with Accelerators -- 17: Testing and Verification -- 18: Validation of Computational Models and Codes -- 19: Software Licensing and Distribution -- Index