Note:

This site is no longer used and is in read-only mode. Instead please go to our new Moodle Developer Resource site.

Advanced grading methods: Difference between revisions

From MoodleDocs
Assignment use case
Line 12: Line 12:


* Long-term goal: To be able to use advanced grading methods (like rubrics and other multi-criteria assessment forms) to assess all reasonable places (like assignment submissions, forum posts, wiki pages, database records etc.), not just the submissions in the workshop module.
* Long-term goal: To be able to use advanced grading methods (like rubrics and other multi-criteria assessment forms) to assess all reasonable places (like assignment submissions, forum posts, wiki pages, database records etc.), not just the submissions in the workshop module.
* Short-term: To allow using rubric as a grading tool for the assignment module and for the manual grade item in the gradebook.
* Short-term goal: To allow using rubric as a grading tool for the assignment module.


== Project scope ==
== Project scope ==
Line 18: Line 18:
This project does NOT change the gradebook internals or its API for obtaining and storing grades. It has also nothing to do with other gradebook issues like aggregating hidden grades and friends.
This project does NOT change the gradebook internals or its API for obtaining and storing grades. It has also nothing to do with other gradebook issues like aggregating hidden grades and friends.


This project aims to provide a clear API to
This project aims to:


* embed a selected grading form (rubric, scale, single grade with decimal points) into the caller's page in both editable and read-only modes
* provide a way to define grading forms
* process the submitted data
* allow activity modules to use defined forms to calculate grades
* obtain the calculated grade if it is available
* obtain the raw filled data for post-processing (eg to calculate grade for peer-assessment in the workshop) in a unified format
 
Moodle core (internally implemented as a new part of the gradebook subsystem) will provide UI to edit assessment forms at standalone pages. The caller (client) like the assignment module or the grader report should be able to easily embed the selected form in its own page. For example:
 
* the quick grading mode in the assignment module should be able to embed multiple instances of grading forms in the table with all submissions and process them in once
* the forum module should be able to load (preferably via AJAX) the grading form for any post on demand
* the workshop module should be able to display the grading form under the student's submission for all peer-reviewers and then be able to compare them to calculate the grade for assessment


Things that must be decided and designed carefully:
Things that must be decided and designed carefully:


* forms sharing - the situation is similar to what question bank tries to deal with. But the concept of storing forms in various contexts seems to be suboptimal to me
* export/import - how to easily publish forms definitions (XML + embedded files) and re-use them
* export/import - how to easily publish forms definitions (XML + embedded files) and re-use them (maybe this is a solution for the sharing issue?)
* backup/restore - grading forms must be part of the gradebook structures, like grade categories and grade items are (XML structures similar to export/import)
* backup/restore - grading forms must be part of the gradebook structures, like grade categories and grade items are (XML structures similar to export/import)


Line 42: Line 33:
* MDL-2255 - Rubrics for all Activities
* MDL-2255 - Rubrics for all Activities
* CONTRIB-2058 - Ability to edit/delete rubrics (Assignment Rubric activity module)
* CONTRIB-2058 - Ability to edit/delete rubrics (Assignment Rubric activity module)
== Use cases ==
=== Using rubric in the assignment ===
* When editing the Assignment settings, there is a new field in the "Grade" section (see callout 1 in the UI mockup below). The teacher can define whether the grade (value or scale) will be put directly by the marker (as it is now) or some advanced grading form will be used. She sets the grade for this Assignment to a value 20 and decides to use advanced grading strategy to calculate that grade. She picks "Rubric" from the list of available form types.
[[image:gradeforms-assignment-mockup.png|400px|thumb|left|UI mockups of adding rubric into the Assignment]]
<br clear="all"/>
* At the assignment page, the Settings side block contains new node to define the rubric (callout 2). The teacher clicks at "Rubric editor" link.
* The editor allows the teacher to design the rubric from scratch, to import it from XML file or use some existing rubric at the site as a template to start off from. She prepares a rubric consisting of three criteria, each of them having four levels with scores 0, 1, 2 and 3. Hence the total score obtained from the rubric will be something from 0 to 12. When the teacher is happy with the preview, goes back to the assignment.
* The list of submissions does not offer the Quick grading mode now. The "Grade" link next to each submission leads to a standalone page /grade/form/grading.php where the grading happens.
[[image:gradeforms-assignment-grading-mockup.png|400px|thumb|left|Screen with the online assignment submission being graded with a rubric]]
<br clear="all"/>
* The screen displays the graded submission and the defined rubric. The teacher fills the rubric and clicks "Save and close". She is taken back to the list of submissions at /mod/assignment/submissions.php.
* There is a grade now for that submission displayed, as if the teacher chose it manually. Note the score from the rubric is converted to the selected grade for the assignment. So for example the maximum score 12 leads to the grade 20, score 3 would give grade 5 etc (comparable with how the total score for questions used in a quiz is converted to a grade in the course). The same would apply if the grade for the submission would be set to use a scale.


