Blog

Planning for the Break

We've had a busy nine months: 55 boot camps since we restarted boot camps last September, with 19 more in the next two months. We're taking a break then to catch our breath: we only have one event scheduled between mid-July and the end of August, which will give us time to reorganize our online materials and figure out what we're going to do in 2013-14. The list below outlines things that I'd like to see done during that break. I'm sure you have others; I'd be grateful if you'd add them as comments, along with your thoughts on things we shouldn't do, or should do differently.

Re-think the boot-camps repository and workflow.
This is our biggest task: it must be much simpler for people with middling-weak Git skills to create a space for a new boot camp, find and import teaching materials used in previous boot camps, and offer their materials back to the community.
  1. Decide whether to make changes in place, or create a new repo and start afresh.
  2. Catalog the material we have now.
  3. Re-organize material so that it aligns with the instructors' guide (or rearrange the instructors' guide if that makes more sense).
  4. Put generic setup instructions in the boot camps repo, rather than in the main web site (the latter can easily refer to the former), and make it easy for instructors to clone and specialize those instructions. (People have some fairly strong opinions about how this should be formatted; we'll re-open that discussion at the start of July.)
  5. Merge the stuff that's in our GitHub wiki pages into the boot camps repository, then stop using wiki pages: our information is already too scattered, and since this is our least-used communication channel, it's the obvious candidate for weeding.
Regularize boot camp operations.
This is the "how" to go with the previous item's "what". Much of it depends on a small SQLite database that cannot be in a public repo (since it includes personal identifying information).
  1. Ensure that everyone is aware of the code of conduct, no matter how they sign up.
  2. Make sure people know that anyone can use our content (which is all CC-BY licensed), but the Software Carpentry name and logo are trademarked, and that there are some restrictions on their use (discussed in these two blog posts).
  3. Create a unified online checklist for each boot camp with to-do items for organizers and instructors. (There are currently checklists in two different repositories, which are inconsistent with each other.)
  4. Create a mailing list per boot camp, plus a host email address that forwards to the organizer(s).
  5. Appoint an experienced lead instructor for each boot camp so it's clear who's responsible for sorting out who teaches what, etc.
  6. Incorporate a pre-assessment questionnaire into registration (or at least for those who get a seat).
  7. Make immediate and delayed post-assessment a one-click process.
  8. Make in-camp assessment more systematic (i.e., standardize a set of questions that should be asked at every boot camp, and a way of reporting the answers).
  9. Make it easier for potential instructors to find boot camps, and for lead instructors to find partners.
  10. Archive waiting lists from boot camps so that people who didn't get in last time are first in line the next time. We could potentially keep track of no-shows as well: someone who has registered, but then fails to attend without explanation, should probably be put at the back of the line for future boot camps, but this could be problematic to implement.
  11. Automate synchronization of boot camp announcement pages on the web site, EventBrite registration pages, boot camp GitHub repositories, mailing lists, and GitHub tickets.
  12. Collect feedback on instructors to help them improve their teaching (and then actually give it back to them). This will have to be done carefully—we have no wish to encourage a "big brother" atmosphere—but it will help maintain and improve quality.
  13. Finish, deploy, and publicize the Windows installation script and the "check my machine" scripts.
Line up our next eight months of boot camps.
We need to book things further ahead, so that we're scrambling at the last minute to find instructors less often. We also need to start targeting conferences and other disciplinary clusterings, rather than doing things geographically.
  1. Contact all previous boot camp hosts and ask if they'd like a return visit.
  2. Since demand now outstrips supply, we should probably also think about some sort of bidding process, e.g., sites where people are doing instructor training or are willing to help out with boot camps elsewhere get priority.
Finish the instructors' guide.
We desperately need more instructors; we also need to do more to ensure that people are teaching the same (kinds of) things, or at least are aware of what other people are teaching.
  1. Create a concept map for each section. (None exist yet.)
  2. Create challenge problems for each section. (About half are done.)
  3. Draw 250 diagrams. (I'd rather stick a spoon up my nose, but it needs to be done.)
  4. Create a printed version (because some institutions still take books more seriously than web sites).
Simplify contribution to the web site.
If we want more people to contribute more content, it needs to be a lot easier to update a page or write a blog post. In the long term, this probably means either building something that integrates with the services we use (like EventBrite and Google Calendar), or switching to a hosted customer relationship management system, but that's not going to happen this summer.
  1. Start using Pelican (or maybe Nicola) instead of our home-grown tool.
  2. Stop using sub-modules for the 3.0 and 4.0 material (which probably won't ever change again).
Rationalize the mailing lists.
Dreamhost (our ISP) supports Mailman, but doesn't give us access to Mailman's command-line scripting interface (because mail is hosted on different machines than shell accounts). We therefore have to manage list membership manually, which produces all sorts of minor inconsistencies. We're planning on switching ISPs anyway (Dreamhost is increasingly unreliable), so we have an opportunity to fix some of these problems.
  1. Make sure the ISP we switch to offers scriptable mailing lists.
  2. Integrate mailing list management with our roster.
Regularize instructor training and badging.
We're now running the instructor training for the fifth time, and we've learned a lot about what works and what doesn't.
  1. Put a rough curriculum on the teaching web site.
  2. Switch from a WordPress blog to a compiled web site using the same tooling as the main web site.
  3. Clarify the certification process: people must complete the training and teach at least once under the supervision of an experienced lead instructor.
  4. Start generating PDF certificates for instructors as well as digital badges.
Certify learners.
We've been asked several times to provide certificates of completion. We would rather provide certification of accomplishment, i.e., give people something only once they've demonstrated some level of proficiency, rather than for sitting through two days, but we can certainly do both.
  1. Choose and publicize proficiency assessment criteria.
  2. Automate production of PDF certificates and digital badges for both completion and proficiency.
  3. Make sure that whatever we do for proficiency integrates with the driver's license being developed in conjunction with the Software Sustainability Institute.
Miscellaneous
  • Create better publicity materials. We retired our 90-second pitch months ago because it no longer represented what we actually do. We need to create new ones aimed at potential learners, hosts, instructors, and backers. We also need to write a paper that people can refer to when they want to cite us—our Best Practices in Scientific Computing paper isn't quite that. (Software Carpentry: Lessons Learned is a start toward this.)
  • Break the assets repository into several pieces. At the very least, assessment materials, papers, and checklists should be in their own repos.

— 2013-05-24 by Greg Wilson.

Where We Are (More or Less)

In January 2012, John Cook posted this to his widely-read blog:

In a review of linear programming solvers from 1987 to 2002, Bob Bixby says that solvers benefited as much from algorithm improvements as from Moore's law: "Three orders of magnitude in machine speed and three orders of magnitude in algorithmic speed add up to six orders of magnitude in solving power. A model that might have taken a year to solve 10 years ago can now solve in less than 30 seconds."

A million-fold speedup is pretty impressive, but faster hardware and better algorithms are only two sides to the triangle. The third is development time, and while it has improved since 1987, the speedup is measured in small percentages, not orders of magnitude. For most scientists, getting the code to do the right thing is now a bigger bottleneck than its running time.

That's where Software Carpentry comes in. We teach scientists (usually grad students, since they have both the need and the time) what they ought to know before they start working on large programs, creating web services, or any other leading-edge work. Our hope is that if we give people basic skills, they'll be better able to take advantage of more sophisticated things.

Between January 2012 and July 2013, over 100 volunteers will have run 92 two-day workshops for over 3000 scientists. A typical two-day curriculum is:

  • Day 1 morning: Introduction to Unix shell. We show participants a dozen basic commands, but the real aim is to introduce them to pipes, loops and history (to automate repetitive tasks), and the idea of scripting.
  • Day 1 afternoon: Version control, with an emphasis on collaboration and reproducibility. If time permits, we also give them a quick intro to regular expressions or something else that's relatively easy.
  • Day 2 morning: An introduction to Python, the real goal of which is to show them when and why to develop code as a set of comprehensible, reusable functions. Some boot camps use R instead, and we expect that to become more common.
  • Day 2 afternoon: Testing, focusing on the idea of tests as a way to specify what a program is supposed to do, and how to to structure unit tests using an xUnit-style library. This is probably the weakest part of our standard two days: we've got the "how" down cold, but the "what" for scientific software is still very much up in the air.
  • Day 2 afternoon: Number crunching using NumPy, basic SQL, or some other "beyond mere programming" topic that suits the audience.

As the comments above suggest, our real aim isn't to teach Python, Git, or any other specific tool: it's to teach computational competence. What we've found, though, is that we can't do this in the abstract: people won't show up, and if they do, they won't understand. We try hard to start with the particular, and to show them that yes, this stuff actually is useful, and then bring in more general stuff.

We nominally aim for 40 people per workshop, and are always grateful for local helpers to wander the room and answer questions during practicals. We find workshops go a lot better if people come in groups, e.g., 4-5 people from one lab, half a dozen from another department or institute, etc., so that they are less inhibited about asking questions, and can support each other afterward. (It also produces much higher turnout from groups that are usually under-represented in computing, such as women and minority students.) We use live coding rather than slides: it's more convincing, there's more lateral knowledge transfer (i.e., people learn more than we realized we were teaching them by watching us work), and it makes instruction a lot more responsive.

Our instructors are all volunteers, so the only cost to host sites is travel and accommodation. All but a handful of our instructors are working scientists themselves; that, plus live coding instead of slides, ensures that attendees get lots of "how" as well as "what".

We also run an online training course for would-be instructors. It takes 2-4 hours/week of their time for 12 weeks, and introduces them to the basics of educational psychology, instructional design, and how these things apply to teaching programming. It's necessarily very shallow, but it's still more than most university faculty ever get...

Results have been very good: we had two independent evaluations done last spring (one by Prof. Julie Libarkin at Michigan State University, the other by Dr. Jorge Aranda at the University of Victoria), and both found that people actually are learning useful things. What we're struggling with now is showing that this translates into them doing more and/or better science (the holy trinity of "novelty, efficiency, and trust").

Here's what else isn't working (or isn't working well):

  • Our "host site pays costs" model makes us nearly self-sustaining financially, but only if you exclude the costs of 1.5 people in the middle of things doing coordination. Since I'm the 1.0 of that 1.5, I'd like to find a way to regularize that size of things...
  • Learners come to us with a very wide range of prior knowledge and abilities, and as a result, we figure that 20% are bored and 20% are lost at any time. We'd like to start offering separate boot camps for complete novices and can-already-kind-of-program people, but we can't rely on them to self-assess their ability (they don't know what they don't know), and if we give them any kind of proficiency test, it scares away the ones with weaker skills who need us most.
  • We need to start teaching data management and how to use the web to do science better; the hard part is to figure out what. We can talk generalities about data management, but they want tools and procedures. As for web programming, all we can show them in half a day is how to create security holes...
  • We need to persuade the powers that be—funding agencies, departmental chairs, etc.—that this stuff deserves institutional backing. Many believe it's important; what's hard is persuading them that it's more important than things that are already in the curriculum, and that have passionate defenders. (As a chemist once said to us in frustration, "What do we take out of the undergrad curriculum to make room for this: thermodynamics or quantum mechanics?") One thing we're trying is a "driver's license" exam for the DiRAC supercomputing facility in the UK; once it's implemented, grad students who want to use it have to show they have at least basic computational competence.

We're pausing to catch our breath from mid-July to the end of August this year, during which time we'll clean up our GitHub repositories, finish the instructors' guide, and generally get ready for another round of boot camps in the fall. Before then, though, we will have some exciting news to announce, so please keep an eye on this blog—we think you'll like what you see.


— 2013-05-24 by Greg Wilson.

Feedback from the Oxford DTCs

Having helped at two previous boot camps (Oxford last year and UCL last month), a couple of weeks ago I had my first attempt at organising one at the University of Oxford, primarily aimed at students from the Doctoral Training Centres. Mario Antonioletti and Shoaib Sufi from the Software Sustainability Institute kindly did most of the instructing (I only ran two sessions), and Mario has already written a blog post with his perspective. Here I want to report the feedback we received from attendees and give some of my thoughts on the experience.

It took a while for registrations to get going - the vast majority signed up in the last week - but we had very few drop-outs before the event, with 30 attending the first day, and 24 still present at the end of the second. We did the traditional good point-bad point round-the-room feedback at that point, and got quite a few useful comments, shown below. I also sent round a more detailed questionnaire after the event which received 10 responses. All enjoyed the boot camp, and rated it overall good or very good. They also all felt they learned something useful, would recommend such events to others, and think universities should run them as standard.

Good Bad
Lectures good - not too fast Issues getting pace correct for everyone
Covered basics well and included advanced topics Some topics too easy
Selection of topics covered Slightly too long on simple things in databases - more complex topics
Python good solid foundation Intro Python too slow - too much basic programming
Documentation for the topics good, so could read the material to catch up Version control too fast
Lots of topics, didn't get bored Starting with version control - in at deep end - start simpler?
Sticky notes good idea Version control not deep enough - need to explain concepts - what program actually does
Tech support from helpers great Time management - wanted more Matlab
Examples very practical - could think how to apply them to my work Include some theory behind Python - what important compared to other languages
Access to all the materials from the start and afterwards Example used BitBucket but course materials on GitHub
Having sample code, e.g. seeing how other people implement tests Databases needed more intro and context
Exercises good to learn from Examples of big projects to explain the idea behind version control
Good balance of trying it yourself and lecturing Using wrong programs on desktops - no cygwin
Everyone could see the screens NumPy & SciPy not covered deeply enough
Number of demonstrators good - didn't have to wait for help More comparison between Python and Matlab
Generally very helpful
Awesome that this is free

I think we did pitch things generally at slightly too easy a level for our audience. This was particularly the case for the introductory Python session, which started quite slowly. Several responses to the questionnaire requested fewer topics but in more depth, with less time spent on the very basics. It was interesting to me that the students wanted more background to the topics taught, for instance comparing Python with other programming languages and discussing the kinds of problems for which it is particularly suited, or explaining the mental model and behind-the-scenes behaviour of Git.

There were also some differences in what attendees wanted out of the boot camp. Some were particularly keen to learn Python, and they seemed to really appreciate what we covered. Others wanted more to improve their Matlab skills, and so were disappointed that the 'Software Carpentry in Matlab' session was squeezed by earlier sessions overrunning. I think they would probably have wanted a workshop devoted to covering the general principles entirely in Matlab without any Python, too.

The location in the Zoology Department worked very well for a boot camp. It was a newly equipped suite designed for teaching computer based courses. There were thus desks with plenty of space for helpers to move behind attendees, and desktop thin clients for those who couldn't bring their own laptops (or had issues with their setup). Best of all, the instructor's screen could be projected on three walls of the room, so everyone could see a screen in front and to the side.

Most setup issues were caused by Enthought releasing Canopy between the installation instructions being written and the boot camp occurring, so those attendees who didn't already have Python were faced with an installation that didn't match the instructions. The additional setup script for Windows users was also broken by paths changing. More annoying were some issues experienced with IPython on some machines, which we didn't get to the bottom of unfortunately. Pasting with %paste didn't work for some (%cpaste seemed to be an effective work-around), and tab completion was entirely absent on some systems.

We came across a few issues (and some good ideas) that might be helpful for future boot camps to consider.

  • Mario wrote 'recap slides' for the Git session, summarising where we had got to at different stages through the morning, and students found these helpful.
  • Accessing BitBucket with Git led to SSL certificate issues on some machines. It's worth knowing the incantation to fix this if it happens to you (git config --global http.sslVerify 0).
  • Students really found having all the material available at the start helpful.
  • On that note, we should mention ipython's var.<tab> help system in the notes.
  • In the testing session, we tried to get people to run Python scripts as commands by including a shebang line and setting the executable bit. Lots of people had issues following along here, and it would probably be better to run with e.g. python dna.py.
  • We tried to do a longer practical exercise after the NumPy session. Much more time was needed for this! But I still think such an exercise, that includes dealing with basic Python datatypes and functions, is very valuable.
  • Importing CSV files into the database is quite hard to follow along with. This is a general issue for any section that involves following button clicks and interactive dialogs. We benefitted from having a pre-canned database in the repository for anyone who gets too lost.
  • Another aspect that some found difficult to follow was long bits of typing that weren't essential to understanding, for instance typing HTML sample files for the version control session.

There were a couple of other comments worth mentioning. One person wanted a topic on understanding pre-written code. Possibly going through a model solution to a longer exercise would be beneficial for this. Another person suggested splitting the workshop into half days on different topics, and letting attendees pick which they attend. I don't think this would work for normal boot camps, but with particular audiences, especially those with more background in some topics, this might be a helpful approach.

But my favourite comment of all, in one questionnaire response, was: "In my opinion the best aspect of the course was the explanations given about new concepts by the very competent computer scientists who ran the bootcamp. This was especially true for Jonathan and Aron." I think that's a good note on which to end!


— 2013-05-24 by Jonathan Cooper.

Stanford Bootcamp Recap

On May 6th-7th, we hosted a bootcamp at Stanford University. Participants were students, post-docs and staff affiliated with the Center for Neurobiological and Cognitive Imaging and the Neuroscience Graduate Program and both units provided support for the workshop. Bob Dougherty, the research director at the CNI, helped raise a substantial portion of the funds to support the boot-camp (coffee!) and Prof. Miriam Goodman, from the Department of Molecular and Cellular Physiology, helped to get the neuroscience program on board and to secure additional funding from that program. Prof. Goodman was a participant in a SWC boot-camp at Berkeley last year and was eager to get SWC to Stanford. Instructors were Paul Ivanov, Bernhard Konrad and myself.

SWC at Stanford

Considering that the students were a rather homegenous group in terms of their scientific interests (the brain!), there were a variety of backgrounds in terms of their knowledge about computers. Matching instruction to the level of knowledge (based on a pre-workshop questionnaire) was a challenge. As were installation issues that plagued the first day. A large majority of participants failed to follow the instructions provided by the Anaconda Python distribution to configure their bash shell environment. I guess that just goes to show that they needed the workshop.

The instruction followed the standard boot-camp plan for most of the two days: unix shell, version control with git, python programming, and so forth. In the last two-hour session of the work-shop we conducted a little experiment. Adapting a lesson plan from Justin Kitzes' recent UC Berkeley bootcamp, we taught a session aimed at teaching the students how to combine all the components of the previous parts (shell, git and programming) to create a reproducible research project. To make things more interesting, we used a publically available neuroscience data set. We demonstrated how one would load the data from the files comprising this data-set into an IPython notebook and performed a rather basic calculation on it, visualizing various quantities as we went along.

Demonstrating one possible work-flow, we started by working interactively in the notebook, exploring the data as we went along. We demonstrated how bits of an exploratory data analysis session can turn into function definitions. Then, we showed how you would write modules based on these function, tests for the modules, commit them as a git repo and start putting together a push-button analysis. We reached the end of all this a little bit out-of-breath and it is not obvious that everyone managed to follow through every step of the session, but I do believe that the most important point came across: reproducible research is important and, with the help of the tools we teach, eminently possible.

We used this etherpad to comminucate with students througout the workshop and to gather feedback at the end of each half-day. You can see a list of the participants at the top and the feedback strewn throughout. At the very end of the workshop, we asked them to write down their feedback for the entire workshop. Many took the time to write some thoughtful comments (for which we are grateful!). I have selected a couple of interesting points from the feedback we got. This one is quite encouraging:

great workshop. i appreciated the backround and theory as well as the more practical examples. i think you did a nice job presenting this information to students of various levels. might be helpful to make it clear what level this class is for - some people had no coding backround, others were quite experienced. maybe a quick survey in the beginning and maybe some work in groups to accodmidate the different levels. i really appreciated your humor and positive attitude:)

On the other hand, this one is a bit discouraging:

I'm very grateful that you all volunteer your time to do this. But, I think you can/should be paid for it. There's money around for such things, many of our PIs would be happy to fork up a few hundred bucks, and in general I think the culture of doing good work for free in academia is deleterious to our collective financial well-bring.+4

The '+4' at the end of that comment represents the fact that four additional people expressed their support to that point. I wonder whether this notion is due to the local hyper-capitalistic culture surrounding Stanford, and I am curious to hear what other instructors think about this. My personal response, also in line with some other aspects of the local culture, is that Software Carpentry is just one more way to create more value than we capture.

When the workshop was over, Paul, Bernhard and I took a long walk. Prof. Goodman had kindly invited us to her house in Menlo Park for post-workshop pizza and socializing. On the way over, we took the opportunity to go over the sessions one-by-one and reflect on them. For each session, each one of us in turn said what they think worked and what didn't work. It was very useuful to get feedback from the other instructors, to rehash the mistakes and the successes and to be able to imagine what we would do differently in future workshops. One of the main sentiments in the air was that we were not sure whether we had really managed to "seal the deal", to get students to actually start using the things we had shown them in their day-to-day life. Fortunately, I have the email addresses of participants. In a couple of months, I will circle back and ask them to fill another set of evaluations and (assuming anyone responds) see whether they have adopted any of it into their day-to-day research life.


— 2013-05-16 by Ariel Rokem.

Wrapping Up at UC Davis

Jenna Lang has posted a great wrap-up on the boot camp at UC Davis — with Python cookies!

cookies


— 2013-05-17 by Greg Wilson.

Experiences with the Oxford DTCs

Mario Antonioletti has posted his experiences on being a first-time instructor at our boot camp for the Oxford doctoral training centres, our second in Oxford, last week.


— 2013-05-17 by Mike Jackson.

Announcing Hack4ac

Hack4ac is a one-day hackathon in London, England, on July 6. Its goals are:

  • Demonstrate the value of the CC-BY licence within academia. We are interested in supporting innovations around and on top of the literature.
  • Reach out to academics who are keen to learn or improve their programming skills to better their research. We're especially interested in academics who have never coded before.

It looks like fun—if you're in the area and interested in getting involved, they'd be happy to have you there.


— 2013-05-16 by Greg Wilson.

A Mention in Science Careers

Vijee Venkatraman has written a good article for Science Careers titled "When All Science Becomes Data Science", which mentions Software Carpentry.


— 2013-05-14 by Greg Wilson.

Git vs. Subversion and Feedback in General

Software Carpentry's mission is to help scientists teach other scientists how to be better programmers. If we want to do that successfully, we need to be scientists ourselves. In particular, we need to base what we teach on evidence, not anecdotes or personal preferences.

For example: we taught Git at the Toronto boot camp last week, and once again I think our learners would have absorbed more if we'd taught Subversion. Why? Well, take a look at this diagram by Oliver Steele (which I found on this page written by Nick Quaranto):

Git Transport

Four locations are in play, and eight different commands are used to move information around or compare what's in one place to another. Now look at the corresponding diagram for Subversion:

Subversion Transport

There are only three locations for people to keep track of, and the basic workflow involves only four commands. If you believe complexity is partially multiplicative (because people have to keep track of the interactions between things, as well as the things themselves), Git is at least twice as complex for people to understand. Slicing it another way, there are more opportunities for people to do the wrong thing with Git, and more they have to understand to undo it. And that's before we introduce branches...

But that's just my point of view, and the fact that I can wrap a plausible story around it doesn't make it true. Matt Davis and others believe they've been successful with Git in front of the same kinds of people. We need to find out who's right, so our major goal for the next three months is to poll and interview boot camp attendees to find out who was taught what, who tried what, who's still using what, and why. Caitlyn Pickens will be leading this effort, and many of you will get email from her in the next few weeks. When it arrives, please take a few minutes to tell us what you're actually doing, even if it's not what we told you to do—especially if it's not, because that'll tell us what we need to fix.


— 2013-05-10 by Greg Wilson.

More Detailed Feeback from Melbourne

The hosts of our February boot camp at the AMOS conference in Melbourne have collected some more detailed feedback from participants. I'm pleased that two thirds thought the content was just right, and even more pleased that 83% thought version control "must be taught".


How useful did you find the online software installation instructions?

76%Very useful: I required no assistance with installing the software
24%Somewhat useful: I required minimal assistance with installing the software
0%Not very useful: I required significant assistance with installing the software I was unable to get most of the software installed

How did you feel about the schedule?

Too earlyFineToo late
9:00am start3%93%3%
4:30pm finish0%97%3%

The lunch and tea breaks were:

3%Too short
93%A good length
3%Too long

What do you think is the ideal length of time for a boot camp?

3%1 day
33%2 days
50%3 days
13%1 week

Rate the following topics in terms of how important you think they are for a weather/climate science audience.

Must be taughtTake it or leave itTake it out
Intro to Python86%7%7%
Program design and testing97%3%0%
Version control83%14%3%
Regular expressions43%50%7%
Databases31%48%21%
Numpy57%32%11%

In general, you found the content:

0%Much too hard: I was struggling to keep up!
14%Slightly too hard
66%Just right
17%Slightly too easy
3%Much too easy: I was struggling to stay awake!

"Online office hours" is a service provided by Software Carpentry where you can get online assistance over a 2 hour period once a week. Which item best describes your current engagement with that service?

0%I've attended in the past but probably won't again
7%I've attended in the past and will do so again
55%I've never attended but probably will in future
38%I've never attended and probably never will

If a boot camp (of similar content) was held in conjunction with the AMOS conference in Hobart next February, do you think you would attend (i.e. as a refresher)?

18%Yes
32%No
50%Maybe

— 2013-05-03 by Greg Wilson.

All Posts By Date

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2004 0 0 0 0 0 0 0 0 0 0 0 1
2005 0 0 0 0 0 0 2 1 3 0 1 6
2006 10 11 4 5 2 1 3 4 0 2 2 1
2007 1 1 3 1 1 6 4 2 2 2 0 1
2008 0 4 4 4 7 3 6 4 2 2 7 6
2009 4 9 5 8 6 13 20 16 9 8 9 5
2010 7 4 10 11 24 41 32 12 17 24 15 23
2011 24 19 24 5 6 11 9 3 8 8 12 10
2012 15 37 28 26 31 21 9 13 18 30 25 22
2013 14 18 12 16 13 0 0 0 0 0 0 0

2013

May

2013-05-24: Planning for the Break
2013-05-24: Where We Are (More or Less)
2013-05-24: Feedback from the Oxford DTCs
2013-05-16: Stanford Bootcamp Recap
2013-05-17: Wrapping Up at UC Davis
2013-05-17: Experiences with the Oxford DTCs
2013-05-16: Announcing Hack4ac
2013-05-14: A Mention in Science Careers
2013-05-10: Git vs. Subversion and Feedback in General
2013-05-03: More Detailed Feeback from Melbourne
2013-05-03: Make It Easier to (Re)use Your Data
2013-05-02: Translucent Badges
2013-05-02: A Rational Computing Process: How and Why to Fake It

Apr

2013-04-30: Pre-Assessment Results
2013-04-29: An Update on Cumulative Enrolment
2013-04-27: Sound Software Competition
2013-04-24: Bootcamp Recap: Middle East and South Africa
2013-04-24: Manchester Once Again
2013-04-23: Software Carpentry at SciPy 2013
2013-04-19: Spreadsheets, Retractions, and Bias
2013-04-19: Feedback from Arizona
2013-04-16: Feedback from UC Berkeley
2013-04-16: Feedback from the EGI Forum
2013-04-08: A Bootcamp in Toronto May 9-10, 2013
2013-04-07: Announcing a Bootcamp for Women in Science and Engineering
2013-04-08: Evaluation Revisited
2013-04-08: Installation Revisited
2013-04-05: An Image Analysis Success Story
2013-04-03: Connecting Boot Camp Content to Motivation and Best Practices

Mar

2013-03-24: Using the IPython Notebook as a Teaching Tool
2013-03-17: Cumulative Enrollment
2013-03-17: Testing Image Processing
2013-03-15: Snowstorms and Blackouts in Virginia
2013-03-14: New Camps Coming Up
2013-03-13: Second Round at Lawrence Berkeley
2013-03-12: A New Testing Framework for MATLAB
2013-03-05: First Round at Lawrence Berkeley
2013-03-02: Teaching with ipythonblocks at UW
2013-03-01: Feedback from UW Room B
2013-03-01: Washington Went Well
2013-03-01: Alternative Teaching Models

Feb

2013-02-27: Workshop for High-Energy Physics at UCL, Part 2
2013-02-15: Expanding Our Boot Camp Types
2013-02-27: A Bootcamp for Women in Science and Engineering
2013-02-15: Wrapping Up in Melbourne
2013-02-14: Registration for Amsterdam Boot Camp is Open
2013-02-14: More News from the UK
2013-02-13: Second Dry-Run of DiRAC Driver's License Exam
2013-02-12: Partnering with the SSI
2013-02-11: Correctness Isn't Compelling
2013-02-11: UBC Went Well
2013-02-08: Macquarie Went Well
2013-02-06: We Have a Facebook Page
2013-02-03: Features and Scope in Open Courseware
2013-02-03: The Missing Side of the Triangle
2013-02-03: A Short Report from Tuebingen
2013-02-02: A Short Report from Utah State
2013-02-01: Next-Generation Sequencing Course 2013
2013-02-01: A Bunch of Bootcamps

Jan

2013-01-30: Teaching R at UBC
2013-01-30: A Boot Camp at Mozilla
2013-01-28: Novelty, Efficiency, and Trust
2013-01-24: Visualizing Nuclear Fuel Inventories
2013-01-23: How to Become an Instructor
2013-01-22: Record and Playback in the IPython Notebook
2013-01-21: Online Office Hours
2013-01-16: University of Chicago in January
2013-01-14: Montreal in January
2013-01-11: Teaching Commercially
2013-01-10: PLoS Ad for Software Carpentry
2013-01-05: The Art of Cold Calling
2013-01-04: Advice From a Newbie No More
2013-01-04: Why We Teach

2012

Dec

2012-12-23: Computer Science Curricula 2013
2012-12-21: Code of Conduct
2012-12-21: Sample Data Management Plans
2012-12-19: Minutes from 2012-12-19 All-Hands Meeting
2012-12-16: You've Shown Me the C, Now Where's the Python?
2012-12-15: Lorena Barba's Reproducibility PI Manifesto
2012-12-15: Three Non-trivial Use Cases for Git
2012-12-13: Two R Workshops at UBC in 2013
2012-12-12: Feedback from Edinburgh
2012-12-12: IPython Funding: Hurray!
2012-12-11: Some of the Things We've Learned About Teaching Git
2012-12-10: Things Are Going Well in Texas on Ada Lovelace's Birthday
2012-12-09: What To Work On In 2013
2012-12-08: Creating a Task List
2012-12-05: Sustainability
2012-12-05: Our First Hackathon
2012-12-05: Who Can Run a Software Carpentry Workshop?
2012-12-05: Moving Up and Moving Down
2012-12-05: Why Be an Instructor
2012-12-05: Six Years Later
2012-12-04: See You at PyCon 2013
2012-12-01: European Grid Infrastructure is Organizing a Software Carpentry Workshop

Nov

2012-11-30: Good News About Software Carpentry (and More)
2012-11-27: Alpha Testing Ideas for the IPython Notebook
2012-11-19: Who Wants To Build a Faded Example Tool for the IPython Notebook?
2012-11-19: The Tool (I Think) We Need To Do Peer Instruction Online
2012-11-17: Updating Our Reading List
2012-11-16: Who Wants To Write a Little Code?
2012-11-16: Making a Difference at LBL
2012-11-16: We Apologize for the Interruption in Our Service
2012-11-16: Matt Davis's Great Californian Adventure
2012-11-15: This Is What We Do
2012-11-14: A Mostly Successful Decade
2012-11-14: FOSDEM 2013
2012-11-13: Web 4 Science
2012-11-14: Workshop for High-Energy Physics at UCL
2012-11-13: Pre-Assessment
2012-11-07: More Oxford feedback
2012-11-06: More Tips
2012-11-05: An Administrative Note
2012-11-04: Winter School on Reproducible Research
2012-11-03: How to Help at a Boot Camp
2012-11-01: Charging and Being Charged
2012-11-01: Oxford Wrap-Up (with charts!)
2012-11-01: Pelican Guts: on content management for Software Carpentry
2012-11-25: Titus Brown on the Scripps Institute Boot Camp
2012-11-24: Cait Pickens on the Scripps Institute Boot Camp

Oct

2012-10-30: A List of Bioinformatics Courses
2012-10-30: Minutes from 2012-10-29 All-Hands Meeting
2012-10-29: Position Available: Director, Webmaking Science Lab, Mozilla
2012-10-28: Usability Testing and Instructional Design
2012-10-27: Why This Is Hard (Part Deux)
2012-10-26: Counting to Five (or, A Plan for Online Tutorials and What's Wrong With It)
2012-10-26: Two Self-Assessments
2012-10-26: Mozilla Web Literacies White Paper
2012-10-25: Prime Numbers, Biologists, and Data Visualization
2012-10-24: Feedback from Newcastle
2012-10-23: 25 Questions
2012-10-23: Key Points
2012-10-23: Twenty Percent
2012-10-22: Excel Isn't Intrinsically Evil
2012-10-22: Getting Credit
2012-10-22: Feedback from UC Berkeley
2012-10-21: Why Teaching People to Program Is Hard
2012-10-20: Feedback from Lawrence Berkeley Lab
2012-10-17: I Screwed Up (or, Why Automation Isn't Always a Good Thing)
2012-10-12: Why We Teach Version Control
2012-10-12: Rebuilding Redux
2012-10-10: Purdue
2012-10-10: Dark Matter, Public Health, and Scientific Computing
2012-10-05: Convergent Evolution
2012-10-05: UCL Researchers to Get Help with Software Development
2012-10-04: Transitioning to the IPython Notebook
2012-10-04: Wanted: An Entry-Level Provenance Library
2012-10-03: Best Practices for Scientific Computing
2012-10-02: How to Help at a Boot Camp
2012-10-01: What Would You Like in an Instructor's Guide?

Sep

2012-09-30: Oslo and Columbia
2012-09-30: The Real Hard Work
2012-09-29: Workshop at the University of Newcastle in October
2012-09-27: How to Run a Bootcamp (new and improved)
2012-09-26: Computational Thinking and Ice Floating in Bathtubs
2012-09-20: Why This Stuff Is Hard To Teach
2012-09-20: Feedback and wrap-up from York
2012-09-18: What's In Your Stack?
2012-09-18: Post-Mortem on the NGS Course
2012-09-16: Systematic Curriculum Design
2012-09-13: Number Crunching with Python: DC Python Workshop
2012-09-12: The Software Is Open (even if the interviews aren't)
2012-09-12: Patterns Wanted
2012-09-06: How Quickly Do Workshops Fill Up?
2012-09-04: Free As In Pretty Much Whatever You Want
2012-09-04: Not Really Disjoint
2012-09-04: Final Results of Demographic Survey
2012-09-02: Lifted by the Audience

Aug

2012-08-29: Linking Forward From a Bibliography?
2012-08-29: A Problem With Badges
2012-08-29: Please Help the Hunter Family
2012-08-27: An Interview with Titus Brown
2012-08-21: An Updated List of Upcoming Workshops
2012-08-20: What We Talk About When We Talk About Software Carpentry
2012-08-17: Who Are You?
2012-08-16: Alpha Test of Driver's License Exam
2012-08-14: A Question and Answer Matrix for Software Carpentry
2012-08-14: Interview about Software Carpentry (and Education)
2012-08-14: Applying Pedagogical Principles in This Course
2012-08-01: We're Going to Be Busy
2012-08-01: That Was Quick

Jul

2012-07-30: Record and Playback
2012-07-28: Software Carpentry Needs You!
2012-07-22: IPython Notebook + Towtruck + Etherpad + Slide Drive = Win
2012-07-21: How Robust Is Your Programming Language?
2012-07-21: Software Carpentry in Paris !
2012-07-19: Workshop wrap up from the Rutherford Appleton Laboratory
2012-07-17: Wrapping Up in Halifax
2012-07-10: Wrapping Up in Boston
2012-07-05: Independent Assessment of the Past Six Months

Jun

2012-06-27: Where We Are (June 2012 edition)
2012-06-27: A Supercomputing Driver's License
2012-06-27: Fortran Format Statements and Regular Expressions
2012-06-26: Pessimism and Doom
2012-06-26: Two Posts on Scientific Workflows
2012-06-26: Handling Variant Configuration Files
2012-06-25: If You Want to Teach, Isn't It Only Fair to Learn a Few Things First?
2012-06-20: Feedback from Johns Hopkins
2012-06-18: A Busy Week (And Schwag!)
2012-06-15: This Week's Tutorials
2012-06-15: Pretty Well Sums It Up
2012-06-14: All Entries for the Executable Paper Grand Challenge
2012-06-10: First Workshop on Maintainable Software Practices in e-Science
2012-06-08: But the Greatest of These Is...
2012-06-08: We Get Mail
2012-06-07: Tutorial: NumPy, SciPy, and matplotlib
2012-06-07: Ten Simple Rules
2012-06-04: What Skills Are Required to Implement Open Access?
2012-06-04: Software Carpentry: The E-Book Version?
2012-06-03: Git tutorial links
2012-06-01: Introduction to NumPy Tutorial

May

2012-05-30: A Poster for the Software Carpentry Workshop at INRIA
2012-05-31: Dictionaries are a Scientist's Friend
2012-05-29: How to Run a Bootcamp
2012-05-30: SoundSoftware 2012: Workshop on Software and Data for Audio and Music Research
2012-05-27: What to Read If You're Teaching Software Carpentry
2012-05-24: No CT Without PL
2012-05-24: Spot the Workshops
2012-05-24: Feedback from the University of British Columbia
2012-05-23: Alone and Misunderstood
2012-05-23: Responsible Conduct
2012-05-22: Citing Versions
2012-05-21: Being More Systematic About Publicity
2012-05-20: What's Wrong With All This?
2012-05-19: Space at Upcoming Events
2012-05-21: An Exercise With Matplotlib and Numpy
2012-05-18: The Most Important Scientific Result Published in the Last Year
2012-05-18: Feedback from Alberta
2012-05-17: Halifax in July
2012-05-16: And One More: Johns Hopkins in June
2012-05-15: Fooling the Internet
2012-05-15: Feedback from Newcastle upon Tyne
2012-05-15: Two Boot Camps in Ontario in July
2012-05-14: Solution to Indented List Problem
2012-05-12: Feedback from Michigan State
2012-05-11: Run My Code
2012-05-10: Fish and Bugs
2012-05-09: Boot Camp in Boston, July 9-10
2012-05-08: The Architecture of Open Source Applications: Volume 2
2012-05-04: UCL Bootcamp: Version Control Wrap-Up
2012-05-02: The Good and the Bad of It
2012-05-06: An Exercise With Functions and Plotting

Apr

2012-04-30: Better Across the Pond?
2012-04-28: Stop Me If You've Heard This One
2012-04-26: Solution to Sets and Dictionaries Exercise
2012-04-20: An Exercise With Sets and Dictionaries
2012-04-19: Three Years Later
2012-04-18: Where Next?
2012-04-18: Behind the Scenes (or, the Ethics of Cultivating Discontent)
2012-04-17: GitHub for Education
2012-04-17: Halfway Home
2012-04-17: In Search of Prior Arguments
2012-04-16: Utah State University Wrap-Up
2012-04-15: Data Munging with Regular Expressions
2012-04-14: We're Neutral (but Not Really)
2012-04-12: Solution to Data Merging with Dictionaries
2012-04-12: Video Update
2012-04-10: Straw Man for Web Programming
2012-04-09: A Future Student
2012-04-06: On Crossing Australia (or, Further Thoughts on What to Teach Researchers about the Web)
2012-04-06: Titus Brown Finds a Theme
2012-04-05: Lessons Learned at the University Of Chicago
2012-04-04: Solution to Data Checking Problem
2012-04-03: Upcoming Events for Webmaking Instructors
2012-04-03: Solution to the First Image Processing Homework
2012-04-03: A Four-Day Curriculum
2012-04-01: What to Teach Researchers About the Web
2012-04-01: Sending Email Back in Time

Mar

2012-03-30: What We Teach in Two Days
2012-03-30: Maintaining Momentum
2012-03-30: Wrapping Up in Oakland
2012-03-28: Boot Camp in Paris June 28-29, 2012
2012-03-28: Wrapping Up MBARI Workshop
2012-03-23: Object-Oriented Programming in Fortran 2003
2012-03-18: And While We're Stuck Here With 21 Seconds Worth of Music to Fill...
2012-03-18: The Dark Matter of Computational Science
2012-03-16: Wrapping Up the STScI Course
2012-03-16: Thank You, Enthought
2012-03-15: First Homework for Indiana Students (and a few from Ontario)
2012-03-14: Where Next for the Next-Gen Course (and Software Carpentry)?
2012-03-14: Ask the CompuScienceGeek?
2012-03-14: How We're Doing
2012-03-12: The IPython Notebook
2012-03-09: What's the Model, Kenneth?
2012-03-09: Our Indiana U Workshop Went Well
2012-03-12: The Trieste Workshop, One Week Later
2012-03-07: I Resemble That Remark
2012-03-07: Software Carpentry Meetup at PyCon
2012-03-05: Programs as Experimental Apparatus
2012-03-05: Open Education Week
2012-03-05: Help Us Write Assessment Questions
2012-03-04: Performance Curves, Curriculum Design, and Trust
2012-03-05: Happy People
2012-03-01: Inscight from Trieste
2012-03-01: ULP (or, This is tricky and perhaps profound)
2012-03-01: Toronto Boot Camp February 2012: How We Did

Feb

2012-02-29: Worth Reading, Worth Watching
2012-02-28: Reproducibility Redux
2012-02-27: Badges (Finalized)
2012-02-27: Frustration (continued)
2012-02-24: Trieste, Italy Workshop - Week 1
2012-02-23: Should We Relocate Our Repository?
2012-02-22: Watch Me: Trial Run
2012-02-22: Granules of Research
2012-02-22: What Deep Thoughts Look Like
2012-02-21: Assessment Redux
2012-02-21: Badges (Mark 1)
2012-02-21: Why *Not* Use Python
2012-02-21: Hello from Trieste!
2012-02-24: Fourth (or Sixth) Online Tutorial
2012-02-19: A Flash (well, MP4) from the Past
2012-02-16: How They See Us, Part N
2012-02-15: Watch Me: Volunteers Wanted
2012-02-15: Analyzing Next-Generation Sequencing Data
2012-02-15: And Speaking of New...
2012-02-15: Slide Drive
2012-02-14: Stack Underflow?
2012-02-14: New Kinds of Content
2012-02-13: Our New Look
2012-02-13: Advertising Flyer
2012-02-13: How Many Legs Does Science Have?
2012-02-13: Formatting Revisited
2012-02-12: Pre-Workshop Questionnaire
2012-02-10: Audrey Watters on Software Carpentry
2012-02-10: Advanced Scientific Programming in Python
2012-02-09: Comparing Software Carpentry to CS Principles
2012-02-09: Multiple Pitches
2012-02-07: Why We Don't Teach Parallel Computing in Software Carpentry
2012-02-03: We're Going to Be Busy
2012-02-03: First Online Tutorial
2012-02-02: Software Carpentry in a Minute and a Half
2012-02-02: Where To Host Q+A and Discussion?
2012-02-01: Re-doing the Three-Minute Pitch

Jan

2012-01-31: Reorganizing This Web Site
2012-01-29: Learners and Their Needs
2012-01-29: Terminology
2012-01-26: Our Long Tail
2012-01-26: Never Mind the Content, What About the Format?
2012-01-25: The Big Picture
2012-01-24: Take Out Agile, and Add...What?
2012-01-24: Test-Driven Public Speaking
2012-01-24: Badging
2012-01-23: Revising the Curriculum
2012-01-20: The First Boot Camp of 2012
2012-01-15: Why Is This Hard?
2012-01-13: The What, Why, and How of Boot Camps
2012-01-11: Sloan Foundation Grant to Software Carpentry and Mozilla
2012-01-04: Settings Our Sights a Little Bit Lower

2011

Dec

2011-12-31: The Fire Last Time
2011-12-31: Some Responses to Some Comments
2011-12-30: Fork, Merge, and Share
2011-12-29: Yet Another Survey
2011-12-24: What Success Looks Like Five Years Out
2011-12-24: Organizing Instruction and Study to Improve Student Learning
2011-12-20: It Just Keeps On Hurting
2011-12-20: What I've Learned So Far
2011-12-13: New Features in Excel for Scientists
2011-12-07: How to Teach Webcraft and Programming to Free-Range Students

Nov

2011-11-29: Three Short Thoughts
2011-11-25: Building a Bibliography
2011-11-19: Knowledge of the Second Kind
2011-11-18: Accessible to All?
2011-11-18: Quantifying Installation Costs
2011-11-18: Show Me the Data
2011-11-14: Clearing Up Code
2011-11-14: Surviving the Tsunami
2011-11-11: Successful Bootcamp
2011-11-08: The Best vs. the Good
2011-11-08: The Ladder of Abstraction and the Future of Online Teaching
2011-11-06: Nirvana on Monday Night

Oct

2011-10-22: Research Without Walls
2011-10-21: Slides from Hans-Martin
2011-10-19: American Scientist Article on Empirical Studies of Software Engineering
2011-10-14: Updating to HTML 5
2011-10-14: The Science Code Manifesto's Five C's
2011-10-07: Four New Episodes on Databases Using Microsoft Access
2011-10-05: Revamping This Site
2011-10-04: 2011 Software Carpentry Bootcamp Sold Out!

Sep

2011-09-22: Plus Ca Change...
2011-09-20: I'm Not Normally Lost for Words
2011-09-17: The Simplest Web That Could Possibly Work
2011-09-13: Progress Of A Sort
2011-09-08: What Happens When You Install Something?
2011-09-05: Where is the Puck Going to Be?
2011-09-02: Teaching Security to Scientists
2011-09-01: Renting Cycles Has Never Been Easier (For Some Definition of 'Easier')

Aug

2011-08-17: Demos Reinforce Errors, and Confusion is Good
2011-08-08: Introducing Programming a Different Way
2011-08-04: Computing in Physics 101: What We're Doing Wrong

Jul

2011-07-22: Software Carpentry in HPCWire
2011-07-20: And Speaking of Titus Brown...
2011-07-20: How Much Do You Need?
2011-07-20: Material from Newcastle Workshop Now Available
2011-07-20: The Case of Abinit
2011-07-11: Architecture of Open Source Applications Webinars Tuesday July 13 and 20
2011-07-10: Stanford Course Went Well
2011-07-06: Reproducible Computational Geophysics
2011-07-01: Mentioned in Nature Methods

Jun

2011-06-29: It Will Never Work in Theory
2011-06-22: Michael Nielsen Talks About Open Science in San Francisco on June 29
2011-06-20: Doing the Math
2011-06-18: Health Informatics Resources
2011-06-15: New Episode: MATLAB Structs and Cell Arrays
2011-06-14: A New Look
2011-06-10: Audio Processing in Python
2011-06-07: Practical Computing for Everyone (not just biologists)
2011-06-04: Programming for Scientists at Newcastle University: June 20, 2011
2011-06-02: Five on Systems Programming
2011-06-01: Workshop at CEF'11

May

2011-05-23: 'The Architecture of Open Source Applications' is Now Available
2011-05-14: More Interested in the Asides
2011-05-13: Damn the Torpedoes (but I could use some help navigating)
2011-05-06: The Architecture of Open Source Applications
2011-05-03: The Hacker Within at MSU in June
2011-05-02: Managing Data

Apr

2011-04-23: Chapters
2011-04-22: In Praise of Street Fighting
2011-04-18: Holding Up a Mirror
2011-04-11: Prototyping
2011-04-09: By The Numbers

Mar

2011-03-31: Harder Than It Should Be
2011-03-31: Using Bein
2011-03-30: Practical Computing for Scientists at Stanford
2011-03-30: Spring 2011 Course Over
2011-03-26: And I'm on a Horse
2011-03-24: A Better Way to Teach Programming to Scientists
2011-03-23: Our First Episode on Microsoft Access
2011-03-22: I'd Settle for 0.1%
2011-03-22: You'll Need a Large Screen
2011-03-21: Using a Debugger
2011-03-21: Videos of Autumn School Lectures
2011-03-18: On a Personal Note...
2011-03-17: Questions and Answers
2011-03-16: Graph Layout, Models vs. Views, and Computational Thinking
2011-03-16: Next-Generation Sequencing Course at MSU
2011-03-15: Twenty Questions (Minus Two)
2011-03-15: Call for Participation
2011-03-12: What To Demand
2011-03-11: Science Illustrated
2011-03-11: Musing About Reorganization
2011-03-09: High Tech That Looks Low Tech
2011-03-09: Advanced Scientific Programming in Python
2011-03-07: Literate Programming
2011-03-01: Tuple Spaces (or, Good Ideas Don't Always Win)

Feb

2011-02-25: We Got a Mention in Comm. ACM
2011-02-24: An Easy Place to Start: Systems Programming
2011-02-23: Ask, And Ye Shall Receive
2011-02-22: What Better Looks Like
2011-02-19: Three More Episodes on MATLAB
2011-02-18: Scientific Computing Podcast
2011-02-18: Mirroring Software Carpentry
2011-02-17: Reddit on Scientific Programming
2011-02-16: I Want Their Software
2011-02-16: How to Contribute
2011-02-15: Top Ten Why Nots
2011-02-15: First Four MATLAB Episodes
2011-02-14: Audio for Three Software Engineering Episodes
2011-02-14: Two More Episodes on Spreadsheets
2011-02-11: Updates to Spreadsheet Lecture
2011-02-08: What Computational Science Means to Me
2011-02-03: Scripts for Two More Software Engineering Episodes
2011-02-02: Three Months, Two Spikes, One Conclusion
2011-02-01: First Episode on Software Engineering

Jan

2011-01-31: A Competence Matrix for Software Carpentry
2011-01-27: Notes Toward a Lecture on High-Performance Computing
2011-01-27: Research Study: How Do You Test Your MATLAB?
2011-01-27: Boot Camp
2011-01-26: Fighting Spam
2011-01-26: The Case Against Peer Review
2011-01-26: Thinking Like the Web
2011-01-26: Software Carpentry Sprint in July
2011-01-21: Scientists Aren't Stupid: Software Is
2011-01-20: MIT Rethinking OpenCourseWare
2011-01-20: How to Cite Software Carpentry
2011-01-19: Making System Administrators' Lives Easier
2011-01-19: Version Control and Newline Conventions
2011-01-18: Exercises for Shell Posted
2011-01-17: Demographics (part two)
2011-01-16: Demographics (part one)
2011-01-14: Our Funding Pitch
2011-01-14: The Hacker Within
2011-01-10: The Spring 2011 Course Begins
2011-01-10: Slower Than Expected
2011-01-10: Software Carpentry in One Picture and Five Words
2011-01-09: Funding (A Plea for Contacts)
2011-01-06: What I Learned From Software Carpentry
2011-01-06: First Half of Lecture on Object-Oriented Programming

2010

Dec

2010-12-31: Software Carpentry Boot Camp Jan 12-14 in Madison
2010-12-30: More Detailed Outline for HPC Lecture
2010-12-27: Open Research Computation
2010-12-27: Elimination
2010-12-26: Local Subversion Repositories
2010-12-23: Extended Examples
2010-12-21: Compute Canada's 'Strategic' Plan Isn't
2010-12-20: Executable Papers
2010-12-15: Building a Recommendation Engine with NumPy
2010-12-14: Presents for the Holidays
2010-12-13: Slides for First Five OO Episodes Online
2010-12-10: Winter 2011 Signup vs. Spam Filters
2010-12-10: Performance and Parallelism
2010-12-09: Where Are My Keys?
2010-12-08: How Do You Manage a Terabyte?
2010-12-07: Approaching Objects from a New Direction
2010-12-06: Pins, Balls, and Arbitrary Decisions
2010-12-02: Peer to Peer
2010-12-02: Programmer Competency Matrix
2010-12-02: Prerequisites (or, When to Say No)
2010-12-02: Red-R
2010-12-02: Cast Your Votes
2010-12-02: Fall 2010: What Went Right, What Went Wrong

Nov

2010-11-30: First Four Episodes on Multimedia
2010-11-29: Winter 2011 Online Course Now Full
2010-11-26: Next Part of Persistence Essay Online
2010-11-25: Hours So Far
2010-11-23: Phylogenetic Trees
2010-11-23: Four Episodes on Matrix Programming
2010-11-21: Repository URL Change
2010-11-20: Mid-term Quiz Results
2010-11-19: Now Annotated
2010-11-18: Summary of student check-ins
2010-11-17: New Section for Essays
2010-11-17: 'Making Software' Screencast
2010-11-16: Ratios and Rework
2010-11-07: Counting Things (Part 2)
2010-11-05: Done In London

Oct

2010-10-31: Counting Things (Part 1)
2010-10-30: Would You Prefer...
2010-10-30: Need Something to Debug
2010-10-30: Dubois on Maintaining Correctness
2010-10-29: Provenance (Or, What We Didn't Quite Get to at the Met Office)
2010-10-28: Feedback at UKMO
2010-10-28: How We've Helped
2010-10-27: ComputerWorld Canada Educator of the Year
2010-10-24: Configuration Files
2010-10-21: Slides Available as PDF and PPT
2010-10-18: Final Four Episodes of Python Lecture
2010-10-18: How Did You Find Us?
2010-10-17: Ratings Revised
2010-10-15: Six More Python Episodes
2010-10-14: Three Python Screencasts Up
2010-10-14: Nature Article on Scientific Programming
2010-10-14: Dexy
2010-10-13: Three More Episodes on Spreadsheets
2010-10-12: Python Lecture Coming Online
2010-10-05: Using Subversion from the Command Line
2010-10-14: Five Rules for Computational Scientists
2010-10-04: Aaaand We're Off!
2010-10-03: What Questions Do You (Frequently) Ask?
2010-10-03: Do You Use Software Carpentry?

Sep

2010-09-30: Ten Short Papers Every Computational Scientist Should Read
2010-09-30: Tracking Utility and Impact
2010-09-28: A New Site Design
2010-09-23: Software Carpentry at UCSF
2010-09-22: Response Has Been Overwhelming
2010-09-21: I'm No Graphic Artist...
2010-09-20: Your Favorite Running Examples?
2010-09-16: Survey: Help Needed
2010-09-15: Five Episodes on Make
2010-09-15: Testing Scientific Software
2010-09-14: Software Carpentry Offered Online in Fall 2010 (for Ontario students)
2010-09-13: Will America's Universities Go The Way Of Its Car Companies?
2010-09-09: And For My Next Trick...
2010-09-08: Slides for the First Four Episodes on Make
2010-09-06: Getting the Source
2010-09-03: Eight Episodes on the Unix Shell
2010-09-01: Three More Sets of Slides

Aug

2010-08-31: Five Episodes on the Shell (and Three to Come)
2010-08-27: Four More Screencasts on Testing
2010-08-26: Another Update on What You Want
2010-08-23: What Don't You Understand That You'd Like To?
2010-08-19: Slides and Scripts for the Next Two Episodes
2010-08-16: 43% Independent
2010-08-12: Interview with Cameron Neylon
2010-08-05: Software Carpentry for Audio and Music Researchers
2010-08-05: An Answer That Most Students Won't Understand
2010-08-03: A Question About Nose
2010-08-03: Open Source, Open Science in 1999
2010-08-02: Interview with Sergey Fomel

Jul

2010-07-31: Interview with Davor Cubranic
2010-07-30: Stats for July
2010-07-30: A Little Bit of Javascript
2010-07-29: Survey Update
2010-07-29: Two More Episodes on Version Control
2010-07-28: Mark Guzdial on Software Carpentry
2010-07-26: Second Lecture on Version Control
2010-07-24: Introduction to Version Control
2010-07-23: Strictly Speaking, This Isn't Part of Testing
2010-07-22: First Episode of Testing Lecture
2010-07-21: Popular, Fast, or Usable: Pick One
2010-07-20: A Note on Tools
2010-07-20: Five... Five... Five Scripts in One!
2010-07-20: Interview with The Hackers Within
2010-07-20: Interview with STSci's Perry Greenfield
2010-07-19: Script for Introduction to Version Control
2010-07-18: An Interview with Hans Petter Langtangen
2010-07-18: A Gentle Introduction
2010-07-16: Clip Art
2010-07-15: Survey Results
2010-07-14: Two New Episodes on Dictionaries
2010-07-13: Interview: Andrew Lumsdaine of Indiana University
2010-07-13: Traffic
2010-07-13: A Shorter Version of the Sets and Tuples Episode
2010-07-11: Interview with Michigan State's Titus Brown
2010-07-10: Which Topics Are Most Important to You?
2010-07-10: HPC and Programmability
2010-07-08: Interview: SciNet's Daniel Gruner
2010-07-08: Two Episodes on Sets
2010-07-07: Using Science to Design This Course
2010-07-06: Hubs, Spokes, and Gonzo Programming Skills
2010-07-06: That's, Uh, Pretty Ambitious

Jun

2010-06-29: The Violas of Programming
2010-06-28: Last Episode on Sets and Dictionaries Posted First
2010-06-27: Four Down---What Next?
2010-06-25: Final Episode of Regular Expressions Lecture Now Online
2010-06-24: SIAM News Article About Software Carpentry
2010-06-24: Another Example of small-p Patterns
2010-06-24: Eric Lander on Genomics
2010-06-23: Software Carpentry in Three and a Half Minutes
2010-06-23: Software Developer: Audio and Digital Music
2010-06-22: Episode 4 on Regular Expressions
2010-06-21: A Little Bit of Theory
2010-06-21: Interview with Microsoft's David Rich
2010-06-19: Second Lecture on Regular Expressions
2010-06-18: For World Cup Fans (and Everyone Else)
2010-06-18: People You Don't Want On Your Team
2010-06-18: Our First Few Exercises
2010-06-18: First Half of Spreadsheets Lecture Now Online
2010-06-17: Let's Try That Again
2010-06-16: A Voice from the Back of the Room
2010-06-16: Is Live Coding Worth It?
2010-06-15: Next-Gen Sequencing Course at MSU: It Went Well
2010-06-15: Glossary and License Online
2010-06-14: Interview: Mark Plumbley at Queen Mary University of London
2010-06-12: The Cowichan Problems
2010-06-11: Thought for the Day
2010-06-11: Interview: David Jackson at the UK Met Office
2010-06-11: Interview: SHARCNET's Hugh Couchman
2010-06-11: Counting Things
2010-06-10: Our Lecture on Databases is Now Online
2010-06-10: The Big Picture (version 3)
2010-06-10: Interview: Jim Graham of Scimatic
2010-06-09: Reorganizing Content
2010-06-08: Episode 11: Making It Fast
2010-06-07: The Big Picture (version 2)
2010-06-07: Testing Invasion Percolation
2010-06-04: Concept Map
2010-06-04: Refactoring Invasion Percolation
2010-06-03: If You Want to Look Ahead...
2010-06-03: Assembling a Program
2010-06-01: Program Design: the Second Instalment
2010-06-01: Who Reports On The Other 97 Per Cent?

May

2010-05-31: Program Design: the First Third
2010-05-29: Jim Graham on Reproducibility
2010-05-27: Badges and Stars
2010-05-28: Teaching databases by example
2010-05-25: Archiving Experiments to Raise Scientific Standards
2010-05-19: Evaluating Methods and Protocols
2010-05-18: We'll Know We've Succeeded If...
2010-05-17: Day 11: Slides
2010-05-14: Day 10: Closed Captioning
2010-05-14: Why Most Scientists Don't Like Computers
2010-05-13: Day 9: Programming
2010-05-13: A Word (Or Three) From Our Sponsors
2010-05-13: Day 8: Exercises (with a screencast)
2010-05-12: Day 7: Mini-screencasts
2010-05-10: Day 6: Screencast With Point-Form Notes
2010-05-10: Why We're Self-Hosting
2010-05-09: Microsoft
2010-05-07: Day 5: A Different Kind of Screencast
2010-05-06: Day 4: First Preliminary Alpha Test Etc. Screencast
2010-05-05: A Question About Documentation
2010-05-04: Day 2: More Sticky Notes
2010-05-04: Day 1: Shuffling Sticky Notes Around
2010-05-03: Setting Up a New Windows Machine
2010-05-02: T Minus One

Apr

2010-04-19: Apologies for the Flurry of Re-Posts
2010-04-16: File Sharing for Scientists
2010-04-15: Scimatic Sponsorship
2010-04-12: More on Instructional Design
2010-04-12: Teaching Open Source
2010-04-11: Measuring Science
2010-04-08: Software Carpentry for Economists in Mannheim This Autumn
2010-04-08: Platforms
2010-04-04: Feedback and Boundaries
2010-04-01: Simon Singh Wins (and So Does Science)
2010-04-01: Models To Imitate

Mar

2010-03-31: Periodic Table of Science Bloggers
2010-03-30: Formats
2010-03-29: What's Not on the Reading List
2010-03-28: Recommended Reading
2010-03-26: Instructional Design
2010-03-26: Online Delivery
2010-03-25: Software Carpentry Version 4 is a Go!
2010-03-25: Summer Course: Analyzing Next-Generation Sequencing Data
2010-03-23: Now on Twitter
2010-03-11: How Much Of This Should Scientists Understand?

Feb

2010-02-28: Panton Principles
2010-02-25: Eighty Per Cent!
2010-02-22: BEACON Funded!
2010-02-12: Two Views

Jan

2010-01-24: It Seems That Everyone Cares
2010-01-20: Big Science == Big Skills Gap
2010-01-18: Was Designed To, But Didn't
2010-01-13: Whatcha Gonna Do When They Come For You?
2010-01-13: Podcast with Jon Udell
2010-01-10: How We Got Here, and Where We Are
2010-01-07: New Challenges

2009

Dec

2009-12-30: Osmosis is Just a Fancy Name for Failure
2009-12-27: Dudley and Butte on Software Skills
2009-12-19: NSF Programs
2009-12-18: Double Standards
2009-12-11: Why Opening Up (Probably) Wouldn't Help

Nov

2009-11-28: Thanks, Jamie
2009-11-26: Caesar's Wife
2009-11-24: Tutorials Start This Week
2009-11-22: Serendipitous and Unexpected
2009-11-18: Special Issue of Computing in Science and Engineering
2009-11-15: Cloud Computing for Beginners
2009-11-13: Packaging
2009-11-06: Python in Science
2009-11-01: Our Target Audience

Oct

2009-10-30: By Popular Request...
2009-10-23: Cryptography Isn't Security
2009-10-21: Should Modeling Be Part of This Course?
2009-10-21: Creating New Niches
2009-10-16: Revised Plan
2009-10-08: Videos from Symposium Are Now Online
2009-10-06: Comments on Course Reorganization
2009-10-05: The Hacker Within

Sep

2009-09-29: A Strange Obsession
2009-09-24: Presentation, Presentation, Presentation
2009-09-22: Grant Proposal
2009-09-21: Another Reason to Care About Provenance
2009-09-18: Updated Outline for Revised Course
2009-09-15: Partial Outline of New Version of Course
2009-09-11: Job Opening: MITACS Scientific Coordinator
2009-09-11: Two Links
2009-09-05: R for Programmers?

Aug

2009-08-30: Is The Future Waving At You?
2009-08-26: How Important is Geospatial Data to You?
2009-08-24: Science and JoVE
2009-08-24: Bad News and Good News
2009-08-24: Playing Safe
2009-08-24: Who Owns Your Data?
2009-08-23: The Delight Is In The Details, Too
2009-08-21: The Big Picture
2009-08-15: It's Like Not Wearing Your Cleats in the House
2009-08-15: You Can Do a Lot Without Programming
2009-08-06: American Scientist Article on How Scientists Use Computers
2009-08-04: The Ice Cream Test
2009-08-03: What *Is* Open Science?
2009-08-03: Guest Speakers' Slides Now Available
2009-08-02: Next Steps
2009-08-01: Post-Mortem

Jul

2009-07-31: Day[-2]
2009-07-31: A Good Afternoon
2009-07-29: Every Day Is a Big Day...
2009-07-28: Day 11 and Day 12
2009-07-27: Where This Course Came From
2009-07-26: Martin Fenner on SciBarCamp
2009-07-24: Day 10 Done - and With It, Week 2
2009-07-24: Day 9
2009-07-22: Day 8: Getting It Right
2009-07-22: Day 7: Lots More Objects
2009-07-21: Elsevier's Future, Version 0.1
2009-07-21: Day 6: Theory and Practice
2009-07-19: Quantum to Cosmos: October 15-25 in Waterloo
2009-07-19: Day 5
2009-07-17: Day 4
2009-07-16: Day 3
2009-07-15: Day 2
2009-07-13: Aaaand They're Off!
2009-07-10: See You Monday!
2009-07-04: Registration for July 29 Talks is Now Open

Jun

2009-06-29: Quality Control and Traceability
2009-06-29: The Environmental e-Science Revolution
2009-06-29: Ready for Proofreading
2009-06-25: Updating the License
2009-06-24: Topics and Schedule
2009-06-23: Another New Version of the Slides
2009-06-15: And Speaking of Sightings...
2009-06-15: Sightings
2009-06-15: Neylon's Head in the Clouds
2009-06-02: Software Carpentry in Edmonton July 13-31
2009-06-02: Two Spots Left in Toronto
2009-06-01: Big Code vs. Science 2.0
2009-06-01: SECSE Workshop

May

2009-05-12: Error Handling
2009-05-11: Links for Summer Interns
2009-05-09: How Scientists Use Computers: Survey Part 2
2009-05-06: Topics and Schedule Posted
2009-05-04: Entrance Requirements
2009-05-01: What If Scientists Didn't Compete?

Apr

2009-04-28: Empirical Software Engineering and Scientific Computing
2009-04-27: Madagascar Course in Delft June 12-13
2009-04-27: Firming Up Course Goals
2009-04-23: What Supervisors Need To Know
2009-04-08: We've Started a FAQ
2009-04-08: Software Carpentry in Alberta
2009-04-03: Cameron Neylon on the Three Opens
2009-04-01: Software Carpentry in Toronto July 13-31 2009

Mar

2009-03-30: User Stories
2009-03-25: Inference for R
2009-03-25: Open Notebook Science Badges
2009-03-17: Legal Frameworks for Reproducible Research
2009-03-02: Open Science and Autism's False Prophets

Feb

2009-02-23: Das Kapital, Computational Thinking, and Productivity
2009-02-18: Computer Supported Collaborative Science
2009-02-18: Open Science Panel at Columbia
2009-02-16: Enough Players to Hand Out Medals
2009-02-11: MTEST
2009-02-11: Carl Zimmer's Readers' Reading List
2009-02-11: Python Textbooks for Biotech
2009-02-06: Sharing Data Isn't That Easy
2009-02-04: Cameron Neylon Says Interesting Things

Jan

2009-01-30: 'Communicate First, Standardize Second'
2009-01-27: Web Native Lab Notebooks
2009-01-23: A New Kind of Big Science
2009-01-10: I *Want* To Be A Number

2008

Dec

2008-12-31: Time to Freshen It Up
2008-12-26: Things I'd Like To Finish In the Next 489 Days
2008-12-24: A Healthy Dose of Scepticism
2008-12-19: The National Academy Would Like to Hear From You
2008-12-19: Google Pulls the Plug on Scientific Data Sharing Project
2008-12-10: Three Reasons to Distrust Microarray Results

Nov

2008-11-30: Igor, Connect the Electrodes!
2008-11-21: SECSE'09 Call for Papers
2008-11-20: Getting the Science Right---Or At Least, Less Wrong
2008-11-17: Science Lessons for MPs
2008-11-16: What Sciences Are There?
2008-11-04: One Good Survey Deserves Another
2008-11-02: 1731 People

Oct

2008-10-27: Finding and Re-using Open Scientific Resources
2008-10-15: Surveying Scientists' Use of Computers

Sep

2008-09-11: Science in the 21st Century
2008-09-04: Science 2.0: the Future of Online Tools for Scientists

Aug

2008-08-22: Bil Lewis Works With Biologists...
2008-08-13: Data Provenance Challenge
2008-08-11: SciFoo, eGY, and Splitting
2008-08-01: They're Breeding Like Rabbits

Jul

2008-07-28: Next Lecture?
2008-07-23: Badge of Reproducibility
2008-07-23: Quick Quiz to Measure What Scientists Know
2008-07-22: Reviving the Software Carpentry Mailing List
2008-07-19: Badge of Honor?
2008-07-01: Kevin's Been Busy

Jun

2008-06-13: What a Proposal Looks Like
2008-06-06: Faking Results
2008-06-03: Three Weeks and Change

May

2008-05-30: Programming and Scientific Education on Slashdot
2008-05-27: Reminded of the Difference Once Again
2008-05-25: Interviewed by Jon Udell
2008-05-21: Why Don't We Do This?
2008-05-16: But I Was Gone Less than 48 Hours!
2008-05-15: SE-CSE Workshop
2008-05-05: Those Who Will Not Learn From History...

Apr

2008-04-14: SPOC
2008-04-10: Three Studies (Maybe Four)
2008-04-02: Summer Plans for Software Carpentry
2008-04-02: The Retractions Just Keep Coming In

Mar

2008-03-31: Meet the New Flaw
2008-03-26: Nice Quote
2008-03-07: Survey: Silent Errors in Scientific Code
2008-03-06: LearnHub Launches with Software Carpentry Front and Center

Feb

2008-02-26: Scientific Groupware Revisited
2008-02-20: O'Reilly Creating a Web Version of Mathematica
2008-02-14: Grumpy Minds Think Alike
2008-02-02: SciBarCamp in Toronto March 15-16

2007

Dec

2007-12-09: Python Supercomputing Statistics

Oct

2007-10-26: The Burning Man of HPC
2007-10-02: Doomed to Repeat It

Sep

2007-09-25: Another Sighting of Software Carpentry
2007-09-05: Openness and (the promise of) XML

Aug

2007-08-31: Random Survey about HPC
2007-08-07: How I'm Doing

Jul

2007-07-31: How Not to Collaborate
2007-07-18: Computational Education for Scientists
2007-07-05: Win a Trip to Reno!
2007-07-04: Another Sighting of Software Carpentry

Jun

2007-06-27: Two Studies of ASCI (and no, that's not a typo)
2007-06-26: Software Carpentry at LLNL
2007-06-20: Software Carpentry Screencasts by Chris Lasher
2007-06-20: Inspirational Videos
2007-06-18: Nature Precedings
2007-06-11: Praising the Good

May

2007-05-05: Computational Scientists Still Don't Get It

Apr

2007-04-02: Titus Brown Teaching Software Carpentry

Mar

2007-03-19: Sign Error: Five Papers Retracted
2007-03-11: SciPy'07 Dates Announced
2007-03-10: Reproducibility of Computational Results

Feb

2007-02-07: Software Carpentry Screencasts

Jan

2007-01-18: Software Carpentry Usage in December

2006

Dec

2006-12-05: YouTube for Data

Nov

2006-11-28: Software Carpentry article in CiSE
2006-11-02: Software Carpentry continues to grow

Oct

2006-10-31: Computational Result Retracted
2006-10-26: German Version of 'Bottleneck'

Aug

2006-08-17: Oh My God It's Django!
2006-08-17: SciPy'06: First Morning
2006-08-16: SciPy and Software Carpentry
2006-08-04: HPCWire Interview on Software Carpentry

Jul

2006-07-30: Design Patterns in Scientific Software
2006-07-20: The Parallel Tools Platform
2006-07-14: Software Carpentry 3.0

Jun

2006-06-25: Software Carpentry's new home

May

2006-05-05: Revised Lecture on Teamware
2006-05-03: Software Carpentry 1111

Apr

2006-04-28: Corrections Done
2006-04-17: Zipf's Law of Feedback
2006-04-09: 341 Words
2006-04-05: New Security Lecture Up
2006-04-04: Integration and XML Lectures

Mar

2006-03-26: 2020 Hype
2006-03-06: Web Server Programming Lecture Is Up
2006-03-03: Client-Side Web Programming Lecture
2006-03-02: Last Two Lectures Are Up

Feb

2006-02-23: Database Lecture is Up
2006-02-22: Second Lecture on Testing Now Online
2006-02-21: What Else for Software Carpentry?
2006-02-21: Second Lecture on Object-Oriented Programming
2006-02-20: AAAS Annual Meeting 2006
2006-02-14: Data Lineage
2006-02-14: Lecture on Binary Data
2006-02-12: Regular Expressions Lecture is Up
2006-02-10: Software Carpentry Design Lecture
2006-02-06: First Lecture on Object-Oriented Programming Is Up
2006-02-02: Debugging Lecture

Jan

2006-01-29: Fourth Python Lecture for Software Carpentry
2006-01-24: Quality Assurance Lecture Now Available
2006-01-23: Programming Style Lecture Has Been Revised
2006-01-23: Third Software Carpentry Python Lecture on the Web
2006-01-18: Second Python Lecture Now on the Web
2006-01-15: Intro Python Lecture Available
2006-01-11: Build Lecture Is Up
2006-01-09: Two More Revised Software Carpentry Lectures
2006-01-04: First Shell Lecture for Software Carpentry is Up
2006-01-02: Software Carpentry Introduction revised and on the web

2005

Dec

2005-12-28: $67 million a year
2005-12-27: New Year's Schedule for Software Carpentry
2005-12-23: Procrastination: One of the Few Things in Life Nicer Than Toast
2005-12-11: Maintaining Correctness
2005-12-09: American Scientist article on Software Carpentry
2005-12-08: Executive Version of Software Carpentry Course

Nov

2005-11-04: Workshop at AAAS '06

Sep

2005-09-21: Software Carpentry at the AAAS
2005-09-20: Day 9
2005-09-14: Software Carpentry: First Meeting

Aug

2005-08-22: Software Carpentry at Indiana University

Jul

2005-07-29: Software Carpentry course in Nature
2005-07-08: Software Carpentry notes are up

2004

Dec

2004-12-30: Python Software Foundation Grant