[Proposal] Discussion Grader XBlock (MVP)
View the Github ticket for proposal status updates.
Overview
This proposal outlines an XBlock-based solution to automate grading of student participation in discussions. The feature will track engagement metrics (e.g., post count, length) within configured discussions and integrate seamlessly with the Open edX platform’s grading infrastructure. The goal is to develop a foundational feature that can be further enhanced to improve its user-friendliness and functionality over time.
Problem
Currently, course teams and students use the Open edX Discussions to share ideas, views, and ask questions. However, there is no automatic or manual process for grades to be assigned to student discussions to track engagement.
Use Cases
As Course Staff (Instructors) I want to:
Make specific discussion topics gradable so that I can verify student engagement based on their participation metrics.
Configure discussion grading rubrics.
Re-calculate grades for all, or selected students, if discussion grading criteria changes mid-course.
As a Learner I want to:
Understand how my discussion contributions will be assessed, by seeing clear grading criteria (e.g., “Post 3 times to pass”) within the LMS.
Proposed Solution
We are proposing a new Open edX XBlock to automate the grading of student participation in discussions. The MVP version will track engagement metrics within configured discussions and integrate with the Open edX platform’s grading infrastructure.
Below outlines a minimal but viable solution for discussion grading:
Graded Discussions in Studio
Add Discussion Grader XBlock to a Unit
It allows course staff to assign grades to discussions based on predefined criteria. Users can add one or more of these Graded Discussion XBlocks to a unit, and they will be linked to the assignment type (e.g., Homework, Exam) set in the subsection. The grading period for the discussion will automatically match the start and end dates of the subsection as well.
Configure the Discussion Grader XBlock
When the Discussion Grader XBlock is added to a unit, course staff will be prompted to configure the following settings:
Description: A clear description or prompt outlining the discussion topic. This ensures students understand the expectations for their posts and responses. Note that discussions occur in the Discussion MFE, while the Discussion Grader XBlock is used solely for assigning grades based on predefined criteria.
Engagement: Minimum number of contribution types (posts or responses) required for grading. Grades are automatically assigned based on the quantity and type of contributions made during the grading period. Only contributions made within the subsection's grading timeframe count toward this threshold, ie:
Posts: Set the minimum number of posts required for a "pass”.
Responses: Set the minimum number of responses required for a "pass."
Topics: One or multiple discussion topics can be linked to in the XBlock. These topics will appear as links to the learner, and when clicked, they will be directed to the corresponding discussion. For the MVP, this feature may open discussions in a new window. Future iterations, depending on available funding, could offer more seamless navigation options, allowing learners to stay on the same page, for example.
Timeframe: Start and end dates are set at a subsection level. Students must meet the engagement threshold within the timeframe to earn a "pass." Students who meet the contribution minimum but do not contribute within the designated timeframe will receive a "fail."
Here is a table illustrating the grading setup for the MVP Discussion Grader XBlock:
Grading Component | Description | Example |
---|---|---|
Description | Clear prompt outlining discussion expectations. | Discuss the impact of climate change. |
Posts | Minimum posts for a "pass". | Pass: ≥ 3, Fail: < 3 |
Responses | Minimum responses for a "pass". | Pass: ≥ 1, Fail: < 1 |
Timeframe | Active grading period at subsection level. | Start Date: 01/01/2024 |
Instructors
Each course has an Instructor Dashboard. Instructors can view grade information through this Dashboard, accessed from within the live course. They can either download CSV grade reports or use the interactive "Instructor Dashboard Gradebook." The gradebook allows filtering by assignment type, grade range, track, cohort, etc. Each Discussion Grader XBlock will appear as a column, showing each student's grades, with filtering options to view only Discussion grades if desired.
Learners
Learners will engage with graded discussions integrated into each unit. These discussions will display the following:
Grading Description (Prompt): A clear outline of the discussion topic to set expectations for posts and responses.
Grading Rubric: Detailed criteria explaining how points will be awarded.
Discussion Topics: Links to relevant discussion topics.
Due Date: The deadline for participation.
Technical Considerations
To avoid a complete overhaul of the grading infrastructure within the platform, this feature will be implemented through an XBlock which can be added to any unit in a graded subsection of the course. This XBlock can be configured to grade only the discussion associated with the unit it’s added to, or it can extend to other units or topics, including course-wide discussions.
The XBlock's Studio UI will allow instructors to configure the grading rubric, initially focusing on automated criteria such as post length, post count, etc. The student-facing UI will display a message explaining the grading rubric, which can either be auto-generated or manually entered.
The criteria used in the rubric will be pluggable, enabling third parties to create custom criteria, such as AI-based grading or grading based on likes, etc. As students interact with the course, any relevant interaction that is gradable can trigger an event. This event will be handled by the respective plugin, and the final grade will be pushed to the grading system.
Additionally, there will be an option to reassign grades for a subset of users, or for all users, in the event that the grading rubric changes during the course.
Implementation Plan
OpenCraft is currently looking for funding for this proposal.
Long-term Ownership/Maintainership
We anticipate that several teams will need this functionality, and core contributors from OpenCraft will be actively involved in its development. Once it is live, these contributors will continue to assist with maintenance. If needed, one or more point persons can be designated as the primary contact for this code after its release.
Future Considerations
TBD