Archive for November 2009
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.
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.
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.
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 http://jsur.org. 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
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)
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…
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)?
Guido van Rossum just posted a description of a variety of scientific Python projects. The diversity is pretty impressive…
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:
|03.||Level of study|
|04.||Primary programming language|
|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%|
|06.||What other languages do you know?|
|Other (VB, Java, Perl, etc.)||10/27||37%|
|07.||Would you like pre-class tutorial on
|programming basics (loops, files, if/else)?|
|08.||Do you have a laptop?|
|Mac OS X||7/39||18%|
|10.||Do you have a MATLAB license?|
|11.||Which topics are you interested in?|
|Functions and Modules||14/39||41%|
|Web Application Programming||9/39||26%|
|Web Client Programming||7/39||21%|
|How Web Servers Work||6/39||18%|
|Sets and Dictionaries||5/39||15%|
|Unix Shell Scripting||5/39||15%|
|Empirical Software Engineering||3/39||9%|
|Software Development Lifecycles||1/39||3%|
|Other (please specify)||10/39||30%|