Software Carpentry

Helping scientists make better software since 1997

Archive for April 2009

Empirical Software Engineering and Scientific Computing

The slides for my talk at the National Research Council on empirical software engineering and how scientists actually use computers are now up on SlideShare. The colors in some of the embedded images were messed up during upload, but the result should still be readable.

Written by Greg Wilson

2009/04/28 at 10:53

Madagascar Course in Delft June 12-13

Via Victoria Stodden, a link to a course on reproducible research with Madagascar being run in Delft on June 12-13. Focus will be seismic research, but the ideas are more generally applicable.

Written by Greg Wilson

2009/04/27 at 17:51

Posted in Noticed

Firming Up Course Goals

The best way to design a course is to describe the things students will be able to do when it’s over; the best way to do that is to specify graduation exercises. Ours are listed in the Goals page on this blog. We would be grateful for feedback: are these the things you want to be able to do? What did we forget? What could we take out to make room for things you care about more? Please leave your comments on the page itself; we’ll update it regularly based on what you say.

Written by Greg Wilson

2009/04/27 at 11:50

Posted in Content, Version 3

What Supervisors Need To Know

I received an interesting email yesterday from a grad student who took this course the last time it was offered at the University of Toronto.  It said in part:

My supervisor could better advise students doing computational work if they had more background knowledge. They are routinely faced with questions like:

  • Is a project possible, given the background of the student and the difficulty of the tasks?
  • How long should a project take, and what can be considered good progress?
  • What training should a student have?
  • How to manage collaboration between students, data archives, etc?
  • How to make sense of and build upon work done by previous students?

On a more personal note—I would enjoy my supervisor having a clearer idea of what I do.

It’s an interesting list, and quite different from a grad student’s. What else do you think people directing computational research, rather than doing it themselves, need to know?

Written by Greg Wilson

2009/04/23 at 12:00

Posted in Content

We’ve Started a FAQ

We have started a FAQ for the July 2009 offerings of the course in Edmonton and Toronto.  Please let us know if you have any questions that it doesn’t answer yet.

Written by Greg Wilson

2009/04/08 at 17:55

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

Cameron Neylon on the Three Opens

Cameron Neylon has another good post up, this one on open data, open source, and open process. Like many advocates of open science, he feels he has to choose between using open source software on one hand, and getting more science done on the other.  I sympathize, especially since my colleagues and I have to choose what to use and not use in the July 2009 run of the Software Carpentry course.

Written by Greg Wilson

2009/04/03 at 01:17

Posted in Noticed

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 gvwilson@cs.toronto.edu. Please also subscribe to the new Software Carpentry blog at https://softwarecarpentry.wordpress.com/ for updates.

Overview

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.

Instructor

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