Software Carpentry: July 13-31 in Toronto

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. 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.
comments powered by Disqus