Note: You are currently viewing documentation for Moodle 3.11. Up-to-date documentation for the latest stable version of Moodle may be available here: Grade calculations.

Grade calculations: Difference between revisions

From MoodleDocs
(Described how to turn on grade calculation for just one course.)
 
(47 intermediate revisions by 20 users not shown)
Line 1: Line 1:
{{Grades}}A grade calculation is a formula used to determine grades, based (optionally) on other grade items. Note that this is not the same as [[Calculated_question_type|Calculated question types]].
{{Managing grades}}
A grade calculation is a formula used to determine grades, based on other grade items. Note that this is not the same as [[Calculated_question_type|Calculated question types]].


Grade calculations follow the pattern of formulas/functions in popular spreadsheet programs. They start with an equal (=) sign, and use common mathematical operators and functions to produce a single numerical output. This output is then used as the computed value for the grade item you are editing.


Conditional (IF) operators can be used in grade calculations of the grade book, and logical operators (AND,OR) can be also used (MDL-64414).
==Setting a grade calculation==
==Setting a grade calculation==
[[Image:Calc_icon.JPG|thumb|Calculator symbol]]To set a grade calculation:
[[File:Edit Calculated Grade.png|alt=|thumb|Edit calculation setting]]
# Login as teacher or other user with permission to edit grades.
[[Image:newcalculationgrade.png|thumb|Example calculation]]
# Click on Grades in the course administration block.
# Click the 'Categories and items' tab (or select it from the gradebook dropdown menu).
# Click the 'calculator symbol' (in the 'Actions' column) opposite the grade category you wish to set a calculation for.
# Add the calculation then click the 'Save changes' button.


To set a grade calculation:
# Login as teacher or other user with permission to edit grades
# Click on Grades in the course administration block
# Click 'View > Grader Report'
# Click 'Turn Editing On'; a 'Controls' bar should appear above the grades
# Click the 'Calculator' icon above the grade item or category you wish to edit. Note: if you don't see this icon, then it must be enabled, either for this particular course in ''Setup'' > ''Preferences: Grader Report'' > ''Show/hide toggles'' > ''Show calculations'', or system-wide in ''Site administration'' > ''Grades'' > ''Report settings'' > ''Grader report'' > ''Show calculations.''
# Start with an equal sign (=)
# Type an expression using numbers, arithmetic operators, mathematical functions and ID numbers; for example =average()
# Plug in your ID numbers (see below) enclosed in double square brackets, for example =<nowiki>[[item1]]</nowiki>+<nowiki>[[item2]]</nowiki>
# Separate each function argument with a comma, as in =average(<nowiki>[[item1]]</nowiki>, <nowiki>[[item2]]</nowiki>)+<nowiki>[[item3]]</nowiki>)
# Click the "Save Changes" button
==Assigning ID numbers==
==Assigning ID numbers==
ID numbers are similar to nicknames for each grade item. In a calculation, instead of referring back to a whole assignment name, we can substitute it for it's ID number which becomes a lot easier. Think of it as substituting 143 as X and then using X for various math problems.
You can include the values of other grade items by using their ID number as references in your formulas. The ID number must be surrounded by double square brackets, for example if you have a grade item with Quiz.3 as ID number, you can refer this item using <nowiki>[[Quiz.3]]</nowiki> in your calculation.


ID numbers on the bottom of the page. Use simple to remember numbers or variables like 1, X, or Quiz1. Remember to click "Add id numbers"!
Below the calculation field there is a list of your course grade categories and grade items. Next to each item or category's total there is the ID number you can use in your calculation (already surrounded with the required double square brackets).


==Understanding calculation functions==
However, since ID numbers are optional, some items may not yet have one. Each item without ID number have a form field that you can use to enter its ID number directly. As soon as you have assigned the ID numbers you need, you must click the "Add ID numbers" button; the page will reload and show you the same list including the ID numbers you have just assigned. Now you can use them in your grade calculation.
Click the yellow question mark next to the word "Calculation". This will bring a pop-up explaining the various functions that can be used in calculations and how to use them.


