Software Carpentry

Helping scientists make better software since 1997

Archive for the ‘Sponsors’ Category

Thanks, Jamie

The warmup tutorials for our grassroots Software Carpentry course started this week, and we’d like to send a “thank you” to Jamie Winter at The MathWorks, who has provided students with temporary licenses for MATLAB. It’s all been very last minute, and we’re grateful to Jamie for pulling this off on such short notice.

Written by Greg Wilson

2009/11/28 at 01:31

Tutorials Start This Week

After a lot of hard work from Dominique and Jon, we’re kicking off warmup tutorials for Software Carpentry this week. 65 students from Psychology, Linguistics, Chemical Engineering, and a couple of other departments will get three weeks of review on basic programming, then start the regular material in January. Our thanks to MITACS, the MathWorks, SciNet, and DCS for their support.

Written by Greg Wilson

2009/11/24 at 13:35

Job Opening: MITACS Scientific Coordinator

MITACS (which provided funding for this summer’s offering of the course, and which funds a lot of other mathematically-oriented work in Canada) has an opening for a scientific coordinator.  Details are in the job posting; specific responsibilities include:

  1. Promote MITACS programs within the scientific community and provide a point of contact for feedback and questions
  2. Ensure quality, fairness and timeliness of scientific peer-review processes
  3. Program management tasks such as:
    • Establish program strategy and action plans for new MITACS programs
    • Develop and monitor program budgets
    • Coordinate with other MITACS staff on program implementation and ongoing monitoring of program effectiveness
    • Work closely with the Communications and Government Relations Department on program promotion and feedback
    • Provide regular status updates, reports and program evaluation
  4. Other duties as assigned from time to time

If you’d like to help shape the development of mathematics and science in Canada, this might be the job for you…

Written by Greg Wilson

2009/09/11 at 18:39

Posted in MITACS

Software Carpentry in Alberta

I’m very pleased to announce that thanks to generous support from Cybera, Software Carpentry will be offered at the University of Alberta in Edmonton this summer. The course will be co-taught with the offering at the University of Toronto from July 13 to 31. For more information, or to enrol, please contact Professor Paul Lu.

Written by Greg Wilson

2009/04/08 at 17:50

Posted in Alberta, Cybera, Version 3

Software Carpentry in Toronto July 13-31 2009

Thanks to a grant from MITACS, the University of Toronto will offer the Software Carpentry course as a condensed three-week boot camp this summer from July 13-31, 2009. This course is an accelerated introduction to software development aimed at graduate students in science and engineering; its goal is to give them the tools and skills they need to use computers more effectively in their research. 16 spaces are available to students registered in full-time graduate programs in Canada; the fee for the course is $500, but grants of up to $1500 for students from outside the Greater Toronto Area are available to help offset travel and accommodation costs. If you wish to attend the course, or would like more information on content, schedule, prerequisites, eligibility, or other details, please contact Greg Wilson by email at Please also subscribe to the new Software Carpentry blog at for updates.


Many scientists and engineers spend much of their lives programming, but only a handful have ever been taught how to do this well. As a result, they spend their time wrestling with software, instead of doing research, but have no idea how reliable or efficient their programs are.

Software Carpentry is an intensive introduction to basic software development practices for scientists and engineers that can reduce the time they spend programming by 20-25%. All of the material is open source: it may be used freely by anyone for educational or commercial purposes, and research groups in academia and industry are actively encouraged to adapt it to their needs. Originally developed for Los Alamos National Laboratory, the course has been used at research labs and universities on four continents. Topics include:

  • Using the Unix Shell
  • Version Control
  • Automated Builds
  • Basic Scripting with Python
  • Testing and Quality Assurance
  • Systematic Debugging
  • Object-Oriented Design
  • Data Crunching with Regular Expressions, XML, and SQL
  • Basic Web Programming and Security
  • Agile Software Development Process

The course will be structured as an hour-long lecture and a two-hour lab session twice daily. Students are strongly encouraged to co-apply with peers so that they can work together on projects relevant to their research during the latter half of the course. Guest lecturers will discuss computer-supported collaborative science, grid computing, and legal issues related to sharing scientific data and software.


Greg Wilson holds a Ph.D. in Computer Science from the University of Edinburgh, and has worked on high-performance scientific computing, data visualization, and computer security. He is now an Assistant Professor in Computer Science at the University of Toronto, where his primary research interest is software engineering for computational science. Greg is on the editorial board Computing in Science and Engineering; his most recent books are Data Crunching, Beautiful Code, and Practical Programming.

Written by Greg Wilson

2009/04/01 at 19:58

