Blog

Announcing the Mozilla Science Lab

We're very excited to announce the launch of the Mozilla Science Lab, a new initiative that will help researchers around the world use the open web to shape science's future. The Science Lab will foster dialog between the open web community and scientific researchers. Together they'll share ideas, tools, and best practices for using next-generation web solutions to solve real problems in science, and explore ways to make research more agile and collaborative.

The project will be lead by Kaitlin Thaney, a long-time open science advocate. Kaitlin helped found and manage the science program at Creative Commons, and previously worked at Digital Science, a tech company focused on research tools and incubation for science startups. She also advises policymakers on digital infrastructure, data-intensive science, and education to make scientific research more collaborative, open, and reproducible.

For more information, please follow the Science Lab and Kaitlin Thaney on Twitter, or see the announcement from Mark Surman the director of the Mozilla Foundation, or this post by Kaitlin.

We're pretty excited :-)


— 2013-06-14 by Greg Wilson.

June 2013 Lab Meeting

Earlier this week, Software Carpentry had its first online lab meeting since October 2012. In attendance were:

  • Greg Wilson (Toronto)
  • James Hetherington (London)
  • Kaitlin Thaney (Brooklyn)
  • John Blischak (Chicago)
  • Ted Kirkpatrick (Vancouver)
  • Steve Haddock (Santa Cruz)
  • Ethan White (Utah)
  • Rachel Anderson (STScI, Baltimore)
  • Katy Huff (Chicago)
  • Diego Barneche (Sydney)
  • Trevor King (New Jersey)
  • Michael Selik (New York)
  • Will Trimble (Chicago)
  • Aleksandra Pawlik (Manchester)
  • Jory Schossau (Michigan State)
  • Justin Ely (STScI, Baltimore)
  • Paul Wilson (Wisconsin)
  • Neil Chue Hong (SSI, Edinburgh)
  • Aron Ahmadia (in transit)
  • Mike Jackson (SSI, Edinburgh)
  • David Schryer (Tartu)
  • R. David Murray (Amherst, MA)
  • Jessica Kerr (St. Louis)

We covered a fair bit of ground in 90 minutes; the highlights are below, and comments from both attendees and everyone else would be very welcome (either here or on the discuss mailing list).

