Resources
Greg Wilson article: http://www.americanscientist.org/issues/pub/wheres-the-real-bottleneck-in-scientific-computing. A good article explaining why these tutorials are important to scientists and why scientists need development skills.
http://software-carpentry.org/
"Software Carpentry: Lessons Learned" - http://arxiv.org/abs/1307.5448
The latest version is under development and is text-based instead of video based: http://software-carpentry.org/v5/
- These two links have the teaching instruction materials: basically, how to best teach programmers. Very important:
- PLoS Comp Bio:
survey/recommendations of http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003376
"Scientific Software Development Is Not an Oxymoron" suggested best practices (short): http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.0020087
"Best practices for scientific computing" - longer tutorial. http://www.plosbiology.org/article/info%3Adoi%2F10.1371%2Fjournal.pbio.1001745
- Other articles
"Understanding the High-Performance- Computing Community: A Software Engineer’s Perspective" https://www.cs.umd.edu/~basili/publications/journals/J111.pdf
"A New Perspective in Scientific Software Development" http://link.springer.com/chapter/10.1007%2F978-90-481-3658-2_23
Scipy conference tutorial on scientific software git and unit testing: http://conference.scipy.org/scipy2013/tutorial_detail.php?id=106 Scipy conference talk
http://scipy-lectures.github.io/ - too focused on Python itself, not about general development
http://www.pythonbootcamp.info/schedule - too focused on Python itself, not about general development
Petition to assert that software should be considered essential to research.
Notes on expanding tutorials
- Academics is so resource-limited that funding for learning these things is hard.
- Also, people are so time-stressed that they can't spend time doing anything but working on the next paper.
- This just emphasizes the importance of my hour-long incremental approach. Every tutorial should leave the person feeling like there is someone they learned that they can immediately use.
- Also, we should emphasize that not learning these things is just false laziness. It may take some investment, but it will be worth it.
Resources for teachers
Page where topics in other courses are being collected: ScientificProgramming/Courses
Software Carpentry instructors' guide: http://software-carpentry.org/v5/novice/teaching/index.html