Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Meta AGM

From MoodleDocs
Revision as of 20:45, 30 November 2014 by Nikita Kalinin (talk | contribs)

General information

Project goal: to be able to use multiple Advanced grading methods at one grading area.

Project scope. This project does not change the AGM internals and its API. Meta AGM is a grading method, the form of which is a number of another AGMs.

Use cases

In examples below 'rubric' and 'criterial' grading methods were used. Criterial is a work-in-progress method which allows teacher to define a form with a number of numerical fields, checkboxes, etc.

1. Assessment of student's program on the course of high-level programming basics

There are lot of aspects of checking the quality of program which is developed by student: efficiency, code style compliance, lab activity protocol... So we need a various grading method types to develop a set of criterions allowing us to assess all the aspects described in one assignment module.

TODO: defined AGM example

Implementation

This module allows a teacher to define several subareas and define different grading methods in it. The teacher defines subareas by himself.

While AGM design allows us to have only one active grading method, we can create more areas (fake areas actually) for the same context. We call it 'subareas'. It's safe because any other modules uses MODULENAME_grading_areas_list() to list the areas, not DB query.

How it works

TODO: sequence diagram

DB schema

metaagm-erd.png

gradeform_metaagm_areas

Each subarea additionally listed in this table. There are weight and name fields are important. Teacher can define a human-readable name for each subarea and a weight of grade for this subarea.

Field Type Default Description
id bigint Auto-numbered
areaid bigint The gradeable subarea.
weight float 1.0 Weight for grade in this subarea.
name varchar(255) Human-readable name of this subarea.

Backup/Restore

TODO

See also