A reproducability crisis in scientific communication?
A fundamental tenet of science is the ability to reproduce the results of an experiment. With the increasing tendency of scientific research to rely on chains of algorithms embedded in computer code, the way we communicate scientific research may need to be rethought. How we teach students to communicate is an important part of meeting this challenge.
A recent article in the Atlantic, ‘The Scientific Paper is Obsolete’, argues that publishing research in the form of ‘notebooks’ that integrate words, equations, figures, and source code, could play an important part of how we communicate in future. The challenge is clear:
“Papers today are longer than ever and full of jargon and symbols. They depend on chains of computer programs that generate data, and clean up data, and plot data, and run statistical models on data. These programs tend to be both so sloppily written and so central to the results that it’s contributed to a replication crisis, or put another way, a failure of the paper to perform its most basic task: to report what you’ve actually discovered, clearly enough that someone else can discover it for themselves.”
Part of teaching science writing, therefore, should include teaching writing readable code. As a relatively new teacher, I’m experimenting with teaching through writing Jupyter notebooks (a form of ‘notebook’ that integrates basic text editing, LaTex equations, and source code). I’ve found that these notebooks help me organize my research process better than having separate files for code and my write-ups. Below is the one we’re looking at today in class, which allows students to view data from the most recent nuclear test by North Korea and calculate a seismic magnitude (relying on an excellent Python module called ObsPy to do the heavy lifting).
It is notable that many journal articles now require open data access (e.g., https://www.agu.org/Publish-with-AGU/Publish/Author-Resources/Policies/Data-policy). Should it be necessary in future to also provide open code access to go with this?