== Implementation plan ==
== Implementation plan ==
Line 67: Line 77:


Note that the rubric does not actually store the calculated grade. It just behaves as a tool that is able to calculate the value from how the form is fulfilled. Once the value is calculated, the Assignment module works with it as if it was selected via current <select> field.
Note that the rubric does not actually store the calculated grade. It just behaves as a tool that is able to calculate the value from how the form is fulfilled. Once the value is calculated, the Assignment module works with it as if it was selected via current <select> field.
== UI mock-ups ==
[[image:forum-thread-with-embedded-rubric.png|400px|thumb|left|Forum thread with embedded rubric]]
<br clear="all"/>


== See also ==
== See also ==
Line 77: Line 82:
* [http://en.wikipedia.org/wiki/Rubric_(academic) The description of rubric] at Wikipedia
* [http://en.wikipedia.org/wiki/Rubric_(academic) The description of rubric] at Wikipedia
* Kathy Schrock's Guide for Educators - [http://school.discoveryeducation.com/schrockguide/assess.html Examples of Assessment Rubrics]
* Kathy Schrock's Guide for Educators - [http://school.discoveryeducation.com/schrockguide/assess.html Examples of Assessment Rubrics]
* [http://rubistar.4teachers.org/ RubiStar] is a free tool to help teachers create quality rubrics
* [http://www.instructure.com/ LMS Instructure] and especially their way of defining rubrics
* [http://www.instructure.com/ LMS Instructure] and especially their way of defining rubrics
* [http://manuals.moodlerooms.com/display/JOULE2/Rubrics+Manual Rubrics Manual] for JOULE by Moodle Rooms
* [http://manuals.moodlerooms.com/display/JOULE2/Rubrics+Manual Rubrics Manual] for JOULE by Moodle Rooms
* [[Gradebook_2.x_architecture]] to come in 2.3
* [[Gradebook_2.x_architecture]] to come in 2.3

Revision as of 23:18, 24 August 2011

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.

Advanced grading methods
Project state Planning
Tracker issue TODO
Discussion TODO
Assignee David Mudrak

Moodle 2.2


Project goals

  • Long-term goal: To be able to use advanced grading methods (like rubrics and other multi-criteria assessment forms) to assess all reasonable places (like assignment submissions, forum posts, wiki pages, database records etc.), not just the submissions in the workshop module.
  • Short-term goal: To allow using rubric as a grading tool for the assignment module.

Project scope

This project does NOT change the gradebook internals or its API for obtaining and storing grades. It has also nothing to do with other gradebook issues like aggregating hidden grades and friends.

This project aims to:

  • provide a way to define grading forms
  • allow activity modules to use defined forms to calculate grades

Things that must be decided and designed carefully:

  • export/import - how to easily publish forms definitions (XML + embedded files) and re-use them
  • backup/restore - grading forms must be part of the gradebook structures, like grade categories and grade items are (XML structures similar to export/import)

Relevant tracker issues

  • MDL-795 - 'workshop-like' teacher assessment methods (rubrics, accumulative, etc) for assignments
  • MDL-2255 - Rubrics for all Activities
  • CONTRIB-2058 - Ability to edit/delete rubrics (Assignment Rubric activity module)

Use cases

Using rubric in the assignment

  • When editing the Assignment settings, there is a new field in the "Grade" section (see callout 1 in the UI mockup below). The teacher can define whether the grade (value or scale) will be put directly by the marker (as it is now) or some advanced grading form will be used. She sets the grade for this Assignment to a value 20 and decides to use advanced grading strategy to calculate that grade. She picks "Rubric" from the list of available form types.
UI mockups of adding rubric into the Assignment


  • At the assignment page, the Settings side block contains new node to define the rubric (callout 2). The teacher clicks at "Rubric editor" link.
  • The editor allows the teacher to design the rubric from scratch, to import it from XML file or use some existing rubric at the site as a template to start off from. She prepares a rubric consisting of three criteria, each of them having four levels with scores 0, 1, 2 and 3. Hence the total score obtained from the rubric will be something from 0 to 12. When the teacher is happy with the preview, goes back to the assignment.
  • The list of submissions does not offer the Quick grading mode now. The "Grade" link next to each submission leads to a standalone page /grade/form/grading.php where the grading happens.
Screen with the online assignment submission being graded with a rubric


  • The screen displays the graded submission and the defined rubric. The teacher fills the rubric and clicks "Save and close". She is taken back to the list of submissions at /mod/assignment/submissions.php.
  • There is a grade now for that submission displayed, as if the teacher chose it manually. Note the score from the rubric is converted to the selected grade for the assignment. So for example the maximum score 12 leads to the grade 20, score 3 would give grade 5 etc (comparable with how the total score for questions used in a quiz is converted to a grade in the course). The same would apply if the grade for the submission would be set to use a scale.

Implementation plan

  • New core plugin type called "Grading method" to be added into get_plugin_types() as 'grademethod' with the location in /grade/method/*
  • All grading methods to be implemented as plugins - 'Rubric', 'Multi-scale' (aka Accumulative grading strategy in the Workshop) etc. Current grading tools could be re-implemented as 'Single scale' and 'Decimal points' plugins
  • The mechanism of embedding the forms into pages in Moodle to follow the patterns already used in Files API, Comments API or Ratings API (using component, context, gradearea and itemid).
  • Ability to either use the default renderer of the form of even define own renderer for it. This would allow the caller (client) to have complete control of how the grading form is embedded into the page.

Database schema

ER diagram of new tables


Basic data flow

  1. Teacher goes to the course gradebook and clicks "Define new grading form". As the grading method she selects "Rubric". She fills the name and the description of the grading form. New record is inserted into {grade_forms} and the rubric editor opens.
  2. For each new row of the rubric grid, a new record is inserted into {gradeform_rubric_criteria}.
  3. For each new column of the rubric grid column in the given row, a new record is inserted into {gradeform_rubric_levels}.
  4. Teacher goes to the Assignment module and modifies its setting to use the newly created rubric as the default grading method. TODO: where is this information going to be stored?
  5. Teacher goes thru the list of submissions. After clicking "Grade" for a particular submission, new record is created (or existing one updated) in {grade_forms_instances} (component = "mod_assignment", gradearea = "submission", itemid = submission id, userid = $USER->id, timecreated = now).
  6. The information about how the teacher actually fill the rubric is saved into {gradeform_rubric_fulfilments} - that is what level was chosen for each criterion. Optional comments can be stored, too.
  7. When the teacher hits "Finish", the rubric subplugin calculates the final grade and provides it to the Assignment module.
  8. The assignment module pushes the calculated grade to the gradebook.

Note that the rubric does not actually store the calculated grade. It just behaves as a tool that is able to calculate the value from how the form is fulfilled. Once the value is calculated, the Assignment module works with it as if it was selected via current <select> field.

See also