Best practices for scientific computing
Material for a training on best practices for scientific computing.
For participant-facing information about the training format, prerequisites, level, and schedule, see the training overview.
The taught route begins with introduction and motivation and ends with the conclusions, which return to the same central question.
The topics are connected by a running temperature-analysis example that develops readable code into a traceable, tested, documented, automated, and reproducible computational experiment. Participants can reinforce these ideas afterwards with the optional self-study exercise, which is not part of the four-hour timetable.
Programming languages
Although this training aims to be programming language-agnostic, the repository also lists a number of tools that are programming language-specific. Obviously, this can not be exhaustive, so feel free to suggest additional tools if you are aware of any.
Programming languages covered:
- C
- C++
- Fortran
- Rust
- Julia
- Python
- R
Table of contents
- Introduction and motivation
- Syntax versus semantics
- Agentic AI and scientific software
- Running example
- Code style and conventions
- Static analysis
- Version control & collaboration
- Code documentation
- Testing
- Optimization
- Deployment
- Continuous integration
- Scientific I/O and data formats
- Reproducibility
- Conclusions
- References
- Tools
- Further training
Acknowledgments
I've "borrowed" much of the table of contents from a training given by the Netherlands eScience Center, although no actual contents of that training was used for the development of this material.
Thanks to the following people for their suggestions and comments:
* Ilaria Misuri: pointed out the rpy2 package for using R from Python.