• This training aims to teach you a process for designing a lesson and the skills to develop it as an open source website, in collaboration with others.

Lesson Design

  • We will learn to develop lessons based on the (slightly adapted) Nicholls’ backward lesson design process.
  • There can be many reasons to create a new lesson.
  • This training will give you a process to follow to ensure your lesson is effective.

Identifying Your Target Audience

  • We recommend an iterative lesson design process that begins with identifying the target audience, before defining learning outcomes, then creating assessments, writing explanatory content, and evaluating the lesson in a workshop.
  • Thinking about the target audience early in the design process helps to ensure that your lesson is built around the needs and motivations of real people.
  • Use the description of your target audience to help attract people with the appropriate interests and prior knowledge to your lesson.


Defining Lesson Objectives/Outcomes

  • Defining objectives for a lesson can help to focus your content on the most important outcomes, and outline the scope of the project.
  • Following the SMART framework can help make your learning objectives as useful as possible.
  • Leaving objectives unrealistic or undefined increases the risk of a lesson losing focus or spending time on activities that do not help learners gain the most important skills.


  • Learning objectives for a lesson can help you split up its content into chunks


The Carpentries Workbench

  • Lesson sites are built from source repositories with GitHub Pages.
  • A new lesson repository can be created from a template maintained by The Carpentries, and configured by adjusting the config.yaml file.
  • The main pages of a lesson website are created from Markdown or RMarkdown files in the episodes folder.


Defining Episode Objectives

  • Objectives can be defined for episodes within a lesson, to guide individual steps along the pathway of the lesson.
  • Objectives should be included in each episode page as an objectives fenced div.


Designing Assessments

  • Assessments are a way to determine whether the objectives you defined for the lesson have been reached.
  • Exercises help learners commit what they’ve learned to long-term memory.
  • Some types of exercises are better for particular audiences and to address certain objectives.
  • Formative assessment happens during teaching and provides feedback both to an instructor and a learner - about progress and whether learning of new concepts occurred but also about any misunderstandings and misconceptions which can hinder further learning.

Implementing Exercises

  • Exercises (and solutions) go in blocks using fenced divs in the lesson.


Example Data and Narrative

  • Using a narrative throughout a lesson helps reduce learner cognitive load
  • Choosing a lesson includes considering data license and ethical considerations.
  • Openly-licensed datasets can be found in subject area repositories or general data repositories.


How to Write a Lesson

  • The objectives and assessments provide a good outline for an episode and then the text fills in the gaps to support anyone learning or teaching from the lesson.
  • It is important to review your lesson for demotivating language, cognitive load, and accessibility.
  • To reduce cognitive load and ensure there is enough time for for the materials, consider which lesson objectives are not needed and remove related content and assessments.


How we Operate

  • Teaching a lesson for the first time is an essential intermediate step in the lesson development process.
  • The Carpentries lesson developer community shares their experience on multiple communication channels.

Preparing to Teach

  • Spending time on preparing your teaching and feedback collection will make you and your participants get the most out of your workshop pilot.
  • Creating clear setup instructions as part of your lesson and circulating them ahead of the pilot is time well-invested and will give you more time when teaching the lesson.
  • Instructor Notes are teaching tips that you should include with your lesson to help you (a few months down the line) and other instructors, who have the relevant topic knowledge but have not been involved in the lesson design and development, deliver your lesson more successfully.


  • We have learned about the importance of exercises and data in a lesson, the ecosystem The Carpentries provides for lesson development, and how to prepare to teach a lesson for the first time.
  • Before the next part of the training, you should teach a part of your new lesson to a real audience and reflect on the experience.

Reflecting on Trial Runs

  • “Perfect is the enemy of good” - your lesson does not need to be perfect before you pilot or release it for community review. Early feedback from the target audience will help you avoid straying off your lesson plan.
  • Identify changes and improvements you want to make as a result of trialling your lesson and schedule co-working sessions to work on these tasks.


Collaborating with Your Team

  • GitHub’s features Issues, Pull Requests and Mentions can all be used to transparently and effectively communicate and collaborate in a team working on a lesson development project.
  • Slack and emailing lists provide communication channels outside of GitHub - for quick day-to-day messaging and more permanent discussions around lesson issues and development, respectively.


Collaborating with Newcomers

  • “If a project doesn’t make a good first impression, newcomers may wait a long time before giving it a second chance” - Karl Fogel, the author of “Producing Open Source Software: How to Run a Successful Free Software Project”.
  • You should make an active effort to attract potential collaborators and try to make them all feel welcome and included. The Carpentries Help Wanted page and featuring in the Incubator Lesson Spotlight can boost the visibility of your lesson. Creating the appropriate documentation and using GitHub features such as labels, and issue/pull request templates will help lower the barriers for contributions to your project.
  • When you design your lesson with new contributors and increased accessibility in mind, you make things better for everyone in the process.
  • Scheduling regular co-working sessions, blocking time in the calendar for issue triage, and setting and being responsive to GitHub notifications will ensure regular progress on the lesson.

Project Management and Governance

  • Being intentional about task/project management for your lesson development project is better than making it up as you go along.
  • Different tools and platforms exist to help you with project management - chose one that suits your team best.
  • Dedicated work sprints seem to work well for lesson development and GitHub’s Milestones can be used effectively to plan and manage such sprints.
  • Make sure to consider and establish a governance model for your project early on - to describe the ground rules of participation and the process for decision making within the project.

Final Wrap-up

  • Documenting your lesson project, curating your lesson repository, welcoming new contributions, and taking advantage of GitHub’s project management features all make it easier for people to collaborate with you.
  • Any lesson can be improved with feedback, including this one.