Teaching basic lab skills
for research computing

Pitching a Workshop

What is Software Carpentry?

A growing number of researchers spend more and more time building and using software, but few have ever been taught how to do this efficiently. In many cases they end up spending more time than necessary to create results whose reliability and reproducibility is unknown.

The aim of Software Carpentry is to teach researchers the fundamental skills that will help them be more productive while producing work of higher quality. We do that by teaching workshops where students learn how to automate tasks using the Unix shell, how to track and share work using version control, and how to write software in Python, R, or MATLAB that is readable, reusable, and reliable.

All of our materials are freely available under an open access license, and our instructors are volunteers. Together, this makes Software Carpentry extremely cost-effective, as evidenced by our growth:


Workshop Growth


Learner Growth


Instructor Growth

Our Results

Feedback from past participants show that this training can save people half a day to a day a week for the rest of their careers. Students are able to do the things they used to do faster and more accurately, but are also able to tackle new challenges and pursue new research directions.

How Does Software Carpentry Work?

Once a site requests a workshop, we locate instructors that can come teach. All of the instructors are volunteers, so the host only pays for their travel and accommodation, not their time. The host also pays an administrative fee to the Software Carpentry Foundation which is used to cover the organizational and development work needed to keep things running.

Software Carpentry also has a training program that all its instructors need to take in order to teach. This consists of an online program focusing on modern evidence-based teaching practices combined with an introduction to our lesson materials.