The Carpentries hosts a large collection of lessons teaching a range of software and data skills for a variety of audiences. This collection combines lessons from our lesson programs, which each focus on a slightly different target audience and mission.
All lessons are self-contained, but many form part of a larger curriculum and are designed to have the most impact within that context. If a lesson particularly interests you as a teaching or learning resource, we recommend that you explore the rest of the curriculum and/or lesson program that it is drawn from. To help you decide which Lesson Program is best for you, please read the overview of our curricula.
All of our lessons have been collaboratively developed by members of The Carpentries community, and subsequently updated and polished based on extensive testing and feedback from Instructors.
Search lessons
Our lesson collection is extensive. Use the search bar to find a particular lesson (e.g. The Unix Shell) or lessons related to a general topic (e.g. data organisation). Use the filtering options to narrow down your results or browse lessons by category. Clear filters before performing a new search.
Request an accommodation
The Carpentries is committed to providing inclusive and accessible content that enables all individuals, including those with disabilities, to participate and engage fully. To request an accommodation for a Carpentries event, please visit our Diversity, Equity, and Inclusion Statement and fill out the accommodation request form provided.
No results found meeting your criteria. Please try again.
Software Carpentry English
Shell
An introduction to working with the shell, for researchers and others who want to learn how to automate repetitive tasks and easily combine smaller tasks into larger, more powerful workflows.
Automating tasks
Tracking versions
Software Carpentry English
Git
An introduction to working with Git and GitHub, for researchers and others who want to learn how to track versions of their files and collaborate more easily on projects.
Collaborating
Software Carpentry English
Python
An introduction to Python built around data analysis, for researchers and others who want to learn how to write programs that perform reproducible analyses.
Programming
Software Carpentry English
Python
An introduction to Python that places an emphasis on working with and visualising tabular data.
Data visualisation
Programming
Software Carpentry English
R
An introduction to R built around data analysis, for researchers and others who want to learn how to write programs that perform reproducible analyses.
Programming
Software Carpentry English
R
An introduction to R that places an emphasis on making data analysis reproducible, using examples of data processing and visualisation.
Data visualisation
Programming
Software Carpentry Spanish
Shell
Software Carpentry Spanish
Git
Software Carpentry Spanish
R
Software Carpentry English
Make
An introduction to automation of analysis workflows with Make, for researchers and others who want to perform multi-step analyses on the command line more reproducibly and efficiently.
Automating tasks
Software Carpentry English
MATLAB
An introduction to MATLAB built around data analysis, for researchers and others who want to learn how to write programs that perform reproducible analyses.
Data visualisation
Programming
Software Carpentry English
SQL, SQLite
An introduction to querying and managing relational databases with SQLite, for researchers and others who want to learn how to access, filter and summarise large vlumes of data.
Accessing data
Library Carpentry English
A lesson to introduce Library Carpentry and summarise the lessons that can be taught in a workshop.
Library Carpentry English
Regular expressions
An introduction to working with data using regular expressions, for people with library- and information-related roles who want to learn how to perform pattern-based searches in large bodies of text.
Pattern matching
Library Carpentry English
Shell
An introduction to working with the shell, for people with library- and information-related roles who want to learn how to work with files and folders and automate repetitive tasks from the command line.
Automating tasks
Library Carpentry English
OpenRefine
An introduction to working with data in OpenRefine, for people with library- and information-related roles who want to learn how to clean, filter, and transform large volumes of tabular data.
Library Carpentry English
Git
An introduction to working with Git and GitHub, for people with library- and information-related roles who want to learn how to track versions of their files and share their work in a public repository.
Tracking versions
Web publishing
Library Carpentry English
An introduction to relational database management with SQLite, for people with library- and information-related roles who want to learn how to summarise and connect information in large volumes of data.
Library Carpentry English
An exploration of good practices in data organisation and wrangling in spreadsheets, for librarians and those in information-related roles.
Library Carpentry English
(will be removed from LC lessons page)
Library Carpentry English
Python
An introduction to programming in Python for librarians with little or no previous programming experience who want to learn how to write programs that can automate the processing of large volumes of information. (alpha)
Library Carpentry English
Regular expressions
An exploration of good practices and useful skills for working with data, for archivists who want to learn how to work with data and to match patterns in large volumes of text. (alpha)
Library Carpentry English
R
An introduction to programming in R for librarians with little or no previous programming experience who want to learn how to write programs to analyse large volumes of data and visualise the results. (alpha)
Data Carpentry English
Python
An introduction to core concepts necessary to efficiently study the ever-growing datasets developed in modern astronomy. This curriculum is aimed at researchers and others, who want to perform database operations (SQL queries, joins, filtering) and to create publication-quality visualisations with astronomy data.
Data visualisation
Accessing data
Programming
Data Carpentry English
A lesson to introduce the Data Carpentry Ecology curriculum.
Data Carpentry English
Spreadsheets
An exploration of good practices in data organisation and wrangling in spreadsheets, aimed at ecologists who want to learn how to prepare tabular data for downstream analysis.
Data organisation
Data Carpentry English
OpenRefine
An introduction to the OpenRefine tool, aimed at ecologists who want to clean and format data effectively and automatically track the changes they make.
Data Carpentry English
SQL, SQLite
An introduction to relational databases and the SQL language that can be used to query them, for ecologists who want to store and access data effectively.
Data visualisation
Accessing data
Data Carpentry English
R
An introduction to R designed for participants with no programming experience, aimed at ecologists who want to load, process, summarise, and visualise data.
Data visualisation
Programming
Data Carpentry English
Python
An introduction to Python designed for participants with no programming experience, aimed at ecologists who want to load, process, summarise, and visualise data.
Data visualisation
Programming
Data Carpentry Spanish
Python
(beta)
Data Carpentry English
A lesson to introduce the Data Carpentry Genomics curriculum.
Data Carpentry English
Spreadsheets
An introduction to project and data management, for researchers who want to learn how to access, prepare, organise, and store large volumes of genomic data.
Data organisation
Data Carpentry English
Shell
An introduction to working with the shell, for researchers who want to learn how to navigate, organise, and process genomic data from the command line.
Automating tasks
Data Carpentry English
Shell
A walkthrough of a typical variant calling pipeline, for researchers who want to create a genomics analysis pipeline in the shell.
Data organisation
Data Carpentry English
Shell
An introduction to the fundamental concepts of cloud computing, for researchers who want to learn how to access and use on-demand computing resources to fit their needs.
Accessing remote computers
Data Carpentry English
R
An introduction to using R for novice programmers who want to use the language to perform reproducible analyses of tabular genomics data, and visualise the results. (alpha)
Data visualisation
Programming
Data Carpentry English
A lesson to introduce the Data Carpentry Geospatial curriculum.
Data Carpentry English
An overview of the core concepts of geospatial data, for researchers who want to start working with raster or vector data.
Data Carpentry English
R
An introduction to using R for novice programmers who want to use the language to load and manipulate tabular data.
Programming
Data Carpentry English
R
An introduction to working with spatial data in R, for researchers and others who want to open, process, summarise, and plot vector and raster-format spatial data.
Data visualisation
Programming
Data Carpentry English
A lesson to introduce the Data Carpentry Social Science curriculum.
Data Carpentry English
Spreadsheets
An exploration of good practices in data organisation and wrangling in spreadsheets, aimed at social scientists who want to learn how to prepare tabular data for downstream analysis.
Data organisation
Data Carpentry English
OpenRefine
An introduction to the OpenRefine tool, aimed at social scientists who want to clean and format data effectively and automatically track the changes they make.
Data Carpentry English
R
An introduction to R designed for participants with no programming experience, aimed at social scientists who want to load, process, summarise, and visualise data.
Programming
Data visualisation
Data Carpentry English
Python
An introduction to Python designed for participants with no programming experience, aimed at social scientists who want to load, process, summarise, and visualise data. (alpha)
Programming
Data visualisation
Data Carpentry English
SQL
An introduction to relational databases and the SQL language that can be used to query them, for social scientists who want to store and access data effectively. (alpha)
Data Carpentry English
Python
An introduction to the core concepts and fundamental steps of image data processing, for researchers and others who want to use Python to programmatically segment images and extract individual objects for downstream analysis. (beta)
Data visualisation
Image Processing
Programming
Data Carpentry English
(alpha)
Data Carpentry English
(alpha)