People seem interested, so here's another proposal that just went in for internal review at the university. If it gets through that, my collaborators and I will have two months in which to flesh it out to submit to NSERC. Realistically, it'll be some time next year before we know if we've got the money. Our goal is to increase the productivity of researchers in biological and health sciences by offering training at an immersive one-month "boot camp" for graduate students in those areas, and following it up with full or partial support for their research during the following year as the integrate what they have learned into their research, and share it with their peers. We will measure the program's impact using standard techniques in empirical software engineering research. This proposal draws on Software Carpentry (http://swc.scipy.org), a course that one of us (Wilson) has been teaching since 1997 at government laboratories, companies, and universities. This course givesn scientists the core software development skills they need to be more productive in their own field. The course has attracted over 120,000 visitors from 70 countries in two years and has been used several countries. The most recent offering at the University of Toronto attracted students from fifteen different departments and three local hospitals. Experience shows that this training can improve the productivity of participants by 20% or more, which directly impacts publication rates and degree completion times. These productivity improvements come via earlier and more informed selection of tools, more efficient strategies for deployment and use, and a greater awareness of where to turn next. This proposal will bring these benefits to a wider audience in Canada as follows:
  1. Survey Canadian scientists to find out how they are using computers at present, what "pain points" they perceive, how much time they would be willing to invest in upgrading their skills, and how they themselves would determine whether training in this area had been worthwhile.
  2. Update and extend the course material. Some changes (such as providing examples in MATLAB as well as Python) will be of general use; others will be domain-specific.
  3. Run an intensive one-month workshop each summer for 30 graduate students from across Canada. These workshops will put participants through the updated course, and also teach them how to teach the material themselves. A major part of each workshop will be working on an actual development project that is directly relevant to the participants' research. This will give students direct experience to the tools and skills they are being taught, and help them build and strengthen connections with their peers. We regard this "apprenticeship" component of the program as being central to its success.
  4. Provide full or partial support for 8 to 15 course participants during the following academic year. (These numbers are lower than the numbers expected in the course itself because some participants in the latter may be faculty, post-docs, or USRAs.) Students receiving support will apply what they have learned in the workshop to their research, and transfer their new skills to colleagues at their home institutions. The number of students supported, and the level of support for each, will be decided by the program's principal investigators in consultation with the students' supervisors. In order to maximize impact, students will be chosen from as wide a range of institutions and research areas as possible.
  5. Use standard follow-up surveys, interviews, and citation and impact measures of published work, to determine this training's effect, with a particular focus on improvements in productivity. This work will go on throughout the program, with results being published as they are ready.