Skip to content

Develop an Introductory CWL tutorial #160

Closed
@tobyhodges

Description

@tobyhodges

tl;dr: We need a tutorial/lesson aimed at teaching CWL to complete beginners. Are you interested in helping to make this happen?

Based on discussions with various people in the CWL user/developer community, and my own experience learning and implementing the language, I believe that what we need is two distinct presentations of information for non-experts:

  1. material designed specifically to teach CWL to novices (I'll refer to this as a lesson from now on), and
  2. documentation designed to be used as a reference for those who know enough of the vocabulary and the approach to thinking about describing tools and workflows (these people are sometimes called competent practitioners - see figure below)

stages of learning
(image from Carpentries Instructor Training)

To use the analogy that I gave to @mr-c earlier today: the following resources are available to Python users, catering to people at different stages of learning the language:

In it's current form, the CWL User Guide falls somewhere between the first two above: not quite thorough enough on the basics, lacking advice on how to think about workflows, and with too steep a learning curve to be friendly for total beginners; not detailed/exhaustive enough for those who want to move beyond the basics.

I propose that we work together to develop a Carpentries-style lesson, aimed at teaching enough CWL and "workflow thinking" to move learners from "novice" to "competent practitioner" stage. This would take the same approach used by Software or Data Carpentry to develop material with a manageable learning curve, containing plenty of exercises, with clear and achievable learning objectives, and focusing on the concepts that novices find difficult about learning CWL. We might even consider basing (parts of) it on the existing Software Carpentry Make lesson - or we might decide to start from scratch.

Note: I am absolutely not a CWL expert. What I can offer:

  1. Guidance on developing good lesson material, writing good exercises, learning objectives, etc
  2. Explanation and support with developing teaching material using the Carpentries lesson template
  3. The opportunity for contributors to come to EMBL in 2020 to help teach this lesson as a workshop for bioinformaticians/computational biologists who want to start using CWL to describe their analyses (This offer is probably limited to travel within Europe only, I'm afraid)

What I can't offer:

  1. Loads of time to work on writing material myself
  2. Expert knowledge of CWL
  3. Extensive experience of using CWL

Questions that I'm asking here:

  1. Do you think this is a good idea?
  2. What other resources already exist out there that teach CWL?
  3. What were the hardest things for you when learning CWL? (Particularly interested to hear from anyone who wasn't already a computing/workflows expert here.)
  4. Would you be interested in helping develop this material?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions