You’ve worked really hard since the pandemic to ensure that your on-boarding program is robust and ready to use online. You’ve built introductory courses, HR policy courses, and more. But how do you best manage the learner experience when they have to take all or a selection of these, and in a particular order?

Enter learning programs and meta courses. There are many ways to create learning programs and a lot depends on the learning management system (LMS) you use. We work with a lot of clients who use Moodle as their LMS. One of the reasons we love it is because it’s both simple yet extensible — it can expand with plugins to meet any organization’s needs. One of them is the Subcourse plugin. This plugin lets you add other courses to your course as activities. The activity pulls the final grades from the linked courses and adds them to your main course’s grade. Doing this essentially creates a meta course that acts like a learning program. Don’t get me wrong, there are other ways to create learning programs in Moodle. This post covers how Subcourse can help.

Screenshot of Moodle Academy program page

Screenshot from

What Does This Look Like?

So, what does this look like in practice? We have two examples of how you can use the Subcourse plugin to create learning programs in Moodle.

Onboarding Program Example

Let’s say you have 10 courses that different groups of new hire employees take. Some of these are for everyone and some are just for specific employee groups.

Learning programs in Moodle. Ten coloured rectangles in two rows. Top row are green and show five all-employee courses. Bottom row is courses for different audiences separated by different colours.

You can use the Subcourse plugin to create an “on-boarding program” course for each employee group. You’d then add each of the required courses to the main program page as an activity. New employees could then be given a link to that main program course and asked to complete all of the components.Learning program in Moodle example - three parallelograms each containing a list of courses for a specific audience #1 Sales #2 Managers #3 Client Services

You can then create other program courses for other groups that collect the courses they need.

Certification Program Example

You’re creating a certification program for a professional group. The certification training includes 15 different courses. Participants need to take all 15 courses before they earn the certificate and gain access to the final exam.

You could just load all the content into a single course. Why wouldn’t you want to do this? Perhaps the content is used in more than one program. Maybe adding all the content for fifteen modules/courses would make the program course too big or long. What if you want to have more granular reporting for each of the courses and not just the one main program. Setting up a meta course using the Subcourse plugin lets you do all of these.

Some considerations

Now let’s look at some things you should consider when you’re creating programs with this (or any) plugin.

Completion Criteria

Consider course completion criteria for the individual courses. The Subcourse plugin lets you aggregate courses for programs but it uses the completion criteria set for those courses. In other words, if you need to set different completion criteria for different groups or users, then Subcourse might not work for you.

Also consider course completion for the meta program course. The Subcourse plugin pulls the grades and completion from the individual courses but you’ll still need to set up your course completion properly on the meta course. For example, if you want the meta course to complete based on “grade” you may also want to set it up so that learners also have to complete all of the activities (e.g., sub courses) too. This way, they can’t just complete one with a passing grade and have it roll up to the meta course.


Consider learner navigation. When a learner selects a course from the meta course, they navigate to that course. They’ll need instructions or help to navigate back to their main/meta course to continue on to the next course on the list.

In addition, consider navigation and layout in the meta course itself. Although easy, it’s likely not the best idea to just give learners a list of links to other courses in your meta course. Consider adding labels, sections/topics/groupings, additional activities, etc. to your meta course to make it more than just a collection of links.

Order of Events

Consider using restrictions in the meta course. Do you have a specific order that learners need to take the courses in? Noodle’s built-in “restrictions” for activities lets you restrict one activity (e.g., one Subcourse) until after the learner has completed a previous. Be sure to make this clear on the meta course page though to avoid learner frustration.

What’s Next?

Now that you know how you can create learning programs in Moodle, think about your training courses. How can you set them up best for your learners?

Do you need some help setting up your Moodle course or aren’t sure what the best way is to help your learners? We can help! Reach out via our contact us page and we’d be happy to prepare a personalized quote.