|
Literate Programming and Reproducible Research
Literate Programming and Reproducible Research
Literate Programming:
The term "literate programming" was introduced by Don Knuth in the early 1980's,
with the idea that a computer program should be documented in a manner that is
readable by humans.
Reproducible Research:
When a project is complete (e.g. a paper is published), the
computational tools and data should be preserved in a manner that allows one
to reproduce the final products (e.g., figures, tables, error values) and to
later understand the methods used and the implementation (including all
parameter values).
The paper should contain all details that can be reasonably included.
Other details should be available on-line.
Some links to recent articles and editorials:
- R. D. Peng, Reproducible research and Biostatistics,
Biostatistics 10 (2009), pp. 405-408.
link
- P.N. Schofield, et.al., Post-publication sharing of data and tools,
Nature 461 (2009), pp. 171-173
link
- N. Barnes, Publish your computer code: it is good enough, Nature 467
(2010) p. 753.
link
- Z. Merali, Computational science: ...Error
Why scientific programming does not compute.
Nature 467(2010), pp. 775-777.
link
- K. A. Baggerly and D. A. Berry, Reproducible Research,
AMSTAT NEWS, Jan. 1, 2011
link
-
S. Fomel and J. Claerbout
"Reproducible Research", Guest Editors' Introduction to a Special Issue of
CiSE.
link
- NSF to require data management plan
article
FAQ
Some links to my recent attempts in this direction:
- Top 10 Reasons to Not Share Your Code
(and why you should anyway)
Minisymposium talk at the SIAM CSE meeting, March, 2011.
... Slides from other
talks
- My thoughts for the Roundtable
on
"Data and Code Sharing in the Computational Sciences",
Hosted by the Information Society Project, Yale Law School,
November 21, 2009 ...
Many references
- Publication resulting from the Roundtable with some recommendations.
- Papers that include Clawpack code.
- Slides from CSGF
Keynote talk at the DOE Computational Sciences Graduate
Fellowship Workshop, Washington DC, 2008
- CiSE 2009 paper
on Python Tools for Reproducible Research on Hyperbolic Problems (in a
special issue on reproducible research)
- ICM 2006 paper
on Wave Propagation Software, Computational Science, and Reproducible Research
- mathcode2html
- EagleClaw
- Clawpack documentation page on saving and sharing code.
Other links:
- Overview of literate programming
- wikipedia
entry on literate programming
- A bibliography of literate programming by N.H.F Beebe
- CWEB Combines C and
latex
- CWEB programs by Knuth
- Noweb
- Doxygen
- AMRITA
- www.springerlink.com/content/t73q6574726k4777/ paper by Quirk
- Sweave ...
Sweave example combines R and
latex
- Brad Bell's OMhelp
- WaveLab and Reproducible Research paper by Buckheit and Claerbout
- Matt Schwab and Jon Claerbout's page
- EPFL Audiovisual Communications Lab page
- Slides from talk by Gentleman
- Madagascar software
- J. Kovacevic, "How to encourage and publish reproducible research"
pdf
- G. Baiocchi, "Reproducible research in computational economics: guidelines, integrated
approaches, and open source software",
journal
- V. Stodden, Enabling Reproducible
Research: Licensing for Scientific Innovation, 2009.
www.ijclp.net/issue_13.html
- V. Stodden, The Legal
Framework for Reproducible Scientific Research: Licensing and Copyright,
Computing in Science and Engineering, vol. 11, no. 1, pp. 35-40, Jan./Feb.,
2009.www.stanford.edu/~vcs/papers/LFRSR12012008.pdf
- Journal of Statistical Software
·
Randall J. LeVeque
·
|