Reproducible Science and Software Engineering
Résumé
One of the main promises of software is that a result obtained from an experiment (e.g. a simulation) can be reproduced with a high degree of concordance. The quest for reproducibility has an impact on different scientific fields, takes different forms and requires making all the data and code available so that calculations can be run again with identical results. In this course, we will first review terminologies (e.g. reproducible vs replication vs repeatability), basic tools (e.g. versioning systems, build systems, package managers, notebooks), and techniques (e.g. automated testing, continuous integration and deployment, configuration management) related to reproducible science.
We will then program a relatively simple feature in different variants and demonstrate that many factors (including programming languages, library versions, compilers, variable types, randomness management, etc.) can have an impact on the final result. Through this exercise, we aim to present and discuss software techniques, methodologies and tools that developers or scientists can use to address and mitigate reproducibility issues, hopefully leading to more robust and general results.
Fichier principal
EJCP2023ReproducibleVariabilitySE-v2.pdf (8.41 Mo)
Télécharger le fichier
EJCP2023ReproducibleVariabilitySE-v2 (1).pdf (8.41 Mo)
Télécharger le fichier
EJCP2023ReproducibleVariabilitySE-v2 (2).pdf (8.41 Mo)
Télécharger le fichier
Origine | Fichiers produits par l'(les) auteur(s) |
---|