Teaching basic lab skills
for research computing

Our Lessons

A Software Carpentry workshop is taught by two trained and badged instructors. Over two days, they teach our three core topics: the Unix shell, version control with Git, and a programming language (Python or R). Curricula for these lessons in English and Spanish (select lessons only) are below.

You may also enjoy Data Carpentry's lessons, which focus on data organization, cleanup, analysis, and visualization.

Please contact us with any general questions.

Curriculum

Our lessons are developed collaboratively on GitHub. You can check the status of each lesson on our dashboard, or look at older releases.

Availability

All of our lessons are freely available under the Creative Commons - Attribution License. You may re-use and re-mix the material in any way you wish, without asking permission, provided you cite us as the original source (e.g., provide a link back to this website).

Contributing

If you have questions about contributing to our lessons, visit each lesson's GitHub repo to submit an issue or to get the link to join that lesson's Maintainers' discussion on Slack. For general information on how to contribute to our lessons, see our contributors guide. To learn more about how our lessons are structured, and why, please see the example lesson.

Our Core Lessons in English

Lesson Site Repository Reference Instructor Guide Maintainer(s)
The Unix Shell Gabriel Devenyi, Ashwin Srinath, Colin Morris, Will Pitchers
Version Control with Git Ivan Gonzalez, Daisie Huang, Nima Hejazi, Katherine Koziar, Madicken Munk
Programming with Python Trevor Bekolay, Valentina Staneva, Anne Fouilloux, Maxim Belkin, Mike Trizna
Plotting and Programming in Python Nathan Moore, Allen Lee, Sourav Singh, Olav Vahtras
Programming with R Daniel Chen, Katrin Leinweber, Diya Das
R for Reproducible Scientific Analysis Thomas Wright, Naupaka Zimmerman, Jeffrey Oliver, David Mawdsley

The lesson template (used to build each lesson page) and the workshop template (used to build each scheduled workshop's website) are available on GitHub.

Our Core Lessons in Spanish

Lesson Site Repository Reference Instructor Guide Maintainer(s)
La Terminal de Unix Ivan Gonzalez, Clara Llebot, Verónica Jiménez, Silvana Pereyra, Heladia Salgado
Control de versiones con Git Ivan Gonzalez, Rayna Harris, Clara Llebot
R para Análisis Científicos Reproducibles Rayna Harris, Verónica Jiménez, Silvana Pereyra, Heladia Salgado

The lesson template and the workshop template are available in Spanish. If you are interested in getting involved with our Spanish lessons contact us.

La la plantilla de lección y la plantilla de taller están disponibles en español. Si está interesado en participar en nuestra lección de español contáctenos.

Additional Lessons

These lessons are not part of Software Carpentry core lessons but can be offered as supplementary lessons. Please contact us for more information.

Lesson Site Repository Reference Instructor Guide Maintainer(s)
Automation and Make Gerard Capes
Programming with MATLAB Ashwin Srinath , Gerard Capes
Using Databases and SQL Abigail Cabunoc Mayes, Sam Hames, Henry Senyondo
Version Control with Mercurial Doug Latornell

Contributed

These are Carpentries style lessons that have been contributed by community members and are not part of Software Carpentry's official offerings. If you have a lesson to include here, please contact us so we can review your lesson for inclusion here. To be considered, lessons should use our template, be hosted in an original GitHub repo (not a fork), be offered under an open license, have been taught at least once, and be actively maintained (with at least one lead maintainer).

Lesson Site Repository Maintainer(s)
Testing and Continuous Integration with Python Katy Huff
Programming with GAP Alexander Konovalov

Dialogue & Discussion

You can review our commenting policy here.