Software Carpentry's Scope
This post originally appeared on the Software Carpentry website.
To help people figure out what's in and what out as we're reorganizing our material, I've drafted an explicit description of our scope inspired in part by AstroPy's idea of an "affiliated" package, which is, "...an astronomy-related Python package that is not part of the astropy core package, but has requested to be included as part of the Astropy project's community."
Domain-specific tools for machine learning and computational fluid dynamics aren't built into LAPACK or NumPy: they're stored in separate repositories and released in their own packages. Similarly, domain-specific lessons don't belong in Software Carpentry. Instead, they should build on our lessons, just as computer vision libraries build on matrix and image libraries. Our examples should be drawn from biology, physics, economics, and similar disciplines in order to appeal to our audience, but everything we include must be accessible to anyone who's done freshman science.
Martin Jones' Python for Biologists, Lorena Barba's CFD tutorial, and Nikolay Koldunov's lessons on geosciences shouldn't need to explain what loops are or how to write functions. Instead, they should be able to point to or include our explanations somehow so they can spend their time covering specialized topics that we don't. How they should do this, and how we can help without getting lost in over-engineering and the Semantic Web, are questions for our tooling and metadata discussion threads—we hope you'll join us there.