Suggested Lessons for Teaching Demonstrations

The list below shows lessons that have been reviewed for good and bad start points to use for a teaching demonstration. When selecting a lesson for a teaching demonstration, trainees should review this list to ensure it is suitable.

Those who wish may also consult the detailed tables following the list to identify episodes marked “avoid” because they will not be asked to teach those episodes. However, we recommend reviewing the full lesson regardless, as this will help provide context for other start points and is also good preparation for your eventual teaching role!

Note that while a trainee can choose the lesson to teach from, the Trainer leading the demo session will choose the specific episode at the time of the demo session. If you would like to use a lesson that is not listed here, you may contact the Instructor Trainer leading your teaching demonstration or (if no one is listed for your session) email instructor.training@carpentries.org.

If the episode chosen by the trainer is very short and finishes in less than 5 minutes, the trainee can continue on to the next episode in that lesson. They are not required to cover any specific amount of content within the 5 minute period.

Data Carpentry: Ecology

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Data Organization in Spreadsheets * Dates as Data
* Quality Control
* Introduction
* Formatting Data Tables in Spreadsheets
* Formatting problems
* Exporting data
Episodes listed to avoid have no live coding.
Data Cleaning with OpenRefine Exploring Data with OpenRefine any other episode The intro episode has no live coding.
Other episodes have dependencies.
Data Analysis and Visualization in R * Introduction to R
* Starting with Data
* Before We Start
* Manipulating Data
* Data Visualization with ggplot2
* SQL Databases and R
Before We Start has no live coding.
Manipulating Data and Data Visualization with ggplot2 have dependencies.
SQL and RSQLite are taught less frequently.
Data Management with SQL any other episode Databases using SQL Live coding starts in the middle of the episode to avoid.
Data Analysis and Visualization in Python * Short Introduction to Programming
* Starting with Data
* Indexing, Slicing, and Subsetting
* Data Types and Formats
* Combining DataFrames with Pandas
* Data Workflows and Automation
any other episode Before we Start has no live coding.
Later episodes have dependencies.

Data Carpentry: Genomics

If you are an instructor in training and wish to use lessons from Data Carpentry’s Genomics curriculum for your teaching demo, please read these instructions to be sure you are prepared. You must follow these steps before your teaching demo, or you will be asked to reschedule.

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Project Organization and Management for Genomics none all episodes Discussion based. No live coding.
Introduction to the Command Line all episodes none If using Introducing the Shell begin with cd shell_data
Data Wrangling and Processing * Assessing Read Quality
* Trimming and Filtering
* Automating a Variant Calling Workflow
any other episode For Assessing Read Quality begin with gunzip SRR2584863_1.fastq.gz
Introduction to Cloud Computing * Logging onto the Cloud
* Fine tuning your Cloud Setup
any other episode Have trainees teach the version “AWS_UNIX”.
Data Analysis and Visualization in R none all episodes This lesson is not yet stable.

Data Carpentry: Social Sciences

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Data Organization in Spreadsheets * Dates as Data
* Quality Assurance
* Introduction
* Formatting Data Tables in Spreadsheets
* Formatting problems
* Exporting data
Episodes listed to avoid have no live coding.
Data Cleaning with OpenRefine Working with OpenRefine any other episode Introduction has no live coding.
Later episodes have dependencies.
Data Analysis and Visualization with R any other episode * Before We Start
* Data Visualization with ggplot2
Before We Start has no live coding.
Data Visualization with ggplot2 has dependencies.

Data Carpentry: Geospatial

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Project Organization and Management none all episodes This lesson has no live coding.
Do not use for teaching demos.
Introduction to R for Geospatial Data any episode none
Introduction to Raster and Vector Data with R * Intro to Raster Data in R
* Reproject Raster Data in R
* Work with Multi-Band Rasters in R
* Open and Plot Shapefiles in R
* Handling Spatial Projection & CRS in R
* Convert from a .csv to a Shapefile in R
* Raster Time Series Data in R
any other episode Many episodes rely on data from previous episodes.
Trainees may need extra time to set up their environment.

