This lesson is in the early stages of development (Alpha version)

Getting Started with Snakemake: Lesson Design


We are actively seeking contributors to help with design of exercises, feeback on lessons, proofreading etc. Please submit a pull request to make your contribution.


We are loosely following the reverse instructional design process described in the software carpentry lesson template here: reverse design


1. Final task (Practical exercise)


What should learners be able to do, at the end of this unit? Please describe this in one to two sentences, in terms of a practical, real-world task. Your task(s) should be achievable in the practical time allotted. Individual tasks should take 1/2 to 2 days.

Task: Create an analysis pipeline using Snakemake, then visualise and execute the workflow.

Task: Optionally, learners can execute their workflow on a HPC cluster.


All required data will be supplied in a single downloadable archive. Data requirements are minimal, consisting primarily of some public-domain novels from Project Gutenberg.

2. Concept map

What are all the ideas, connections, and assumptions a learner must master to achieve the task(s) described above? Please take photos of your concept maps and upload to the figures directory, with a link below.

3. Episodes

Break your concept map up into smaller ‘chunks’. Each new map should only contain 5-6 ideas. These form the individual teaching ‘episodes’ from which our larger topic unit is composed.

Give each ‘chunk’ a title and link to the smaller concept map figure below. Estimate the teaching time.

4. Ordering

We all know how interconnected every concept is, however teaching happens in linear time (let’s debate this over dinner!). So, we now need to turn our concept networks into ordered lists.

Start by ordering your ‘chunks’ or episodes. Then write each idea or concept within a chunk onto a sticky note, and order the sticky notes. Make a poster of your stick note episodes! Do you episodes fit into your teaching time? Bring it to lunch for feedback.

Once you are happy with your design, please transcribe it below.

5. Exercises (formative assessments)

Each sticky note needs an exercise! Start putting your episodes into GitHub, and formulating an exercise to test / teach each concept. Keep in mind the ‘data’ you described back in step one. Try and keep the exercises relevant and engaging.

Keep a note of exercises / tasks that still need work here. Raise them as git issues for completion post workshop.