Our lessons

Our Core Objectives

Library Carpentry workshops teach people working in library- and information-related roles how to:

  • Cut through the jargon terms and phrases of software development and data science and apply concepts from these fields in library tasks;
  • Identify and use best practices in data structures;
  • Learn how to programmatically transform and map data from one form to another;
  • Work effectively with researchers, IT, and systems colleagues;
  • Automate repetitive, error prone tasks.
Lesson materials are all available online, under a CC BY license, for self-directed study or for adaptation and re-use (as "Carpentries-based" training).

Our Core Curriculum

Our Core Curriculum consists of the lessons in the table below. These have been taught many times, and have been further refined after instructor and learner feedback. For more information regarding core lessons and workshops, see Our Workshops and the Workshop Overview.

The lessons introduce terms, phrases, and concepts in software development and data science, how to best work with data structures, and use regular expressions in finding and matching data. We introduce the Unix-style command line interface, and teach basic shell navigation, as well as the use of loops and pipes for linking shell commands. We also introduce grep for searching and subsetting data across files. Exercises cover the counting and mining of data. In addition, we cover working with OpenRefine to transform and clean data, and the benefits of working collaboratively via Git/GitHub and using version control to track your work.


LessonSiteRepositoryReferenceInstructor NotesStatusMaintainer(s)
Workshop OverviewStableShari Laster*, Carmi Cronje, Paul R. Pival, Anton Angelo (Past Maintainer: James Baker, Chris Erdmann)
Introduction to Working with Data (Regular Expressions)StableShari Laster*, Carmi Cronje, Paul R. Pival, Anton Angelo (Past Maintainers: James Baker, Chris Erdmann)
The UNIX ShellStableDanielle Kane*, Nilani Ganeshwaran, John Wright, Anna Oates, Tim Dennis (Past Maintainer: Belinda Weaver)
OpenRefineStableErin Carrillo*, Owen Stephens, Paul R. Pival, Kristin Lee (Past Maintainers: Carmi Cronje, Chris Erdmann, Juliane Schneider)
Introduction to GitBetaSilvia di Giorgio, Thea Atwood, Eric Lopatin, Drew Heles, Eva Seidlmayer (Past Maintainers: Katrin Leinweber, Belinda Weaver, Jez Cope, Chris Erdmann)

Extended Curriculum

The following Library Carpentry lessons can also be taught in addition to our core curriculum. Some of the lessons have been taught infrequently and still need further work. We would value any feedback on these lessons.


LessonSiteRepositoryReferenceInstructor NotesStatusMaintainer(s)
SQLStableJordan Pedersen* , Kristin Lee, Chris Erdmann, Lise Doucette (Past Maintainers: Elaine Wong, Janice Chan)
Tidy DataBetaSherry Lake*, Tim Dennis, Thea Atwood, Erika Mias (Past Maintainer: Jez Cope)
WebscrapingAlphaJoshua Dull*, Thomas Guignard (Past Maintainer: Belinda Weaver)
Introduction to PythonAlphaElizabeth Wickes*, Laura Wrubel, Konrad Foerstner, Drew Heles (Past Maintainers: Carlos Martinez, Richard Vankoningsveld)
Introduction to Data for ArchivistsAlphaKatherine Koziar*, Jeanine Finn, and Scott Peterson (Past Maintainers: Jenny Bunn, Noah Geraci, and James Baker)

* Indicates Lead Maintainer

Top 10 FAIR Data & Software Things

The Top 10 FAIR Data & Software Things are brief guides (stand alone, self paced training materials), called "Things", that can be used by the research community to understand FAIR in different contexts but also as starting points for conversations around FAIR.

Top 10 FAIR Data & Software ThingsBetaLiz Stokes, Chris Erdmann, Juande Santander-Vela (looking for Maintainers)

Conceptual Curriculum

The following lessons are conceptual (pre-alpha) and are currently being discussed and/or under development. Issues/pull requests are one way to see current activity but you can also reach out to the Maintainers to see where the lesson discussions/development are at.