Data Carpentry: Astronomy

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Foundations of Astronomical Data Science * Basic Queries
* Coordinate Transformations
any other episode Later episodes have dependencies.
For Basic Queries skip the episode introduction, Query Language, and Using Jupyter sections, and begin with Connecting to Gaia (from astroquery.gaia import Gaia)

Data Carpentry: Image Processing

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Image Processing with Python * Working with skimage
* Drawing and Bitwise Operations
* Creating Histograms
* Thresholding
any other episode Other episodes begin with too much explanatory content for a teaching demo.
This lesson is designed to be taught with a JupyterLab environment.

Library Carpentry

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
Library Carpentry: The Shell Lesson * Navigating the filesystem
* Working with files and directories
* Automating the tedious with loops
* Counting and mining with the shell
What is the shell?
* Working with free text
What is the shell? has no live coding.
* Working with free text has dependencies
Library Carpentry: OpenRefine * Importing data into OpenRefine any other episode Introduction to OpenRefine has no live coding.
Later episodes have dependencies.
Library Carpentry: Introduction to Working with Data (Regular Expressions) No episodes Avoid all episodes. Episodes are built through exercises without an obvious live-coding component that is not explaining the solution to the exercise.
Library Carpentry: Introduction to Git * Getting started with Git any other episode What is Git/GitHub? has no live coding.
Later episodes have dependencies.
Library Carpentry: SQL * Selecting and Sorting Data
* Filtering
* Ordering and Commenting
* Aggregating and Calculating Values
* Joins and aliases
* Saving queries
* Creating tables and modifying data
* Database design
* Other database tools
* Extra-challenges
* Good style

Software Carpentry

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
The Unix Shell any other episode Introducing the Shell Introducing the Shell has no live coding.
Version Control with Git * Setting up Git
* Creating a Repository
* Tracking Changes
any other episode Automated Version Control has no live coding.
Later episodes have dependencies.
Programming with Python any other episode Debugging Debugging has no live coding.
Plotting and Programming in Python any other episode Variable Scope
Programming Style
Variable Scope is very short and more conceptual/exercises than live coding
Programming Style is brief, and mostly concepts/excercises more than live coding.
R for Reproducible Scientific Analysis any other episode Splitting and Combining Data Frames with plyr
Writing Good Software
The plyr package is largely deprecated.
Writing Good Software has no live coding.
Programming with R * Analyzing Multiple Data Sets
* Loops in R
* Making Choices
* Creating Functions
* Best Practices for Writing R Code
* Reading and Writing CSV Files
The episodes to avoid have dependencies.
Using Databases and SQL any other episode Data Hygiene Data Hygiene has no live coding.
Automation and Make * Introduction
* Makefiles
any other episode Later episodes have dependencies.
Version Control with Mercurial * Configuring Mercurial
* Creating a Repository
* Tracking Changes to Files
any other episode Automated Version Control has no live coding.
Later episodes have dependencies.

Lecciones en español

Lesson (For Trainers) Good Starting Points (For Trainers) Avoid Notes
La Terminal de Unix any other episode Introducción a la Terminal Introducción a la Terminal no tiene programando en vivo.
Control de versiones con Git * Configurando Git
* Creando un repositorio
* Rastreando Cambios
cualquier otro episodio Control Automatizado de Versiones no tiene programando en vivo.
Los episodios posteriores tienen dependencias.
R para Análisis Científicos Reproducibles cualquier otro episodio Escribiendo buen software Escribiendo buen software no tiene programando en vivo.
Análisis y visualización de datos usando Python * Breve introducción a la Programación en Python
* Comenzando con datos
* Indexación, segmentación y creación de subconjuntos
* Data Types and Formats
* Combinando DataFrames con Pandas
* Flujos de trabajo y automatización
cualquier otro episodio Antes de comenzar has no live coding.
Los episodios posteriores tienen dependencias.