Teaching basic lab skillsfor research computing

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 bootcamp 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 admin@software-carpentry.org. Please also subscribe to the new Software Carpentry blog at http://software-carpentry.org/blog/ 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.