Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

Course based learning is enabled in sunbird platform via batches. A course batch enables the following functionality:

  • Enrolling learners into courses

  • Tracking the progress of learners by mentors

  • Open batches that allow any user to enrol for a course

  • Private batches which allow only select users to be enrolled into a course

The current “batch” functionality suffices simple use cases of learning, but it needs to be enhanced to support advanced and more complex scenarios of learning (which are more prevalent in real world). For example, a batch can be currently associated with one course only and if a mentor wants to monitor multiple batches, it requires context switching. Similarly, if there are thousands of learners in a batch (e.g. open batches which enable organic learning), it is practically impossible for a mentor to track and guide one or more specific learners (who are the mentees of the mentor) to complete the course.

Future Capabilities

To serve a variety of learning and tutoring needs, there is a need to enhance the platform with the following capabilities (specifically in courses and learning modules):

  • Tutors should be able to mentor a learner or a set of learners in multiple courses easily

  • Tutors should be provided with multiple mentoring tools (e.g: assessments, progress report, grade book, announcements, etc) which can be used by the tutor to guide the learners

  • Decouple the learning and mentoring aspects of learning, i.e. a learner should be able to take a course in an open or private batch created by one tutor and enrol for mentoring in these courses by a different tutor

  • Tutors should be able to put special focus on a set of learners and also provide personalised mentoring for them

This document explains the proposed design enhancements in courses and batches modules that will enable their usage in a wide variety of learning use cases.

Key Design Problems

  1. A simple way to create a batch of learners and monitor their progress across multiple courses.

  2. Fetch progress data of learners in multiple courses.

  3. Enable new learning tools for a group of learners.

  4. Provide personalised mentoring for learners.

Design

Mentoring for multiple courses

One of the important learning scenarios is to enable tutors to mentor learners in multiple courses easily. To enable this, a new batch type (named ‘tutoring batch') is created. This batch can be associated with a collection of courses, thereby allowing mentoring for multiple courses. In addition, this batch does not provide the ability for learners to enrol into courses. These batches can be used only for mentoring and helping learners in achieving the desired learning outcomes of the courses, i.e. the learning and mentoring processes of learning are decoupled and organic course consumption is also supported.

Type of Batch

Course

Course Enrolment

Mentoring

Open Batch

Associated with only one course

Learners can self-enrol to the course associated with the batch

Tutors can track progress of the learners in only one course

Private Batch

Associated with only one course

Course mentor (tutor) adds select learners to this batch by which the learners are enrolled into the course

Tutors can track progress of the learners in only one course

Tutoring Batch

Associated with one or more courses

No course enrolment is possible. Learners have to enrol using an open or private batch of the associated courses

Tutors can track progress of the learners in multiple courses

Tutoring batches are well suited in k-12 learning where learners undergo regular learning in school (using online courses provided by school) and rely on tuition teachers or parents for additional mentoring and guidance.

Another important difference in “tutoring batch” is that it is linked to a “group” entity instead of individual learners (as in the case of open & private batches currently). A group is a set of users and provides functionality to add/remove members by the group owner or join/leave group for the group members. When a group is linked to a tutoring batch, all mentors of the batch will have the role of an owner in the group and all learners will become group members.

Fetching course progress data from multiple courses

As the learners in a tutoring batch consume course as part of one or more other batches, the course progress data needs to be collected and aggregated from different batches to enable a tutor to track the progress of learners in the tutoring batch.

Currently, when a learner consumes a content, the corresponding content state update is sent to the “batch” micro-service which in turn updates the state of the content (for the specific learner in the batch and the course) in the database. The database generates an audit event into kafka which is then processed by course-batch-updater job which computes the aggregated progress at course level and writes it back in to the database. Following enhancements should be done in this job to support progress tracking in a tutoring batch:

  • Compute the progress at module (units within the course) level also. This is to enable tutors to view progress at a module level.

  • In addition to writing the aggregate data into the primary database (cassandra), the job should index the same info into elastic search also. ES aggregation queries can then be used to create a view for tutors to track the progress of learners across multiple courses.

An alternate approach is to leverage the telemetry pipeline and druid infra for this. If the audit event is generated with required rollup information (module, course and batch ids), then we can aggregate the progress at different levels using druid queries.

Mentoring Tools

Currently, batches are being used only for progress tracking. But the main purpose of a batch is for mentoring and guide learners to complete the course successfully. Tutors will need to add relevant interceptions in learning to achieve this. Thus, there is a need for a set of tools which the tutors can use for creating this interceptions.

Progress reports, assessments, grade book, leaderboard and announcements are examples of such tools. These tools will be created as plugins that can be enabled for any group of users and can be launched in the context of a batch. (ToDo: design of how these plugins can be created and enabled on-demand for a batch).

Personalised Mentoring

Another important use case in batches is the ability to personalise the learning only for a set of learners in the course depending on their current progress or score or any other criteria.

This design allows personalisation in multiple ways. Below are some examples:

  • A private batch can be created for one or more courses and specific assessments can be released only for the learners enrolled to the course via this private batch.

  • In an open or tutoring batch, multiple sub-groups can be created and different learning interceptions can be provided for each sub-group. For example, a sub-group could be the learners who scored less in an assessment and another sub-group could be of learners who enrolled into the course recently & needs to catch-up with the rest of the learners.

Roadmap

June 15:

  • Mentoring for multiple courses

  • Fetching course progress data from multiple courses

  • No labels