Our two-day bootcamps are working well, but that doesn't mean they're the best—or only—way to teach basic computing skills to scientists. We've been kicking around other ideas recently, and we'd welcome your input as well.
Become part of a regular university course.
Use the first few days of a course to teach Software Carpentry stuff, and the rest to teach "computational methods in [XYZ]".
Counter-argument: SWC doesn't really fit a traditional lecture format, but can fit with in-class projects and discussions, follow-me tutorials, etc.
And any course that includes SWC will have to be a fairly special and overly interactive course.
We have experimented at Columbia with running a two-day bootcamp at the start of a regular course, followed by 2 hours/week for the remainder of the semester—we should be able to report back on how well it works by April or May.
Offer a two-week residential course.
Some people think a week or two of full time work is enough time to turn a neophyte into a skilled practitioner.
Others think that is virtually impossible without several hundred hours of homework, but (a) we can accelerate that process and (b) if people already have some basic scripting, we can accelerate it further.
Either way, this would have to include time for students to apply ideas to their own research problems.
For example, our Trieste bootcamp last year involved one week of Software Carpentry and one week of applying those new skills to the students' actual research projects.
Helping students apply this to their work at the end of the intensive-learning-period was super awesome.
But participants also may have done well because they were carefully selected.
And it costs a lot more to implement, both in money and in instructors' and learners' time.
This may basically come down to a "many but shallow vs. deep but few" argument.
Variations on this idea include:
As a course requirement of first year of PhD
As part of a domain-specific summer school
90 minute sessions on a specific topic taught during a conference.
How to keep people engaged after bootcamps?
Offer a robust set of links to online communities by domain.
Show people where and how to get help online: "how to ask a question online so that you'll get the answer you need.".
Point people to hackerspaces: many professional software developers, people are motivated to share and learn, and love scientists.
Online office hours.
We've also thought about creating an online community using Facebook, Piazza, Stack Exchange, or a combination of mailing lists and Google groups. However:
We tried this with a self-hosted forum in the fall of 2010 and the winter of 2011, with very little uptake (despite active instructors).
Does keeping the community small (just SWCers) encourage the timid folks to participate more than they would on something like StackExchange?
We need a large population to generate enough conversation to make it worth coming back to.
All the answers are out there (e.g., on StackExchange), people just need to know how to find them.
Will scientists actually use any of this? The whole mailing list model is foreign to many.