Meta AGM

From MoodleDocs

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 criteria allowing us to assess all the aspects described in one assignment module.

TODO: defined AGM example


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

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

How it works

UML sequence diagram of how the teacher defines the metacriteria and what happens in DB during this process.

1.1 Get the metacriteria list: list of areas for current contextid and module will be returned (except the area which Meta AGM is defined in). A new record with fake area for current contextid and module will be inserted to grading_areas table and a record to gradeform_metaagm_areas (see below).

DB schema



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

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



See also