Meta AGM: Difference between revisions
No edit summary |
David Mudrak (talk | contribs) m (Text replacement - "class="nicetable"" to "class="wikitable"") |
||
(3 intermediate revisions by one other user not shown) | |||
Line 8: | Line 8: | ||
=== 1. Assessment of student's program on the course of high-level programming basics === | === 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 | 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 | TODO: defined AGM example | ||
== Implementation == | == Implementation == | ||
This module allows a teacher to define several | 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 ' | 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 === | === How it works === | ||
[[image:metaagm-sd.png|400px|thumb| | [[image:metaagm-sd.png|400px|thumb|none|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). | |||
3.2.1.1: 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). | 3.2.1.1: 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). | ||
Line 28: | Line 29: | ||
==== gradeform_metaagm_areas ==== | ==== gradeform_metaagm_areas ==== | ||
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. | 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. | ||
{| class=" | {| class="wikitable" | ||
|- | |- | ||
! Field | ! Field | ||
Line 41: | Line 42: | ||
|- | |- | ||
| '''areaid''' | | '''areaid''' | ||
| bigint | |||
| | |||
| The gradeable area for Meta AGM. | |||
|- | |||
| '''subareaid''' | |||
| bigint | | bigint | ||
| | | |
Latest revision as of 13:22, 14 July 2021
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
Implementation
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
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).
3.2.1.1: 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
gradeform_metaagm_areas
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. |
Backup/Restore
TODO