Judges ask "could you run this again and get the same numbers?" more often than students expect. Structure makes the answer yes.
project/
data/raw/ # never edited, ever
data/processed/ # generated by scripts, safe to delete
notebooks/ # exploration
src/ # functions that do the work
results/ # figures and tables, all generated
README.md # how to run it, start to finishFour habits that matter more than the layout:
- Raw data is read-only. Every cleaning step is code, not a manual edit. If you fix a typo by hand in a spreadsheet, that fix is invisible and unrepeatable.
- Set a random seed and record it. Unseeded shuffles mean your results change every run.
- Scripts run top to bottom. A notebook that only works if you execute the cells in a particular order is not reproducible.
- Pin your versions.
pip freeze > requirements.txttakes five seconds and answers a question you cannot otherwise answer six months later.
Then delete data/processed/ and results/, re-run everything, and check the figures come back identical. Do this at least a week before the fair.