EPSRC Research Software Engineering Fellowwww.walkingrandomly.com
“all I can hope is that future historians note that one of the core empirical points providing the intellectual foundation for the global move to austerity in the early 2010s was based on someone accidentally not updating a row formula in Excel”
This 2003 trial, done in Kenya, found that deworming whole schools improved children’s health, school performance, and school attendance.
In 2013, the data was reanalysed independently using new computer programs
Many mistakes found.
Open package foo. Click, Click, drag, Click, Click, Click, Right-Click, Save, 'results.csv'.
Load into Excel. Click, drag, generate graph, right click, save, 'pretty-graph.png'
I analysed my data in foo using the bar analysis. Here's a graph of the results.
aka 'learn to program'
Results = TheAnalysis(MyData)
Write code in a (very) high-level language
Scientists typically spend 30% or more of their time developing software
90% or more of them are primarily self-taught
Hannay JE, Langtangen HP, MacLeod C, Pfahl D, Singer J, et al.. (2009) How do scientists develop and use scientific software? In: Proceedings Second International Workshop on Software Engineering for Computational Science and Engineering. pp. 1–8. doi:10.1109/SECSE.2009.5069155.
Prabhu P, Jablin TB, Raman A, Zhang Y, Huang J, et al.. (2011) A survey of the practice of computational science. In: Proceedings 24th ACM/IEEE Conference on High Performance Computing, Networking, Storage and Analysis. pp. 19:1–19:12. doi:10.1145/2063348.2063374.
Just enough Software Engineering to Perform
I like and use 'git' but use whatever your colleagues are using.
Doesn't have to understand your research
Remit: Tell me where I could do better?
Problem 1: Get the code running on THEIR machine
All good universities have a RSE team you can consult.
Traditional academic papers are just advertisements
A Literate computing document IS the research
$ nosetests ./unittests.py .............................. ---------------------------------------------------------------------- Ran 30 tests in 0.152s OK
We all cite papers -- papers contain ideas
Code is the implementation of those ideas
Research Software Engineer