LessonSiteRepositoryReferenceInstructor NotesStatusMaintainer(s)
MarcEditConceptualOwen Stephens*, Jennifer Eustis, Abigail Sparling (looking for Maintainers)
WikidataConceptualTill Sauerwein, Muhammad Elhossary, Konrad Förstner*, Rabea Müller (looking for Maintainers)
FAIR Data & SoftwareConceptualChris Erdmann*, Liz Stokes, Kristina Hettne, Carmi Cronje (looking for Maintainers)
Introduction to RConceptualClarke Iakovakis*, John Little, Stéphane Guillou, Tim Dennis (looking for Maintainers)
XMLConceptualCatherine Smith, Jesse Johnston, Phil Reed, Katrina Simone Fenlon, Nilani Ganeshwaran (looking for Maintainers)

In addition, lessons on Digital Preservation and Text and Data Mining are being discussed.

* Indicates Lead Maintainer

Lesson Status

Our lessons are in various stages of development - stable, beta, alpha, and conceptual.


These lessons are mature and ready to be taught. Most have been taught multiple times. The content is well-established, but minor changes and improvements (e.g. better explanations, spelling/grammar corrections, improved exercises) are always welcome.


These lessons are largely complete and should be ready to teach, but would benefit from improvements based on feedback from instructors who have taught them. New sections and rewrites/reorganisations of existing sections will be considered.


These lessons are under active development and may not be ready to teach without additional preparation and background knowledge. Further development work is strongly encouraged - please get in touch or check out outstanding issues on GitHub to find out what is needed.


These lessons are still in the conceptual phase where community members have just started to discuss general ideas , learner profiles, goals, summative and fomative assessments, concept maps, software and data to be used, how long the lesson should be, and connecting the dots before moving to the alpha phase.

Contributing to Lessons

All contributions are welcome. The level of work may vary depending on the status of the lesson. We recommend that you @mention the Maintainers of the lesson if you are picking up the tasks described in one of the open lesson issues or pull requests.

Lesson Development Process

Our recommended process for developing a new lesson is as follows:

  • Develop the initial content on GitHub using the Carpentries' set up instructions for new lessons. New lessons are built from clones of this repo.
  • Introduce yourself and the lesson on our Gitter channel or Topicbox list — there may well be willing volunteers to help with the content.
  • Teach the lesson, collect feedback, and perhaps raise issues or pull requests to improve the content.
  • Propose your lesson for the incubator by making a pull request (PR) against the Library Carpentry website, adding a link to your lesson repository as an alpha lesson.
  • Discuss the lesson with the community and, if necessary, offer suggestions on how to improve the lesson; if the lesson is considered suitable material for the Library Carpentry curriculum, a website maintainer will merge your PR into the main site
  • You and others will teach the lesson, collect feedback, and improve the content.
  • Propose your lesson for beta/stable by making a pull request against the Library Carpentry website, updating the status of your lesson.
  • Discuss the lesson further with the community; when the lesson is ready, a website maintainer will merge your pull request(PR).
  • Congratulations! Your lesson is now part of stable Library Carpentry!

New Lesson Expectations

In order to maintain consistent quality and style in the Library Carpentry lessons, we have a community-driven set of expectations for what a good lesson should look like. These should guide the review process at steps 5 and 8 above. Lesson developers and reviewers should also review The Carpentries Handbook, especially the section on Lesson Development and consult with the Curriculum Advisory Committee.

All stable lessons should:

  • have at least three active Maintainers.
  • include a short learner profile (i.e. who the lesson is designed for).
  • include concrete learning objectives.
  • be teachable in around three hours under normal circumstances.

Community Developed Lessons

The Carpentries also shares The Carpentries Community Developed Lessons. This includes The Carpentries Incubator (lessons under development and seeking peer review), and The CarpentriesLab (lessons that have been vetted by The Carpentries but are not part of our standard offerings).