Making boot camps more useful:

  1. Clearly distinguish boot camps for complete beginners from those for people who already have some coding skills.
  2. Do not publicize the boot camp until the curriculum has been specified so that learners can make an informed choice about signing up.
  3. Provide a consistent pre-assessment to help people make this decision before they sign up (and to give instructors a clear idea of who they're going to be teaching).
  4. Encourage people to teach boot camps spread out over several days or weeks when instructors and learners are co-located.

Sustainability (see this post for background):

  1. Poll hosts of previous boot camps to find out what their actual costs were, and whether they would have been willing/able to pay a $1000-$1500 administration fee per boot camp.
  2. Depending on the results of that poll, start charging those who can pay an administration fee for setting up boot camps.
  3. Explore the PLOS model of different fees and waivers for different countries.
  4. Pursue corporate sponsorship (either on a per-bootcamp basis, or as general donations to the cause).
  5. Try once again to get funding through existing science training programs.
  6. Encourage qualified instructors to teach Software Carpentry commercially, for whatever fees they can charge. (We will not be involved in fee negotiations, and will not "tax" these activities, but would appreciate instructors talking with us before approaching clients so that we're not tripping over each other.)
  7. Create a new mailing list for people interested in discussing this. (If you'd like to be added please mail me.)

Consistency:

  1. To use our name and logo:
    • At least one qualified instructor.
    • At least two full days (though this may be spread out over a longer period).
    • Cover version control, testing, task automation, and modular program development.
    • Most attendees to date work in science, engineering, medicine, and related fields (we're not teaching web development to salespeople). We are already extending our reach to people in other data-intensive disciplines, but for now at least, the digital humanities are out of reach: we simply don't have enough instructors (or enough experience).
  2. To be an instructor:
    • Complete our online training (which includes teaching at least once with a more experienced instructor),
      or
    • Demonstrate extensive relevant teaching experience (and teach at least once with a qualified instructor).
  3. These requirements will only affect upcoming boot camps and instructors, not those already scheduled or badged.

Simplifying our shared content, web presence, and workflow.

  1. Designate a lead instructor for each boot camp.
  2. Streamline the reimbursement process. (Ideally, we want host sites to reimburse instructors directly, but we realize that we'll often be involved, particularly when people are teaching several boot camps in one trip.)
  3. Make it much easier for people who are not yet Git experts to update boot camp web pages, contribute teaching materials, etc. We are discussing this on the gits mailing list; please join us there.

Notes:

  • Some people proposed having a warm-up day for complete beginners, followed by a regular two-day boot camp that would appeal to people who already have some skills. We'll need to experiment with this to see how well it works.
  • There was disagreement over whether testing should remain a required topic: some instructors barely touch on it, and others disagreed over what it ought to mean for day-to-day scientific computing. As Software Carpentry's CDFL1, I ruled that it is required; however, we need to integrate into the other material rather than teaching it as a standalone topic.

[1] Curmudgeonly Dictator for Life.


— 2013-06-13 by Greg Wilson.

North Carolina Bootcamps

Last month, we held two Software Carpentry workshops back-to-back in Durham, North Carolina, one at the National Evolutionary Synthesis Center and a second organized by Cliburn Chan for the biostats group at Duke just three days later. These workshops were taught by Jenny Bryan, Elliott Hauser, and myself with Karen Cranston teaching as well at NESCent. The workshops were both somewhat atypical: NESCent was a smaller workshop (only 11 participants) who work together and share an interest in evolutionary biology, and at both NESCent and Duke we presented in R rather than Python. Overall, both workshops were very successful, and I learned a lot, both about R and teaching a Software Carpentry workshop.

In addition to substituting R for Python, we altered the schedule from what I've seen in previous workshops, teaching R for the entire first day and everything else (shell, git, and Make) on day two. While this meant that Jenny had to present the entire day on day one, her material and instruction style easily held everyone's interest for the whole day. Jenny went at a good pace, moving from basic language essentials and how to interact with RStudio to more complex topics such as data aggregation using the plyr package and producing literate documents using knitr. The R sections, particularly the use of plyr, were consistent crowd favorites. I think the way we rearranged the schedule worked out very well—we avoided confusion by not switching between environments, and using only RStudio on day one allowed us to avoid installation issues. Anyone who had had trouble installing the prerequisites either stayed after on day one or came early on day two for help. We ended up with no setup issues at NESCent and a fair number at Duke (possibly due to inadequate instructions on our boot camp page) but they were easily handled.

We were able, perhaps serendipitously, to present our material in a logically cohesive way that kept students engaged. Instead of every instructor bringing their own material, we used the same files for all sections. The code we wrote during day one was placed under version control on day two, and we wrote a Makefile together to automate our data analysis pipeline and produce an HTML document with code and figures. At NESCent, this wasn't planned ahead of time; I noticed that Jenny had designed her scripts in such a way that they were great candidates to incorporate into my Make tutorial, and so together we wrote one. There was clear interest in Make, so we built on this idea and replicated it at Duke with more preparation.

The number of people attending the NESCent workshop was low, which was in some ways both a pro and a con. On the plus side, we were able to pay more individual attention and Karen led a discussion on data management that was highly relevant to those attending. However, we seemed to run out of steam during the afternoon on day two, where we had planned to address whatever topics participants felt would be helpful but found a lack of enthusiastic suggestions. We corrected this at Duke by being prepared for a more structured presentation. We also found for both the shell and version control sections that our presentation needed to cater to specific tasks that a researcher just learning these skills would use and avoid more complicated topics such as forking and pull requests.

Teaching two workshops back-to-back gave us a chance to refine our approach and materials, and Jenny is looking into how best to incorporate the materials we designed into Software Carpentry for future R workshops to utilize.

NESCent feedback

Favorite things Suggested improvements
  • R stuff (+1)
  • learned to appreciate the power of version control
  • plyr (+1)
  • bash (+1)
  • git and github (+1)
  • RStudio
  • Make
  • more structure during the second day
  • more visuals, especially for git
  • more about Make
  • more applied statistics during R portion
  • wanted to learn text manipulation
  • small exercises, esp. during R portion
  • more focus on the tools and their capabilities, e.g. RStudio
  • hard to follow git in such a short period of time

Duke feedback

Favorite things Suggested improvements
  • R stuff (+3)
  • Git (+3)
  • shell
  • RStudio (+1)
  • instructors and instruction style (+4)
  • plyr
  • make (+2)
  • shell section was too basic
  • would've liked us to "clean up" a real life, dirty dataset
  • 2 days is too short
  • more lattice, less R base
  • more on knitr
  • would've liked to see computing on amazon ec2
  • provide your slides before you present them
  • goal of shell section was unclear
  • slow down on day 1, more time to play with RStudio
  • would've appreciated cheat sheet for shell commands

— 2013-06-09 by Ben Morris.

Thoughts on an Advanced Boot Camp at Boulder

Alex Viana and myself recently wrapped up a bootcamp at the National Center for Atmosphere Research (NCAR) in Boulder, CO. It was a lesson in the advantages of being light on your feet when it comes to teaching for Software Carpentry. Our normal audience tends to be scientists with varying degrees of familiarity with the tools that we teach. This time we taught about 20 people all of whom were experience software engineers, some of whom had probably been programming longer than Alex or I had been alive. We had planned on starting the morning with some shell and then moving into Git. A quick survey of the room found that everyone was well versed in the shell so we abandoned that lesson all together and went straight to teaching Git.

Here was where things got interesting. I thought we'd fly through our material because everyone was so experienced. Instead though it almost seemed that we moved more slowly because not only were we teaching Git, but also how git was different than SVN and CVS (other version control systems for the uninitiated). Later in the day we also got into a deep conversation about what types of workflow Git could be used for compared to SVN and CVS.

We had a similar experience the next day teaching Python. Instead of just churning through it we spent a lot of our time talking about how Python was different than other languages the participants programmed in like Java. It turned out that teaching such an advanced crowd meant that we had a group that knew what questions to ask. Topics that we normally gloss over (what is an iterator anyway?) we had to really pick apart because of the knowledge in the room.

As instructors there were two really important lessons for us. The first is never assume that you're the most knowledgeable person in the room. The corollary to that is that just because you aren't doesn't mean you don't have something to teach. We even had a couple of really skilled Python programmers who were happy to be there just to see how they could become better teachers. At first we were a bit intimidated by the depth of knowledge, but really it just forced us to up our game as instructors and I think we're better for it.

The second lesson was that you can never forget that a bootcamp needs to be adaptable. Alex and I were challenged to create curriculum on the spot when we skipped over our 2 hours of the shell. We had to keep in mind that we were there to teach not just stand and deliver a canned lesson even if participants already knew it all. And that's the really great thing about Software Carpentry all around. All the instructors are creative and smart people who are dedicated to being good teachers and don't shy away from these kinds of unexpected challenges. The NCAR bootcamp was definitely my most challenging, but it also offered one of the best opportunities for growth as an instructor.


— 2013-06-07 by Ted Hart.

Software Carpentry at INTECOL13

On 21st August 2013, we'll be attending INTECOL13 in London's Docklands. The 11th International Congress of Ecology, hosted by the British Ecological Society and INTECOL, is one of the world's premier conference for ecologists. At the invitation of Matthew Smith of the BES Computational Ecology Specialist Interest Group and Microsoft Research, Software Carpentry and The Software Sustainability Institute have a talk and a session. INTECOL13 logo

Steve Crouch will present a talk on behalf of Greg Wilson, on "better computational practices for research". This session will highlight the problems faced by researchers who develop software, and ecologists in particular, including the tractability, development and reproducibility of ecological models, and discuss possible solutions.

After runs at Effective Scientific Programming, Digital Social Research and Dev8D, Mike Jackson will chair another discussion on "what makes good code good". This session will explore what ecologists view as good code, how ecologists learn about good code, the blockers to producing good code and how these can be overcome, by research leaders, institutions, funders, and ourselves.

We look forward to reporting on our experiences.


— 2013-06-02 by Mike Jackson.

Running Bootcamps

It's been eighteen months since we started running two-day boot camps. We've grown rapidly:

Cumulative Number of Boot Camps Cumulative Enrolment
Cumulative Number of Boot Camps Cumulative Enrolment

Now we need to start thinking about how to sustain that growth in the long term. To start, here are some stats on how things have been funded.

First, we've experimented with several different ways to fund travel costs, and several different ways of charging attendees:

Funding Model Charge Model
  • Host: the host paid costs (typically out of grant money or professional development budget).
  • Grant: travel costs came out of our Sloan Foundation grant.
  • None: there were no travel costs (because local talent was doing the teaching).
  • Mixed: costs were divided between the host site and the Sloan grant.
  • Donation: costs were covered by direct donations.
  • Unknown: we're still waiting for people to tell us how they paid for things.
  • Free: learners were not charged.
  • Deposit: learners gave us a refundable deposit (typically US$20).
  • Charge: learners were charged a fee (typically US$20).
  • Conference: a small charge was levied as part of conference registration.

Here's how often we've used each combination:

Free Deposit Charge Conference
Host 52% 1% 2% 0% 55%
Grant 18% 1% 0% 1% 20%
None 17% 1% 0% 0% 18%
Mixed 2% 1% 0% 0% 3%
Donation 0% 0% 1% 0% 1%
Unknown 3% 0% 0% 0% 3%
92% 4% 3% 1% 100%

One fact that doesn't show up in this table is that the number of grant-funded boot camps has gone from 16 in 2012 to 2 in 2013. Even if we include two mixed-model boot camps this year in the latter count, we're clearly much closer to boot camps being self-sustaining.

But being closer isn't the same as being there. We're spending about $150K/year in grant money on salaries and overheads to keep this whole show going. At two boot camps a week (which we think we can reach by this time next year), we'd need about $1500 per boot camp to cover those costs. If we stick to an average of 40 learners per boot camp, we'd have to charge a bit less than $40 per person. The problem is, we often can't do this: if we charge for training—even a refundable deposit—then some institutions will charge us for use of their space, and only charging those who don't have such a rule seems unfair. An alternative is to ask for sponsorship on top of instructors' costs, rather than tying it directly to enrolment.

Setting that issue aside for a moment, though, I'm more certain than ever that this training is cost-effective:

  1. The average attendee is a graduate student who costs about $50,000/year in salary and overheads (mostly overheads). If she works 40 hours a week, 48 weeks a year, that means her time is worth about $26/hr.
  2. Since January 2012, we've run about 75 boot camps for about 2500 people. If each boot camp is two eight-hour days, that works out to $1,040,000 worth of people's time.
  3. Instructors' travel costs have averaged about $2000 per boot camp, but we'll round up to $2500 to account for local organizers' time, coffee, etc. That gives us another $187,500.
  4. The $150K/year burn rate quoted earlier for salaries and overheads gives us another $225,000, for a total of $1,452,500.
  5. But that's only $580 per learner, so at $26/hr, we only have to save people about 22 hours each for this to be worthwhile.
  6. Looking at it another way, if instead we save them an hour a week over five years, that's $6240 worth of their time, which is 11 times the up-front investment.

Measured that way, I'd say we're doing more than OK.


— 2013-06-07 by Greg Wilson.

Amsterdam Bootcamp

What started out as an unexpected proposal from Greg became very much alive on May 2nd, as 40 physicists poured into the classroom at VU University Amsterdam and started up their laptops. After introducing the teachers (Stefano Cozzini and Justin Ely) and the helpers, we were off: the very first Software Carpentry boot camp in the Netherlands!

In the months leading up to the boot camp, I had been surprised at the sense of timeliness the boot camp generated. People here clearly see the need for computational training, most importantly young scientists themselves—available tickets were mostly gone within a week.

The program of the workshop had been announced as being geared towards teaching you "how to build better code in less time". It included the usual Software Carpentry topics: the UNIX shell, Python programming, version control (Subversion, by popular request), and some data management and matplotlib.

During the two days of the boot camp, Justin and Stefano did a great job at teaching these topics, mixing interactive sessions with some more theoretical material on software lifecycles. Especially the session on Subversion was a big hit: people made over 80 commits to our shared repository within an hour, and seemed to grasp the material well. (Today, an attendee told me he's actually using it for his work now).

Some other things that worked well included:

  • The little trick with green/red sticky notes to signal helpers;
  • Frequent, short breaks;
  • The VirtualBox VM: this pre-empted a lot of setup issues (we encountered very few of those).

And yet, I'm not sure the boot camp was a definite success overall. Looking back, and reading the feedback, we hit two snags.

The first will be familiar to Software Carpentry regulars: we had a large, inhomogeneous group. This made it very hard to teach everyone something new, while at the same time not losing anyone. Especially while teaching Python, we stuck too much to tutorial-level topics. This didn't leave enough time for more advanced topics such as program structuring, debugging, or object-oriented programming.

Secondly, and more importantly, I'm not sure we kept our promise of teaching "how to build better code in less time". Sure, judging from the feedback, some people clearly got useful skills out of the workshop. But quotes like this one…

The bootcamp was advertised as saving time writing code. I really wanted to learn that, and I don't think I did see anything saving time.

…and this one…

I went looking for strategy in software building, learning how to make a plan and follow it together with other people. Sadly the course stayed in a much more introductory stage to particular tools.

…show that this was not enough.

Could we have done better? I think we could have, if we'd put more effort into teaching materials in a useful context. This was one of the reasons why the version control topic was a success: people went through real-life scenarios, got their hands dirty, and learnt something useful that way. Doing something similar for Python programming—letting people work on a real program, while learning about structure, documentation, refactoring, etc.—would have made a difference. Many attendees are longing for such realistic examples.

And, of course, if you're organizing a boot camp: think twice about the type of audience you're inviting. A generic mix of everything from novice to expert will make teaching the boot camp more difficult. That's certainly something I'm going to keep in mind for next time.


— 2013-06-06 by Onno Broekmans.

Feedback and experiences from Southampton

I have recently organised a boot camp at the University of Southampton, as part of my Software Sustainability Institute fellowship. I hadn't actually attended a boot camp before (I was meant to, but unfortunately had to cancel) so it was a little nerve-wracking doing all of the organising - it all worked out well in the end though. Instructing at Southampton

The boot camp was primarily for students at the Institute for Complex Systems Simulation, from which we got around 35 students, with 15 students from the university's Computational Modelling Group making up a grand total of 50 attendees. As the course was primarily designed for the ICSS, I did a very early pre-questionnaire asking what topics the ICSS students would like to cover - which was very much appreciated - and this early discussion got registrations off to a good start. In fact, we had around 20 people on the waiting list at one point, which allowed us to easily fill up places when people dropped out. In the end we had 48 people registered on the day, of whom 42 attended.

There were some changes in the team of instructors during the planning of the boot camp, as one instructor dropped out part way through the planning process, but we still managed to keep going with the same topics we had planned, and were instructed by Nelle Varoquaux and James Morrison. The ICSS at Southampton kindly paid expenses for the instructors, and provided us with very tasty buffet lunches as well as coffee/cakes for the morning and afternoon breaks.

At the end of the final day we did the traditional good-point, bad-point questions around the room and got the useful comments below:

Good Bad
Generally very useful Software issues and installation x 2
Great to have formal training on self-taught skills More examples for makefiles were needed
Makefiles Need longer gaps between instruction and exercises - time to catch up x 2
Ability to summon help at any time x 2 Need more time on problems and more open-ended problems
Very hands on x 2 Very complex for those with less programming experience x 3
Pre-selection, tailored to topics we want Exercises were rather 'bitty' and 'made up' - we could have one big problem used for the exercises and the bootcamp would then take us through the whole process
Reproducible research + electronic lab notebooks Need examples on how I can apply these in day-to-day science NOT software engineering (and not assuming I release libraries etc)
Etherpad was useful, but not necessary to be projected all the time Should have more on reproducible research including tools
Got to do things we'd heard about but had never tried Rapid flipping from editor to terminal was confusing - use two screens?
Should use a Dropbox shared folder (or equivalent) rather than copying and pasting from Etherpad
Provide key 3rd party resources to go further, not just software carpentry online lessons
Need clearer instructions for some of the exercises
Need context for some exercises eg. didn't know that DNA was composed of CGAT, what are .pdb files etc?

From the post-event questionnaire, 100% of respondants found the boot camp enjoyable, useful and will apply some of the techniques in their work.

The room we managed to book for the boot camp (85 / 2207 for anyone reading this in future before another boot camp at Southampton) worked very well. It was large enough to fit all of the attendees in, was air conditioned, had plenty of space for helpers to move around, and had space outside for people to mill around during the lunch and coffee breaks. We deliberately re-arranged the room to have a large central aisle with tables either side, so that the helpers only had a maximum of four people to squeeze past to help someone, and this was very effective. The only improvement to the room would have been having two projectors - we did bring a spare projector and use it, but it was so dim that we decided we couldn't really use it for important things (hence putting the Etherpad on there).

As with all bootcamps, we struggled with a wide mix of students coming to the course - some of which had very little (if any) experience with Python. However, we managed to keep most people with us, and I don't think anyone didn't turn up for the second day. We had a lovely comment that "I am really pleased with myself that I stayed until 5pm and am coming back tomorrow - so that is good news, thanks!". In fact, that comment came through the brilliant red/green post-it note feedback mechanism. We used these post-it notes in the standard 'notification'-type way (where students stick a red post-it on their laptop when they have problems, and a green when they have done the exercise), but we also got students to write on the post-it notes before each break in a session, listing a good thing that they really understood on the green post-it, and something they were struggling with on the red post-it note. This was really useful for the instructors, and we were able to tailor the subsequent part of these sessions to answer the specific questions that were raised.

In terms of specific things that might help future boot-camp organisers and instructors:

  • There were significant problems with the setup and installation procedures. Many people didn't do this before-hand, or tried to do it, found it difficult and then gave up. This caused significant problems in the first session, with some people managing to get going with the shell session, and others still struggling with the setup. There are various things that can be done about this:
    • Ensure there is double the amount of time you think you'll need available at the start of the first day for setup issues.
    • Email people the day before asking them to come early if they have had setup problems.
    • Make sure you have a VM image on a pen-drive for students who have issues (I forgot to do this...).
    • More generally: I think we need to significantly re-write the installation instructions on the Software Carpentry webpages. A number of students said that they tried to follow them but that they were very confusing and made very little sense. One student commented that we really need to do a 'Step by Step Installation for Dummies' guide which goes from nothing to everything, and shows how to check if things are installed. I agree, although this will be difficult to make applicable for every system.
    • I felt a bit embarassed that we dropped James (who was instructing for the first time) into these setup problems on the first day, I think the first session should ideally be run by an experienced instructor who will be more familiar with dealing with these problems.
    • Students were asked to clone the git branch for the boot camp at the beginning of the first session - before they had been taught git! They found this very difficult, and many people didn't get it properly downloaded for a while. The other problem is that doing a standard 'git clone URL' will download all of the data for that repository (including all branches, all of the history etc) - which took a LONG time when 50 people were doing it at the same time. One student very reasonably asked why we don't provide the boot-camp material as a simple zip file.
  • The red/green post-it system for feedback at the breaks in each session was wonderful, and should be used more widely.
  • It is amazing how much a good food plus coffee and cakes can help...although it is very important to make sure dietary requirements are taken care of (even if the catering organisation said they would provide it ok, they didn't).
  • We tried to make a more flexible final session by pointing students to the Software Carpentry resources, and the resources from the boot camp, and asking them to work on whatever they wanted and have lots of discussions about issues and general questions with the instructors. However, many students took this as a cue to leave (which I hadn't expected!) and so I had to hurridly give my final presentation.
  • I think a number of students found the final presentation which brought it all together quite useful - but I altered the 'standard' Software Carpentry one quite a bit, to add in ways to combine all of what we'd learnt (eg. shell scripts as git hooks to run automated tests). This new presentation is in the 2013-06-southampton branch of the boot-camps repository.
  • Nelle's reproducible research session was very much appreciated by people, particularly the use of makefiles for reproducible research.
  • A number of students found the testing session rather frustrating for a number of reasons including: too much Python coding, more time spent on it than they thought it needed, not understanding the point for people who don't write libraries etc.
  • One major suggestion from a number of people was to make all of the examples inter-linked, and to present the boot-camp as one big story, showing how you'd use these various tools and techniques to do 'good reproducible computational science'. This is a lovely idea, but I can imagine it would be very difficult - however, I may blog about it in future.

I think the structure of the boot camp worked very well, particularly as we had a lot of time allocated for each session, so we could go into more depth but also not worry too much about time. However, the real stars of the show were the instructors - and they deserve huge thanks. I think it is appropriate to finish with a comment from one of the students on one of their green post-it notes:

Thank you for selecting such knowledgable people to instruct this course!

— 2013-06-05 by Robin Wilson.

From a helper to an instructor

This blog post is actually a bit overdue as the first time I instructed at a Software Carpentry bootcamp was over a month ago in Manchester. However, as now I had an opportunity to teach twice (recently in Krakow), this gives me more credit to share my experience of taking a step up from being a helper to being an instructor.

I had helped at bootcamps in the UK so I knew how the materials were taught and what they covered. Nevertheless, it still took me a lot of time to go through the modules I was supposed to teach making sure that I could seamlessly not only follow all topics, examples, and exercises but also present them in a clear manner. As a helper most of what I had to do was to solve ad-hoc problems reported by the bootcamps attendees. As an instructor I had to make sure that everything I was saying was consistent with what I said before and logically led to the next step.

I also learnt first hand that addressing a diversified audience is always challenging. In both Manchester and Krakow I experienced the difficulties of teaching a group who (according to the pre-questionnaire) varied from those who, for example, had never used Python at all to those who "strongly agreed" that they can write a Python program. This meant that I was going to either lose half of the group or make the other half terribly bored. I thought that the former was worse. Software Carpentry is supposed to be improving researchers' computing skills and not discouraging them even more from the world of programming, testing, and using version control. I figured that those who were already quite familiar with the material would catch up with their Facebook in the worst case, and refresh their memory and maybe learn a few details they didn't know in the best case. Pitching at the right level is difficult.

About a year ago I witnessed a situation (not at a SWC bootcamp) when an experienced developer was trying to explain to a complete novice the mysteries of Git. To cut a long story short, it didn't go well—at the end the novice was still clueless, but what's worse, the developer also seamed somewhat lost in his explanations. As I was supposed to teach Git, this memory became quite fresh in my mind. Fortunately, I was able to observe as a helper how Mike Jackson taught Git at previous Software Carpentry bootcamps and I knew that teaching distributed version control can be done effectively without confusing the students and yourself. I used practically the same materials which Mike presented introducing only small tweaks and followed Mike's teaching approach.

On more practical note, I learnt it the hard way that teaching a two-hour block standing rather than sitting affects my typing skills pretty badly. After about 15 minutes my back and wrists were aching, I had to look at my laptop monitor from a very weird angle and the number of typos which I made was growing exponentially. It all could have been avoided if I got myself a chair to sit on.

Instructing at Software Carpentry bootcamps is probably a different experience for everyone. Although, as I had a chance to talk to two other people who recently taught for the first time, there was one thing which we agreed on: allocate sufficient time to prepare for the bootcamp. Don't assume that it'll be enough just to flick through the materials and copy them over to your bootcamp branch. If you are an experienced instructor, this may work. But if you've only been a helper until now, you'll need to put more effort. But the payoff when you see the learners going "Ah, now I get it", is well worth it.


— 2013-06-02 by Aleksandra Pawlik.

The Great Licenceathon

The Software Sustainability Institute's Simon Hettrick writes:

Intellectual Property (IP) is a thorny issue in academia, generally because people don't know who owns what. There's a lot of hearsay, rumour and—frankly—misunderstanding about IP ownership, so we've decided to run an experiment. And we're going to need some guinea pigs…

To get a better understanding of how academia deals with IP ownership, we're running The Great Licenceathon. This will see people at different organisations working out who owns their IP. They'll then blog about their experiences and we'll pick through those blogs to see whether there's some common lessons we can learn.

If you want to know who owns your IP, and you have time to ask a few questions at your organisation, then please get in touch.

I think this information will be extremely useful, not least because we're thinking about adding discussion of licensing and open access to the "day 3" material for our boot camps. Please check out the entire blog post, and please do get in touch with Simon.


— 2013-05-30 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 19 9 0 0 0 0 0 0

2013

Jun

2013-06-14: Announcing the Mozilla Science Lab
2013-06-13: June 2013 Lab Meeting
2013-06-09: North Carolina Bootcamps
2013-06-07: Thoughts on an Advanced Boot Camp at Boulder
2013-06-02: Software Carpentry at INTECOL13
2013-06-07: Running Bootcamps
2013-06-06: Amsterdam Bootcamp
2013-06-05: Feedback and experiences from Southampton
2013-06-02: From a helper to an instructor

May

2013-05-30: The Great Licenceathon
2013-05-30: Krakow Bootcamp Experience
2013-05-26: What Does Victory Look Like?
2013-05-26: What Does Done Look Like?
2013-05-25: Our Infrastructure
2013-05-24: Browsercast
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