Development:Grades: Difference between revisions

From MoodleDocs
(→‎Other ideas: added deadlines and marking)
Line 55: Line 55:
Metacourses
Metacourses
The option to have the gradebook collect grades from several sub-courses e.g. for most 1 or 2 year long courses in schools which simply don't fit into a single moodle course conveniently.
The option to have the gradebook collect grades from several sub-courses e.g. for most 1 or 2 year long courses in schools which simply don't fit into a single moodle course conveniently.
Deadlines
Currently, its not easy to see whether work has been handed in on time just by looking at the gradebook. A simple colour coding scheme for the backgrounds such as green=on time, red=late would be great. Tooltips with data on the time it was submitted would help. A way to quickly message all those who have not done a certain piece of work would also be useful.
Marking
There is no way currently to glance at the gradebook and see who has done work which has not been graded yet. maybe a different colour background, or a special symbol to show that work has been submitted. It would also be excellent to be able to grade work directly from the gradebook e.g. by clicking on the box with this symbol or colour and being taken straight to the grading dialogue for that students piece of work. This would make mopping up late pieces of work many times easier and would replace some of the functionality of the excellent marking block for 1.6.


==See also==
==See also==

Revision as of 16:42, 8 April 2007

This page is to create a specification for the next generation of Moodle gradebook. If you edit it, please try and keep modifications under the correct headings.

Centralising data

Currently (in all versions up to 1.6) Moodle uses a "pull" model for grade collection. That is, at the time a user requests a view of the gradebook, each activity module is polled for grades and either returns grades or it doesn't. These are then massaged into the gradebook view.

Problems with this are bad performance and less flexibility.

In the next version, the modules must "push" their grades to the central gradebook at the time grades are changed. For example, if a student completes a quiz, the quiz module should call a central function such as grade_store() with courseid, userid, moduleid, column name, grade type and grade. This data gets stored in a central table (like grades).

Modules can store grades internally as well if they want to (for efficiency and reports etc). All storing of grades centrally should take place via the API function: modules must not manipulate the grades table directly.

The API should allow for locking grade items. This should allow modules to lock the grade from being edited via the gradebook, and allow the gradebook to lock modules from changing grades. This will be useful so that the instructor can set the gradebook to "locked" for an item and then say the quiz module cannot change the grade for a student if they take the quiz again.

An option in the gradebook should allow grades to be retained even if the activity that generated it has been deleted. If this is turned off, then when displaying the columns, a clean-up function should check the course format, and remove columns belonging to obsolete activities.

For backward compatibility, a Moodle cron trigger should cause the gradebook to periodically look in activity modules for an old-style xxxx_grades() function, then call that function to extract and cache grades locally.

Grade status should be easily discernable at a glance in the gradebook possible grade item status include: incomplete, excluded, complete (not graded), graded. This will help with creating conditional activities, and the features required by conditional activities should be considered.

There should be a history of grades and how they were changed. There should be a clear history of how a grade was changed information should include: when it was changed, who (or what) changed it, comments.

Display API

Modular display plug-in sytem. Will allow alternate viewing methods of grade information. eg. Alternate display methods, statistics, or Graphing plug-ins.

Import/Export API

A great need is to connect grades to external systems, such as Student Information Systems.

A modular plugin system will be added that can export and import grades to and from external systems. The plugin system should allow for grades to be imported or exported at the users request or via cron. The plugins will have access to necessary data and will be responsible for choosing the correct data and proper location of information. Consider if XML with XSLT is a viable solution.

To facilitate this as well as other aspects of grading there will be "gradebook only" grades. That is, there will be grades that appear only in the gradebook, they will not show up through other aspects of the course eg. in sections, or as assignments.

Other ideas

Grades should be calculated as an ongoing grade and an overall grade. That is, the ongoing grade should calculate a grade for only those grade items that have been attempted or completed, and the overall grade should calculate a grade for everything in the gradebook. This is really for informational purposes, but gives a student a sense of "where they are now" in a course.

Existing functionality of the gradebook will remain; weighting, categories, curving/scaling, extra credit, drop the 'X' lowest.

Existing category functionality will be extended to allow nesting and active/inactive status. This will allow for greater flexibility of calculations.

Grading scheme or plug-in interface This will allow for greater flexibility in calculating a final grade for a student. Things to consider will be statistics based grade scales eg. "+/- X Standard deviations", must pass with X or better in category Y or no grade. This will also allow for alternatives to the USA High School/College format so that the gradebook scheme is appropriate for other countries and grading methodologies. Consider how this may overlap with support for manual or ad-hoc calculation columns that are not connected to any activity table "calculated columns".

Better implementation of scales This may require work to the scales engine. But there should be better gradebook support for scales. There are three scenarios for the gradebook with scales. 1. Entirely points (numeric grades) 2. Mixed Scales and Points 3. Entirely Scales. These three scenarios should be appropriately handled.

Security Issues There need to be sitewide security options. These will include at least the following; grades must be delivered over SSL (https), turn off grade download features so that grades cannot be downloaded, and maybe encryption of downloaded grades?

Roles Implement proper roles for the gradebook, maybe create a new role "Grader" that will only see and create individual assignments at a time and not aggregate grade data, and will not be able to change any other information.

Metacourses The option to have the gradebook collect grades from several sub-courses e.g. for most 1 or 2 year long courses in schools which simply don't fit into a single moodle course conveniently.

Deadlines Currently, its not easy to see whether work has been handed in on time just by looking at the gradebook. A simple colour coding scheme for the backgrounds such as green=on time, red=late would be great. Tooltips with data on the time it was submitted would help. A way to quickly message all those who have not done a certain piece of work would also be useful.

Marking There is no way currently to glance at the gradebook and see who has done work which has not been graded yet. maybe a different colour background, or a special symbol to show that work has been submitted. It would also be excellent to be able to grade work directly from the gradebook e.g. by clicking on the box with this symbol or colour and being taken straight to the grading dialogue for that students piece of work. This would make mopping up late pieces of work many times easier and would replace some of the functionality of the excellent marking block for 1.6.

See also