Shuttleworth Foundation Fellowship Application

I just submitted an application for a Shuttleworth Foundation fellowship, and as a believer in openness, I figure it's only right to post it here as well. If you're interested, you can watch the five-minute video, or get more details from the Q&A below it.

Describe the world as it is.

Scientists spend an increasing amount of time building and using software. However, most of them are never actually taught how to do this - they pick up bits and pieces by osmosis and good luck. As a result, it takes them weeks or months to do things they could in hours or days, and when they're done, they often don't know how trustworthy their results are, how to reproduce them, or how to share them.

And there's something else scientists don't share: their lessons and how they teach them. Millions of people have contributed to Wikipedia, and tens of thousands will submit patches to open source software projects today alone, but even open educational resources are almost always still written by one or two people. People routinely "borrow" PowerPoint slides they find on the Internet, but even those who contribute to Wikipedia and open source almost never send patches back to improve the original. The "mend and extend" ethos that is the basis of truly open collaboration simply isn't part of how most people think about teaching.

What change do you want to make?

I want every scientist to learn the equivalent of basic lab skills for scientific computing, but that is just a step toward a larger goal. What I really want is for massive, open collaboration to be a normal part of scientists' lives. Software Carpentry is giving them some of the skills they need to do that in their research; the next step is to see if we can do it in their teaching.

I believe that if we can make open collaboration the new normal, it will encourage scientists (and others) to adopt modern evidence-based teaching techniques as well, just as the spread of open software development in the 1990s and early 2000s led to broader uptake of practices like code review, which in turn allowed programmers to learn better technique from one another. I think the same can happen with teaching once people are used to working out in the open, and that we'll all be better off for it.

What do you want to explore?

I want to try using off-the-shelf package managers to manage teaching materials, so that "lesson install calculus-trig-derivatives" will get the lesson, the code and data it uses, and whatever it depends on. Once this is in place, I then want to build an aggregator - a "CPAN for lessons" that will encourage people to mend and share rather than just upload and download.

(I also believe that if we can make this work, we could use it to "install" scientific papers for reading, review, and re-analysis, which would be an interesting new approach to the scientific reproducibility crisis.)

But this is just a means to an end. Open education shouldn't mean "I can use your slides", but rather, "We can all work together to make those slides (and exercises, and videos) better for everyone." The technical tools for doing this have been around for years; I think they can help educators just as much as they've helped programmers, but somebody has to get the ball rolling.

And if people start collaborating on material, they'll be more likely to share good practices with each other. Educational researchers know a lot about teaching and learning that isn't yet part of mainstream practice; equally, a lot of good ideas are stuck in the classroom of the teacher who invented them because there's no way for her to share them. I think open collaboration could help us fix both problems at once.

What are you going to do to get there?

  1. I will train at least 200 new Software Carpentry instructors during the first year of this fellowship, both as a good in its own right, and to create a pool of people willing and able to try the ideas described below.

  2. I will build prototypes to remix open version control repositories and existing package managers in order to experiment with ways of using and extending them to collaborate on, distribute, and remix teaching materials. (As noted above, these tools are a means to an end: the real goal is to see if we can get people to adopt better collaborative teaching practices by lowering barriers to entry.

  3. I will create a short course on evidence-based best practices in teaching and learning (tentatively titled "What Everyone in Science and Technology Absolutely, Positively Must Know About Education"), and make it freely available under the Creative Commons - Attribution license.

How does your idea relate to openness?

Matthew Crawford once wrote, "Too often, the defenders of free markets forget that what we really want is free men." Similarly, I think that many advocates of open science, open data, and open source development sometimes forget that they just a means to an end. The real goal is to allow everyone, everywhere, to work together without hindrance. Openness is necessary for that, but not sufficient: people must have the skills to actually do it in order for it to be meaningful.

Software Carpentry fosters openness by giving people what they need to be open. And by explaining the ideas behind those tools, it helps people understand why and how open is better. Once these ideas take hold, and once people see that they apply not just to research but also to teaching, I believe they will find ways to apply them in domains we haven't thought of and ways we can't yet imagine.

7. Have you started implementation of the idea?

Yes. Software Carpentry ran its first class at Los Alamos National Laboratory in 1998. Since 2010, it has grown into a volunteer organization with over 165 instructors in 19 countries, who have taught more than 100 two-day workshops for more than 5000 people in the last year alone. In October 2014, we set up a non-profit Software Carpentry Foundation (see Its interim board is currently drafting bylaws for review, and will replace itself with a permanent board early in 2015.

As well as running workshops, Software Carpentry also runs an instructor training course to teach scientists (many of them workshop alumni) the basics of educational psychology and instructional design, and how to apply ideas from both to teach other scientists how to program. More than 60 people are currently taking part in the eleventh online offering of this training, and we are now also offering intensive two- and three-day compressed versions on site in Europe, North America, and Australia.

Software Carpentry's teaching materials are all freely available under the Creative Commons - Attribution license. They are hosted on GitHub, and are proof that open collaboration on lessons can work: the most recent versions have had over a hundred contributors in the last two years.

How have you funded your initiative in the past?

Software Carpentry has been supported by a wide range of organizations over the years, from universities and national laboratories through philanthropic foundations and private companies - please see for a complete list.

Since January 2012, Software Carpentry has used a hybrid funding model: workshop hosts (typically universities) cover the travel and accommodation costs of instructors, but central costs (such as curriculum development and instructor training) are covered from grants and donations. This has allowed us to scale our workshops to the point where instructor training is now our biggest bottleneck.

13. Do you have an online presence?


Does the idea/project have an online presence?