Summary and Setup
Chemistry, astronomy, and other research disciplines increasingly use computational methods. Those researchers have tasks similar to those of a professional software engineer, but they often lack formal software engineering training. These researchers are expected to pick up software engineering on the job. One of the most difficult aspects of software engineering is writing reproducible programs. However, the reproduction of experiments by others is an essential attribute of empirical science. Therefore, we designed this course to explain how to make research reproducible to a research audience.
What skills will you learn from this lesson:
- How to use specific package managers
- The pros/cons of specific package managers
Learner background:
People who write computational software experiments or do data analysis and want their experiments or analysis to be reproducible on the order of years, especially grad students and postdocs.
Prerequisite knowledge (including diagnostic questions):
- Compiled programming languages
- What is a compiler?
- What is run-time?
- What is build-time?
- The difference between libraries and applications
- Which is runnable?
- Which is human-readable?
- How to use the UNIX shell
- What is a directory?
- How to move between directories?
- In the command
foo bar baz
, how isfoo
interpreted differently thanbar
andbaz
?
Learners may have misconceptions about:
- the definition of reproducibility
- how containers provide reproducibility
Software Setup
Use WSL
Use Terminal.app
Use Terminal