Using random numbers to do all the things.
This is an exemplar project designed to showcase best practices in developing scientific software as part of the ReCode Project at Imperial College London. **You do not need to know or care about Markov Chain Monte Carlo for this to be useful to you.** Rather this project is primarily designed to showcase the tools and practices available to you when developing scientific softare projects. Maybe you are a PhD student just starting or a researcher just about to embark on a larger scale softare project there should be something intersting here for you. ## How to use this repo Take a look at a the table of contents below and see if there are any topics that might be useful to you. The actual code lives in `./code` and the documentation in `./learning` ## Table of contents 1. [A short introduction][intro] 2. The problem 3. A quick and dirty solution 4. Planning out a larger software project 5. Python development environnments: Pip, Conda, setup.py and all that. 6. Test driven development: it's fun. 7. Using Jupyter Notebooks during development 8. Documentation 9. Software Reproducability 10. Citing software in a publication: CITATION.cff ## The map ``` bash . โโโ CITATION.cff #This file describes how to cite the work contained in this repository. โโโ LICENSE # Outlines what legal rights you have to use this software. โโโ README.md # You are here! โโโ code โย ย โโโ README.md # Human readable information about the little python package in here โย ย โโโ pyproject.toml # Machine readable information about that same package โย ย โโโ setup.cfg # Tells Pip how to install this package โย ย โโโ src โย ย โย ย โโโ MCFF # The actual code lives in here! โย ย โโโ tests # automated tests for the code โโโ learning # Supporting documentation โโโ Untitled.ipynb ``` [TDD]: http://placeholder_link.com/ [intro]: http://placeholder_link.com/