Software Carpentry

Helping scientists make better software since 1997

Archive for November 2009

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

Caesar’s Wife

Improving the way scientists use computers isn’t just about making them more productive: it’s also essential to defending the integrity of their work. Stories like this one about a researcher struggling in vain for three years to replicate someone else’s results can only undermine public confidence at a time when we need to make a lot of hard decisions in a hurry. Sadly, we have no one to blame but ourselves…

Later: see also Victoria Stodden’s post.

Written by Greg Wilson

2009/11/26 at 11:58

Posted in Noticed, Opinion

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

Serendipitous and Unexpected

Via Ryan Lilian:

Most research effort does not produce what is thought of as a traditionally publishable result. That doesn’t mean, however, that nothing was gained by conducting the research. These results, whether they are failures or merely perplexing, can provide valuable insights into open problems and prevent other researchers from duplicating work. We started a journal that focuses on serendipitous (I have no idea why this worked) and unexpected (it seems like this technique should work on this problem but it doesn’t) results. The goal of the journal is to provide a venue where ideas can flow and be debated.

The Journal of Serendipitous and Unexpected Results (JSUR) is an open-access forum for researchers seeking to further scientific discovery by sharing surprising or unexpected results. These results should provide guidance toward the verification (or negation) of extant hypotheses. JSUR has two branches, one focusing on Computational Sciences and the other on the Life Sciences. JSUR submissions include, but are not limited to, short communications of recent research results, full-length papers, review articles, and opinion pieces.

Recently, we launched the beta version of the journal site at We would love to get your feedback and even better, a submission for the first issue.

To get the journal started, we’re looking to collect a large number of short (2-4 page) reports. I know you have something to publish. Please help us spread the word and forward this information to interested colleagues.

The JSUR Editorial Board

Written by Greg Wilson

2009/11/22 at 21:15

Posted in Community, Noticed

Special Issue of Computing in Science & Engineering

A special issue of Computing in Science & Engineering that Andy Lumsdaine and I edited, devoted to software engineering in computational science, is now available. We’d like to thank everyone who contributed:

  • Report on the Second International Workshop on Software Engineering for CSE, by Jeffrey Carver (University of Alabama)
  • Managing Chaos: Lessons Learned Developing Software in the Life Sciences, by Sarah Killcoyne and John Boyle (Institute for Systems Biology)
  • Scientific Computing’s Productivity Gridlock: How Software Engineering Can Help, by Stuart Faulk (University of Oregon), Eugene Loh and Michael L. Van De Vanter (Sun Microsystems), Susan Squires (Tactics), and Lawrence G. Votta, (Brincos)
  • Mutation Sensitivity Testing, by Daniel Hook (Engineering Seismology Group Solutions) and Diane Kelly (Royal Military College of Canada)
  • Automated Software Testing for MATLAB, by Steve Eddins (The MathWorks)
  • The libflame Library for Dense Matrix Computations, by Field G. Van Zee, Ernie Chan, and Robert A. van de Geijn (University of Texas at Austin), and Enrique S. Quintana-Ortí and Gregorio Quintana-Ortí (Universidad Jaime I de Castellón)
  • Engineering the Software for Understanding Climate Change, by Steve Easterbrook (University of Toronto) and Timothy Johns (Hadley Centre for Climate Prediction and Research)

Written by Greg Wilson

2009/11/18 at 18:33

Posted in Community, Noticed, Research

Cloud Computing for Beginners

Ana Nelson has posted step-by-step instructions showing how to use Amazon’s EC2 cloud computing platform to run simulations. There are still a lot of fiddly details, but the barriers to entry are getting lower all the time…

Written by Greg Wilson

2009/11/15 at 11:13

Posted in Content, Noticed


Martijn Faassen has posted a nice history of packaging and distribution tools for Python. Yes, it’s a topic only a geek could love, but anyone who wants to distribute software to other people needs to grapple with these issues. The question is, should these tools, the problems that motivate them, and the technology underlying them be part of this course? Or should something equivalent (and if so, what)?

Written by Greg Wilson

2009/11/13 at 15:12

Posted in Content, Version 4

Python in Science

Guido van Rossum just posted a description of a variety of scientific Python projects. The diversity is pretty impressive…

Written by Greg Wilson

2009/11/06 at 19:27

Posted in Noticed

Our Target Audience

Some graduate students at the University of Toronto have asked us to run the course for them later this fall or during the winter. There’s an obvious selection bias (if they were expert programmers, they wouldn’t need this course), but I think they’re pretty representative of scientists at their level:

01. Name 39/39 100%
02. Email address 39/39 100%
03. Level of study
MSc 12/39 30%
PhD 27/39 70%
04. Primary programming language
MATLAB 16/39 41%
Python 2/39 5%
Other 6/39 15%
None 15/39 39%
05. Knowledge of primary language
Don’t know how to use it 28/39 72%
Understand basic commands 10/39 26%
Can program competently 1/39 2%
Expert 0/30 0%
06. What other languages do you know?
HTML 11/27 41%
R 4/27 15%
Other (VB, Java, Perl, etc.) 10/27 37%
No answer 12/39
07. Would you like pre-class tutorial on
programming basics (loops, files, if/else)?
Yes 36/39 92%
No 3/39 8%
08. Do you have a laptop?
Yes 39/39 100%
No 0/39 0%
09. Preferred OS
Windows XP 14/39 36%
Windows Vista 12/39 31%
Mac OS X 7/39 18%
Linux/Unix 9/30 0%
10. Do you have a MATLAB license?
Yes 9/39 23%
No 30/30 77%
11. Which topics are you interested in?
Databases 16/39 47%
Functions and Modules 14/39 41%
Debugging 10/39 29%
Image Processing 10/39 30%
Object-Oriented Programming 10/39 30%
Web Application Programming 9/39 26%
GUI Programming 8/39 23%
Web Client Programming 7/39 21%
Computational Complexity 6/39 18%
How Web Servers Work 6/39 18%
Regular Expressions 6/39 18%
XML 6/39 18%
Automated Builds 5/39 15%
Sets and Dictionaries 5/39 15%
Unix Shell Scripting 5/39 15%
Binary Data 3/39 9%
Empirical Software Engineering 3/39 9%
Quality Assurance 3/39 9%
Unit Testing 3/39 9%
Version Control 3/39 9%
Software Development Lifecycles 1/39 3%
Other (please specify) 10/39 30%

Written by Greg Wilson

2009/11/01 at 14:04

Posted in Toronto


Get every new post delivered to your Inbox.