What you will learn
- Version control
- Environment pinning
- Configuration separation
- Secrets management
Version control
Version control records changes to code and configuration. Commit identifiers help connect results with implementation, but untracked data or hidden environment settings can still prevent reproduction.
Environment pinning
Pin dependencies or record exact versions when behavior matters. A library update can alter defaults, numerical results or parsing. Reproduction instructions should identify the runtime and relevant package versions.
Configuration separation
Separate configuration from code and validate it at startup. Research parameters, data paths and execution settings should be explicit. Never infer a live endpoint from a convenient default in a teaching script.
Secrets management
Keep secrets out of source files, exported reports and logs. Use an appropriate credential store or environment mechanism and restrict access. A reproducible research package should describe required credentials without including their values.
Worked example
A report records a code commit but not the fee configuration. Another learner runs the same code with zero fees and gets a different conclusion. The commit alone was an incomplete experiment identifier.
Try it yourself
List the artifacts needed to reproduce that report without exposing credentials.
Show the worked solution
Include code version, configuration, dependency versions, data identifiers or hashes, transformation instructions and expected outputs. Describe access requirements separately and exclude secret values.
Apply this to your course project
Deliver a small tested pipeline from raw observations to a research report.
Keep the calculation inputs, assumptions and decisions with your work. Practical exercises are self-reviewed; the scored knowledge checks assess the questions shown, not an independent certification of practical competence.