Every calculation must start with an equal sign (=). Following is a list of the functions supported by the calculation. The comma (,) character is used to separate arguments within function brackets. The comma can also be used to separate different functions. (The separator character could be a semicolon (;) in other languages, see below).
'''Note''': Moodle does not allow calculations involving no ID numbers.
==Calculation functions==
Every grade calculation must start with an equal sign (=) followed by an expression using operators and functions supported by the system.
All common arithmetic operators are supported
* addition, using the plus (+) sign
* subtraction, using the minus (-) sign
* multiplication, using the asterisk (*) character
* division, using the slash (/) character
* exponentiation, using the caret (^) character
with their usual evaluation precedence rules: exponentiations are evaluated first, then multiplications and divisions are performed, finally additions and subtraction are carried out; so, the expression =1+2-3*4/5^6 gives almost 3 (2,999232). Different precedences can be forced using round parentheses, as in the expression =((((1+2)-3)*4)/5)^6 which yields 0.


* average<nowiki>([[item1]], [[item2]]...)</nowiki>: Returns the average of a sample
Functions can also appear in expressions, using a separator between their arguments listed within round brackets.
<div class="alert alert-danger">Important:
<ul><li>For the English language pack this separator is a comma (,).</li>
<li>For other [[Language|languages]] the separator could be a different character, for example a semicolon (;).</li></ul></div>
* average<nowiki>([[item1]], [[item2]]...)</nowiki>: Returns the average of the values in a list of arguments
* ceil(number): Maps a real number to the smallest following integer
* floor(number): Maps a real number to the largest previous integer
* if<nowiki>([[item1]], [[item2]], [[item3]]):</nowiki> Evaluates the first argument (condition) and returns the second argument if the condition is not zero (true condition) and returns the third argument if the condition is zero (false condition).
* max<nowiki>([[item1]], [[item2]]...)</nowiki>: Returns the maximum value in a list of arguments
* max<nowiki>([[item1]], [[item2]]...)</nowiki>: Returns the maximum value in a list of arguments
* min<nowiki>([[item1]], [[item2]]...):</nowiki> Returns the minimum value in a list of arguments
* min<nowiki>([[item1]], [[item2]]...)</nowiki>: Returns the minimum value in a list of arguments
* mod(dividend, divisor): Calculates the remainder of a division
* mod(dividend, divisor): Calculates the remainder of a division
* pi(): Returns the value of the number Pi
* pi(): Returns the value of the number Pi (3.14159265...)
* power(base, power): Raises a number to the power of another
* power(base, exponent): Raises a number to the exponent power (this is the same as base^exponent)
* round(number, count): Rounds a number to a predefined accuracy
* round(number, count): Rounds number to count decimal digits
* sum(<nowiki>[[item1]], [[item2]]...)</nowiki>: Returns the sum of all arguments
* sum<nowiki>([[item1]], [[item2]]...)</nowiki>: Returns the sum of all arguments (this is the same as <nowiki>[[item1]]+[[item2]]+...</nowiki>
* an asterisk (*) gives the product of two items: <nowiki>[[item1]]*[[item2]]</nowiki>
Many other mathematical functions are also supported:
 
* sin()
A number of mathematical functions is also supported:
* sinh()
 
* arcsin()
* sin
* asin()
* sinh
* arcsinh()
* arcsin
* asinh()
* asin
* cos()
* arcsinh
* cosh()
* asinh
* arccos()
* cos
* acos()
* cosh
* arccosh()
* arccos
* acosh()
* acos
* tan()
* arccosh
* tanh()
* acosh
* arctan()
* tan
* atan()
* tanh
* arctanh()
* arctan
* atanh()
* atan
* sqrt()
* arctanh
* abs()
* atanh
* ln()
* sqrt
* log()
* abs
* exp()
* ln
==Example calculations==
* log
* <nowiki>=max([[Quiz.1]], [[Quiz.4]], [[Assignment.1]])</nowiki> - Returns the maximum value of the grades referred by Quiz.1, Quiz.4 and Assignment.1
* exp
* <nowiki>=average(max([[Quiz.1]], [[Quiz.4]], [[Assignment.1]]), min([[Quiz.1]], [[Quiz.4]], [[Assignment.1]]))</nowiki> - Returns the average of the maximum and the minimum values among Quiz.1, Quiz.4 and Assignment.1 (functions can be nested)
 
* <nowiki>=sum([[item1]]*0.3, [[item2]]*0.6, [[item3]]*2)</nowiki> - Returns a weighted grade sum where item1 is weighted 30%, item2 is weighted at 60% and item3 is weighted at 200%
==Making your calculation==
* <nowiki>=if([[midtermexam]]>=5, [[midtermexam]]+[[lab]], 0)</nowiki> - Returns the sum of midtermexam and lab items if the midtermexam grade is 5 of more, and 0 otherwise. This is a very handy way of dealing with conditional evaluation in a course.
[[Image:Final_calc.JPG|thumb|Example calculation]]
* <nowiki>=if(AND([[item1]]>=5, [[item2]]>=5), ([[item1]]+[[item2]])/2, 0)</nowiki> - Returns the average of item1 and item2 if both have 5 of more, and 0 otherwise. This is a very handy way of dealing with sine qua non activities.
Back on the calculations page, start typing the various functions and the ID numbers chosen for your calculation.
 
# Start with an equal sign (=)
# Choose a function; Example: =sum()
# Plug in your ID numbers enclosed in 2 hard brackets; Example: <nowiki>=sum([[item1]][[item2]][[item3]])</nowiki>
# Separate each ID number with a comma; Example: <nowiki>=sum([[item1]],[[item2]],[[item3]])</nowiki>
# Weighted grade calculations: <nowiki>=sum([[1]]*0.3,[[2]]*0.6,[[3]]*2)</nowiki>
# Click the "Save Changes" button.
 
==Calculations when user language is not English==
==Calculations when user language is not English==
Calculations and formulas use decimal and list separators as defined in the [https://docs.moodle.org/dev/Translation_langconfig langconfig.php] file of each [[Language packs|language pack]].


Calculation formulas use decimal and list separators as defined in each language pack.
The [[Decimal separator|decimal separator]] (the symbol used to mark the boundary between the integral and the fractional parts of a decimal number) is a point (.) in English. In other languages it may be a comma (,).
 
The decimal separator (a symbol used to mark the boundary between the integral and the fractional parts of a decimal number) is a point (.) in English. In other languages it may be a comma (,).
 
The list separator (a symbol used to separate a list of ID numbers in square brackets) is a comma (,) in English. In other languages it may be a semicolon (;).


Analogously, the list separator (the symbol used to separate the items within a list, such as the arguments of a function) is a comma (,) in English. In other languages it may be a semicolon (;).
==See also==
==See also==
*[http://www.youtube.com/watch?v=WKUGyzAXcyA Video on how to set up calculations in the gradebook (basic)]
*[http://www.youtube.com/watch?v=WKUGyzAXcyA Video on how to set up calculations in the gradebook (basic)]
*[http://www.youtube.com/watch?v=VBEj8mmu8lM Video on how to set up calculations in the gradebook (advanced)]
*[http://www.youtube.com/watch?v=VBEj8mmu8lM Video on how to set up calculations in the gradebook (advanced)]
[[ca:grade/edit/tree/calculation]]
[[ca:grade/edit/tree/calculation]]
[[fr:Calcul de notes]]
[[es:Cálculos de calificación]]
[[fr:Calcul de note]]
[[ru:Формулы и вычисления оценок]]
[[ja:評定計算]]
[[de:Bewertungen berechnen]]

Latest revision as of 17:14, 18 April 2022

A grade calculation is a formula used to determine grades, based on other grade items. Note that this is not the same as Calculated question types.

Grade calculations follow the pattern of formulas/functions in popular spreadsheet programs. They start with an equal (=) sign, and use common mathematical operators and functions to produce a single numerical output. This output is then used as the computed value for the grade item you are editing.

Conditional (IF) operators can be used in grade calculations of the grade book, and logical operators (AND,OR) can be also used (MDL-64414).

Setting a grade calculation

Edit calculation setting
Example calculation


To set a grade calculation:

  1. Login as teacher or other user with permission to edit grades
  2. Click on Grades in the course administration block
  3. Click 'View > Grader Report'
  4. Click 'Turn Editing On'; a 'Controls' bar should appear above the grades
  5. Click the 'Calculator' icon above the grade item or category you wish to edit. Note: if you don't see this icon, then it must be enabled, either for this particular course in Setup > Preferences: Grader Report > Show/hide toggles > Show calculations, or system-wide in Site administration > Grades > Report settings > Grader report > Show calculations.
  6. Start with an equal sign (=)
  7. Type an expression using numbers, arithmetic operators, mathematical functions and ID numbers; for example =average()
  8. Plug in your ID numbers (see below) enclosed in double square brackets, for example =[[item1]]+[[item2]]
  9. Separate each function argument with a comma, as in =average([[item1]], [[item2]])+[[item3]])
  10. Click the "Save Changes" button

Assigning ID numbers

You can include the values of other grade items by using their ID number as references in your formulas. The ID number must be surrounded by double square brackets, for example if you have a grade item with Quiz.3 as ID number, you can refer this item using [[Quiz.3]] in your calculation.

Below the calculation field there is a list of your course grade categories and grade items. Next to each item or category's total there is the ID number you can use in your calculation (already surrounded with the required double square brackets).

However, since ID numbers are optional, some items may not yet have one. Each item without ID number have a form field that you can use to enter its ID number directly. As soon as you have assigned the ID numbers you need, you must click the "Add ID numbers" button; the page will reload and show you the same list including the ID numbers you have just assigned. Now you can use them in your grade calculation.

Note: Moodle does not allow calculations involving no ID numbers.

Calculation functions

Every grade calculation must start with an equal sign (=) followed by an expression using operators and functions supported by the system. All common arithmetic operators are supported

  • addition, using the plus (+) sign
  • subtraction, using the minus (-) sign
  • multiplication, using the asterisk (*) character
  • division, using the slash (/) character
  • exponentiation, using the caret (^) character

with their usual evaluation precedence rules: exponentiations are evaluated first, then multiplications and divisions are performed, finally additions and subtraction are carried out; so, the expression =1+2-3*4/5^6 gives almost 3 (2,999232). Different precedences can be forced using round parentheses, as in the expression =((((1+2)-3)*4)/5)^6 which yields 0.

Functions can also appear in expressions, using a separator between their arguments listed within round brackets.

Important:
  • For the English language pack this separator is a comma (,).
  • For other languages the separator could be a different character, for example a semicolon (;).
  • average([[item1]], [[item2]]...): Returns the average of the values in a list of arguments
  • ceil(number): Maps a real number to the smallest following integer
  • floor(number): Maps a real number to the largest previous integer
  • if([[item1]], [[item2]], [[item3]]): Evaluates the first argument (condition) and returns the second argument if the condition is not zero (true condition) and returns the third argument if the condition is zero (false condition).
  • max([[item1]], [[item2]]...): Returns the maximum value in a list of arguments
  • min([[item1]], [[item2]]...): Returns the minimum value in a list of arguments
  • mod(dividend, divisor): Calculates the remainder of a division
  • pi(): Returns the value of the number Pi (3.14159265...)
  • power(base, exponent): Raises a number to the exponent power (this is the same as base^exponent)
  • round(number, count): Rounds number to count decimal digits
  • sum([[item1]], [[item2]]...): Returns the sum of all arguments (this is the same as [[item1]]+[[item2]]+...

Many other mathematical functions are also supported:

  • sin()
  • sinh()
  • arcsin()
  • asin()
  • arcsinh()
  • asinh()
  • cos()
  • cosh()
  • arccos()
  • acos()
  • arccosh()
  • acosh()
  • tan()
  • tanh()
  • arctan()
  • atan()
  • arctanh()
  • atanh()
  • sqrt()
  • abs()
  • ln()
  • log()
  • exp()

Example calculations

  • =max([[Quiz.1]], [[Quiz.4]], [[Assignment.1]]) - Returns the maximum value of the grades referred by Quiz.1, Quiz.4 and Assignment.1
  • =average(max([[Quiz.1]], [[Quiz.4]], [[Assignment.1]]), min([[Quiz.1]], [[Quiz.4]], [[Assignment.1]])) - Returns the average of the maximum and the minimum values among Quiz.1, Quiz.4 and Assignment.1 (functions can be nested)
  • =sum([[item1]]*0.3, [[item2]]*0.6, [[item3]]*2) - Returns a weighted grade sum where item1 is weighted 30%, item2 is weighted at 60% and item3 is weighted at 200%
  • =if([[midtermexam]]>=5, [[midtermexam]]+[[lab]], 0) - Returns the sum of midtermexam and lab items if the midtermexam grade is 5 of more, and 0 otherwise. This is a very handy way of dealing with conditional evaluation in a course.
  • =if(AND([[item1]]>=5, [[item2]]>=5), ([[item1]]+[[item2]])/2, 0) - Returns the average of item1 and item2 if both have 5 of more, and 0 otherwise. This is a very handy way of dealing with sine qua non activities.

Calculations when user language is not English

Calculations and formulas use decimal and list separators as defined in the langconfig.php file of each language pack.

The decimal separator (the symbol used to mark the boundary between the integral and the fractional parts of a decimal number) is a point (.) in English. In other languages it may be a comma (,).

Analogously, the list separator (the symbol used to separate the items within a list, such as the arguments of a function) is a comma (,) in English. In other languages it may be a semicolon (;).

See also