Posted in MITACS, Toronto, Version 3


Steve Eddins has posted an xUnit-style testing harness for MATLAB called MTEST on the MATLAB Central File Exchange.  It’s a nice piece of work, and I hope numerical programmers will make heavy use of it.

Written by Greg Wilson

2009/02/11 at 21:11

One Good Survey Deserves Another

While we’re running our survey of how scientists use computers, the folks at MATLAB are asking their users a few questions too.  If you use any MathWorks products, and have a few minutes, they’d be grateful for your help.

Written by Greg Wilson

2008/11/04 at 08:16

What a Proposal Looks Like

I got word earlier this week that The MathWorks (makers of MATLAB) had approved my request for funding to spruce up the Software Carpentry notes, and find out how scientists are actually using computers. I faxed a signed copy of the paperwork down to them today—with luck, work will start in a couple of weeks, and I’m very excited to have a chance to work with the NRC’s Janice Singer on the survey.  And since students (graduate and undergraduate alike) occasionally ask about how academic funding works, the text of the proposal is below the cut. It isn’t quite the same as programming, but in the end it might be more useful…
Read the rest of this entry »

Written by Greg Wilson

2008/06/13 at 14:18

Posted in MathWorks

Three Weeks and Change

Everyone’s making good progress:

Oh, and it looks like I’m going to get a grant from The MathWorks to upgrade the Software Carpentry course and find out what scientists are actually doing with computers — more on that once I know whether Sadie and I have bought a house or not.

Written by Greg Wilson

2008/06/03 at 20:06

Posted in MathWorks

But I Was Gone Less than 48 Hours!

I left Toronto for Austin mid-day Wednesday, and got back at midnight last night. Lots happened in the interim, so here’s a linkandthoughtdump (which I bet actually is one word in German):

  • Gave a talk about Beautiful Code to the Austin Python Users’ Group Wednesday at Enthought‘s swanky offices. (They’re the kind folks who provide web hosting for the Software Carpentry course.) About 27 people in attendance, and good discussion afterward; was grateful to Travis Vaught and Sergey Fomel for rides from the airport and to the hotel respectively.
  • Gave another talk titled “HPC Considered Harmful” at the Texas Advanced Computing Center‘s Second Annual Scientific Software Days. I was a bit nervous about telling people at a supercomputing center that focusing on massive parallelism and peak performance is wrongheaded, but there were a lot of nodding heads.
  • I made lots of notes from two other talks that I want to follow up on at some point:
    • Robert van de Geijn’s FLAME system lets you draw matrix operations, then automatically generates the corresponding high-performance code. It’s a great example of a real high-level programming tool for scientists (and yet another special case of what a real extensible programming system would support).
    • Eric Jones (also from Enthought) talked about a tool they’re building that watches changes to variables in Python programs, and automatically generates interactive plots of their values. It sounds simpler and less impressive than it actually is; I’ve asked him to put together a screencast, and I think you’ll be wowed—I was. (Later: Steve Eddings from The Mathworks sent me a link about data linking in MATLAB, complete with a video tutorial.)
  • At roughly the same time, half a world away, Diomidis Spinellis presented a study comparing the code quality of Linux, Windows, OpenSolaris, and FreeBSD. Very cool work; wish I’d been at ICSE’08 to ask questions.
  • Meanwhile, Dmitri Vassiliev, who is continuing his work on SlashID this summer, has discovered that generated code is next-to-impossible to debug. Not to be a one-note symphony or anything, but I said in that same article about extensible programming systems that the real challenge is not extending notation, but creating extensible debugging tools so that those notations and high-level representations can be fixed when they break. Robert van de Geijn doesn’t think FLAME needs a debugger; respectfully, I disagree.
  • Science in the Open has a plea to scientists to make their raw data available, motivated by yet another irreproducible result.
  • Kosta Zabashta has posted early thoughts about integrating IRC into DrProject. (Gray on black? Kosta…your design skills rival mine…) I need to tell him that DrProject’s RPC module doesn’t handle tickets because Jeff Balogh is going to replace the entire ticketing system with an extensible one this summer, using his Dojo Form Editor as a front end…
  • Elisabeth Hendrickson has thoughts on automating tests for legacy web applications. Students, take note.
  • Thanks to Nick Jamil and others, we have instructions for installing DrProject on Windows. Yay!
  • Everything old is new again, including Ada and the Bletchley Park Colossus.

And then there’s this:

Thanks again to Sergey Fomel for inviting me down, and for introducing me to the reproducible research community—I’m looking forward to many more discussions.

Written by Greg Wilson

2008/05/16 at 10:01


Get every new post delivered to your Inbox.