Software Carpentry
Southampton RSG
Before We Start
- Make sure you have an account at github.com
- Go to, or make, a
climate-analysis
repo
- Open VS Code or a text editor
- e.g. Atom, Sublime Text, Notepad++, BBEdit
1. What Is Academic Software?
The Large
- Database creation & management
- HPC simulation codes
- Machine learning pipelines
- OSes & drivers
The Small
- Collections of scripts
- Cleaning data
- Plotting figures
- Toy models
The Commonalities
- May not be true for Engineering/CompSci!
- Instrumental- not a goal in itself
- Experimental- may not have a clear spec
- Small teams
The Issues
- Paperware
- Unplanned
- Undocumented
- Unmaintainable
- Can’t onboard people
- Disposable
Serious Problems
- Software Is Science
- Reproducibility
- Wasted effort
- Harms collaboration
Forward-thinking
- Assume people will try to understand
- Assume people will try to reproduce
- Make it as easy as possible
Understanding
- Write clear code
- Document your code
- Document your development process
- Document your code’s limitations
Reproducibility
- Track versions of your code
- Specify versions used in your papers
- Cite your code