Software Carpentry: Week in Review

To help you keep on top of Software Carpentry news, one of our contributors and instructors, Aron Ahmadia, has begun pulling together weekly summaries. Here you can see what the community has been up to, find out how you can get involved, and learn more about our work addressing the digital skills gap in science. Care to join the conversation? See the bottom of the post for more, or join our discussion lists (Software Carpentry lists ; Mozilla Science Lab list).

Many thanks, Aron!

Note from the editor:  I’m trying to summarizing activity on the ground in bootcamps, on GitHub, in the instructor training, and on our blog. The primary goal of this email is to help people stay connected with Software Carpentry and keep up with how to contribute. Please feel free to send feedback directly back to me at

Mozilla Science and Software Carpentry Lab Meetings This Week!

We’ll be having a Mozilla Science Lab meeting on November 14 at 11:00 AM. We will also be holding split time zone Software Carpentry Lab meetings at 12:00 PM and 7:00 PM Eastern Time.  More details at the blog post announcement.


Ben Morris, Jerico Revote, Diego Barneche, Philipp Bayer, Nicholas Crouch, and Nathan Watson-Haigh taught a three-day workshop at the University of Adelaide from the 24th through the 26th of September.  Philipp Bayer wrote a nice summary post describing the camp, as well as a few tips from their experiences:

  • VMs are extremely useful: software can be set up in advance, there’s no headache with Windows/Linux differences etc. The downside: It’s a bit more of a hassle to get files to students after the workshop (Nathan zipped all home-directories and sent them around, and students were encouraged to upload the work they wanted to keep to their new GitHub-accounts).
  • There needs to be more material on Documentation, or maybe merge this with a general “Best practices in programming” topic? Then you can also include things like naming conventions, KISS etc.
  • Group exercises are fun and, I think, a good way for students to try out their new knowledge and have the chance to clean any misconceptions with instructors before students go back home. However, a third day is needed which might not always be possible.
  • Whenever possible, a 3-day workshop is better? 4 days is probably overkill.
Image courtesy Philipp Bayer


We merged 6 pull requests this week, with changes across 15 files.  Congratulations to Damien Irving for adding lesson material on floating point arithmetic and Phil Lies for extending the Python function lesson in `bc`.

As those following the bc repository have noticed, we have been moving discussion to issues in an effort to help manage the various conversations about the development of the project.  If you would like to follow the repository, you can either click on the `Watch` button in the top-right corner of the [bc home page](, or you can subscribe/comment to individual issues.

Most of the conversation this week happened in Issue #120: What structure and metadata should lessons have?, where a proposal for moving forward was set forth by Greg:

Each Python lesson is stored in a single notebook (but the novice and intermediate lessons are in separate notebooks). Each notebook contains long-form prose, notes for learners, and notes for instructors as well as code. Cells in these notebook are tagged using (I’ll propose a very small set of tags in a separate message).  We run these notebooks through nbconvert to construct the notebooks that will be given to learners as a starting point in class, used by the instructor in class, read by the instructor before class to prepare, etc.

We will start constructing the new novice and intermediate Python lessons, and are continuing to discuss.
  • What we do about things like R that have their own preferred formats, and
  • What we do about things like the shell that don’t (i.e., things where we could use notebooks, plain Markdown files, or something as yet undecided).
Greg has also opened Issue #134: What tags should we use for lessons content?, a direct follow-up to #120, where we are hoping to hammer out finer details of the metadata tags.

Meanwhile, we are moving forward with two branches, `gh-pages`, and `master`.  Until the reorganization is complete, instructors teaching bootcamps should continue to use the `gh-pages` branch.  New development will happen in `master`, including the novice and intermediate lesson reorganization, as well as notebooks in the new format.  If you have any questions about the reorganization or the branches, please email Aron or Greg.

How to Help Software Carpentry this Week

Have a good week!