Skip to main content Site map
HomeNews and blogs hub

Designing Effective Intermediate-Level Courses: Challenges and Insights

Bookmark this page Bookmarked

Designing Effective Intermediate-Level Courses: Challenges and Insights

Author(s)
Matthew Bluteau

Matthew Bluteau

SSI fellow

Aleksandra Nenadic

Aleksandra Nenadic

Training Team Lead

Colin Sauze

Colin Sauze

SSI fellow

Samantha Wittke

Samantha Wittke

SSI fellow

Lisanna Paladin

Jacobo Miranda

Simon Christ

Sven van der Burg

Candace Moore

Samantha Ahern

Posted on 28 January 2025

Estimated read time: 7 min
Sections in this article
Share on blog/article:
LinkedIn

Designing Effective Intermediate-Level Courses: Challenges and Insights

The Carpentries logo, a lit keyboard

From: Breakout session “Developing and Delivering Training Material at the Intermediate Level”, CarpentryConnect Heidelberg 2024

One of the most common questions from learners who have completed a Carpentries workshop on foundational computational or data analysis skills is “What course should I take next?” This is not only relevant for recent attendees but also for those who participated in a workshop some time ago. Addressing this question requires us to focus on intermediate-level learning, something that an estimated one-third of the lessons in the Carpentry Lesson Incubator are already aiming to do. These lessons cover topics such as containerization, advanced Git workflows, and machine learning skills - topics that go beyond the novice level but are not yet aimed at experts. Within the Carpentries pedagogical model, we are helping learners advance from novices to competent practitioners.

But how do these intermediate lessons differ from the foundational ones?  At a breakout session “Developing and Delivering Training Material at the Intermediate Level” delivered at CarpentryConnect Heidelberg 2024, Matt and Aleks shared their insights as lesson developers in creating lessons on more intermediate topics and, together with the audience, explored key considerations, challenges, and strategies for designing and delivering effective intermediate-level courses.

Key objectives were to:

  1. Leverage community expertise: Collect insights from educators who have experience teaching intermediate-level courses.
  2. Establish guidance and document pitfalls: Develop a resource that outlines best practices for course design and delivery.
  3. Invite community feedback: Share this guidance widely to refine and expand it based on collective input.
  4. Integrate with existing resources: Eventually, incorporate these principles into established training frameworks, such as Collaborative Lesson Development Training.

Existing Principles for Lesson Design

We started by recapping the existing lesson design principles as taught by The Carpentries in their “Collaborative Lesson Development Training” Programme”:

  • Understanding your learners (target audience) is critical. 
  • Drawing from the Dreyfus model of skill acquisition, we know that: novices benefit from worked examples and step-by-step instructions. Competent practitioners need space to explore options and develop their own solutions and overly prescriptive lessons may hinder their learning.
  • Creating learner personas and defining prerequisites can help set realistic expectations and ensure the course is appropriately tailored.
  • Clearly defining learning objectives should be based on the target audience's needs.
  • Focusing on authentic tasks in training that reflect real-world challenges similar to those they are facing makes lessons more engaging, learners more motivated and aids learning.

All of the above remains highly relevant for lesson development at any level; however, intermediate-level instruction may diverge from the standard delivery techniques typically used in novice workshops.

Challenges and Insights from Experience

  • Audience diversity: defining the audience is harder at the intermediate level. Learners arrive with even more pronounced variations in the levels of expertise, making it difficult to design a one-size-fits-all curriculum. Preliminary assessments and a clear definition of prerequisites can partially address this. Design lessons with optional exercises to accommodate varying expertise levels. This has the added benefit of helping with the pacing of the course: instructors won’t feel as much pressure to keep the course moving to avoid too many learners waiting with nothing to do.
  • Effective pre-workshop assessment and prerequisites list: developing and enforcing some kind of assessment is even more important; it is not just enough to list prerequisites and self-assess - learners should go through a quiz (“sorting hat”) to “sort” them based on the number of points they scored or are asked to solve some coding puzzles (e.g. Advent of Code - small programming puzzles for a variety of skill sets and skill levels). Making the pre-course assessment more like a game or puzzle has been anecdotally well-received, but it is important to note that it should be fairly restricted in scope and usage. These gateway mechanisms should be complemented with guidance on natural learning pathways - clear, structured routes through curricula of varying difficulty, with links to prerequisite courses for advanced levels (e.g. see Rosalind's platform for learning bioinformatics).
  • Expanding course formats and teaching methods: traditional 2-day workshop format is sometimes insufficient for intermediate topics; live-coding that is used as an effective teaching method for novices may not be suitable for intermediate learners who may appreciate a more self-paced, self-learning style with guidance from instructors or helpers. Flipped classrooms may work better here - learners are given course material to read beforehand, then meet with instructors and work through the given exercises to apply the learned content along with some group activities.
  • Post-course engagement practicing what you have learned is a more effective way to advance from one level to another. Self-guided follow-up projects to allow learners to work on independent projects after the course with opportunities for trainer feedback. At the advanced level, it is also possible to provide “bring your own code” sessions: learners are encouraged to apply the tools and techniques learned in a workshop to their own work and can join a support session a few weeks after the workshop.
  • Alternative structures: short, biweekly meetings with instructors paired with challenging assignments in between; guided online learning through a community-supported platform where answers can be provided by more experienced members of the community. Advanced workshops can be more niche topics, and reaching learners can be hard. With the “bring your own classroom” one can provide training, stream it and encourage smaller groups/teams in different locations to follow the stream and do the exercises with their peers (scales well but time zones could pose an issue).
  • New content and presentation techniques: intermediate learners may require a greater emphasis on theoretical concepts, which take longer to teach than novice-level skills, and a mix of instructional methods, including live coding and slides (diagrams), to effectively convey complex ideas. However, the connection to authentic tasks should not be lost. The “intermediate” mental model has more connections that need to be explored and correspondingly an instructor will often not be able to reside solely in one tool / environment (e.g. the terminal). Instructors should be prepared to demonstrate multi-step tasks that span tools or multiple facets of a tool (e.g. the many components of an IDE).
  • Adaptability of the content and timing: structure lessons with flexible, modular components and allow for adjustments (a selection of sections to cover) based on the cohort, while maintaining the overall session duration the same. Creating detailed instructor notes on how to deliver the lesson becomes even more critical to help instructors tailor the depth of content delivery to the audience's needs. 
  • Diverse exercise formats: incorporate optional and supplementary materials, including varied exercises that scale in complexity (e.g., basic code answers, optimised code solutions, or optimised code solutions with documentation). Increase paired activities where students collaborate on challenges, either solving them together or individually and then teaching each other. 

Conclusion

Intermediate-level courses play a critical role in supporting learners on their journey from novice to expert. By addressing challenges, refining principles, and leveraging community expertise, we can create engaging, effective, and inclusive learning experiences. Together, we can build a roadmap that bridges the gap between foundational skills and advanced mastery.

We invite you to share your insights, vote on priority topics, and contribute to this evolving conversation - please get in touch with Matt and Aleks, other Carpentries lesson developers (via incubator-developers mailing list or #lesson-dev Slack channel), or come to one of our community discussion sessions.

 

Back to Top Button Back to top