What are the major problems in the gradebook

What are the major problems in the gradebook

by Tim Hunt -
Number of replies: 30
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

I have broken this out of the other thread we were having. I said that there are serious underlying problems there, but there wasn't a summary anywhere of what those were.

In an attempt to be useful, I thought I would try to summarise the major problems that I know about.

When I say their are major problems, I do realise that the gradebook works for most people, most of the time. The problems only come in obscure corner cases, where different options in different places conflict. The problems arise in only those edge cases, but when they do they are almost impossible to fix because the conflicts are fairly fundamental.

Actually, this is getting quite long, so I will do a separate forum post for each issue.

In reply to Tim Hunt

Problem A. Which part of Moodle owns the grades?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

A simple example is the assignment module. The student's work gets a single grade. Should that be stored in the gradebook, or in the assignment module, or both?

Back before Moodle 1.9, it was stored in mod_assignment, and fetch by the gradebook every time the gradebook was displayed. This was a performance disaster.

In Moodle 1.9+, the grade was stored in both mod_assignment and in the gradebook. This was a mess.

In the new mod_assign (Moodle 2.3+) the grade is now only stored in the gradebook. Of course, it is still visible and editable in the assignment UI.

So, actually, this problem is solved in principle. The grade should be stored in one place (the gradebook), but the UI for seeing and editing that grade value can be shown wherever is appropriate.

In software terms this is an MVC approach. There should be a clear Model in the background to manage the data (and this is part of the gradebook code), and then as many Views and Controllers as necessary to display and edit the grade.

The good news is that in all the discussions that I have had with other developers about this, no-one disagrees with this principle.

The bad news is that this principle was not clearly established until after the current gradebook was created so lots of parts of Moodle do not follow this principle. (E.g. the quiz_grades table still exists.) Fixing that will not be easy.

In reply to Tim Hunt

Re: Problem A. Which part of Moodle owns the grades?

by Robert Russo -

That's exactly what I'm proposing in Phase 3.

The system grade book serves as the Model and is pluggable for aggregation methods.

The "user" grade books are the view and controller, hence immensely simpler to write and upgrade Moodle without breaking things.

Right now, we don't allow developers to replace the edit tree without hacking core.

We don't allow easy creation of aggregation methods without hacking core.

Some of us make do by creating edit plugins as reports, but that is a hack too.

We also resort to massive changes to core for relatively minor fixes and functionality changes. This needs to stop. Moodle should encourage users to write agg methods and simpler interfaces for building grade books, but it doesn't. As it is, it actively discourages users from diving in. The grade book is largely unchanged since 1.9.5 when the tiniest bit of my code got into core.

It's been years and there's still bugs big enough to eat schools alive (grade rounding when converting to letter grades not matching what students see) and get them in deep water. We still have to contend with max_inpu_vars for large courses (we have several with over 1500 active students).

We still have no non-technical method of retrieving grades from grade_history.

The list goes on and on. We've addressed some. Others have addressed others. But there is a huge barrier to innovation and I believe until the grade book is rethought, those barriers will be the ultimate downfall of Moodle.

In reply to Tim Hunt

Re: Problem A. Which part of Moodle owns the grades?

by Rodney Wolford -

Tim,

I posted about a problem I thought was related to Quizzes. You stated it was not, saying that the error messages were for grades. https://moodle.org/mod/forum/discuss.php?d=252943

Now I see it seems you have deep knowledge about grade issues and have presented a number of detailed observations about the problems, as related in this post.

I have also seen some of your other posts, from earlier, where you helped individuals solve database problems related to the gradebook. For example, https://moodle.org/mod/forum/discuss.php?d=233297#p1014470 So it is clear you could help.

This leads me to wonder why you haven't taken a moment to at least review or ponder my current problem, especially since you have already commented on it once to dismiss its consideration as a quizzes problem. The link to that problem, stated as clearly as I can state it is here: https://moodle.org/mod/forum/discuss.php?d=253808 Slowly slipping from view with no help.

I think it it is clear I need some help. And I think it is clear you have the capability to offer it. I am wondering why you haven't even looked at it. Is it the way I presented the problem? Is it that it is beneath your consideration having once dismissed it? Do you have "bigger fish to fry" as we say here in the states? Or is it because you don't have an answer? Maybe it is related to https://tracker.moodle.org/browse/MDL-31441, which still remains unresolved? I would really like to know. It might help me to become a better moodler. It might even help me to solve my problem.

Curiously yours,

Rod Wolford

In reply to Rodney Wolford

Re: Problem A. Which part of Moodle owns the grades?

by Derek Chirnside -

Rodney, some of your phraseology and irritation showing through may be a little unfortunate, with many other possibilities in a post from you being more productive.  

You are over thinking, and have broken at least one of the key guidelines to success in online forums.

-Derek

In reply to Tim Hunt

Problem B: the model we have for grades is not quite right

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

If you look at the properties of grade_grades and grade_items (either the class definitions, or the database tables) then it is not clear that the data we have is quite right for what we really need.

Fortunately, it is not bad. As I said before, the gradebook works for most people most of the time. But still, solving some of the other problems will only be possible with a change to the model, and it is not clear how the model should be changed to solve all the problems. Working that out will require some serious, deep requirements analysis.

Some examples of some specific problems with the model:

1. Let's start with the good news, one that was solved in the past. It used to be impossible to have 'extra credit' activities, beloved of the Americans. Now you can.

2. However, I think it is still not possible to have grades above 100% or below 0%, and perhaps it should?

3. The thing we have been arguing about in the other thread: Should the visibility of the grade item be a separate concept from the visibility of the corresponding activity, or one and the same?

4. At the moment whether a grade item is visible can have three states: Hidden, Visible, or Hidden until a given date. It is not clear that third option should really be build into the data model. The alternative is to have grade items be either hidden or visible at any one time, and if you want that to change automatically at a set time, should have a separate plugin that makes that change at the right time.

5. I am about to explain another issue as Problem C.

Note that it is not just enough to have a model that is logically self-consistent and lets us write bug-free code. We also need to have a model that makes sense to teacher. Of course most teachers should not need to understand the full model. As I say, simple scenarios work for most people with the current faulty model. But there will always be power-users, and we should be able to explain the full model to them if they are interested.

In reply to Tim Hunt

Re: Problem B: the model we have for grades is not quite right

by Robert Russo -

1. Let's start with the good news, one that was solved in the past. It used to be impossible to have 'extra credit' activities, beloved of the Americans. Now you can.

But not in weighted mean, unless you use LSU's Moodle.

2. However, I think it is still not possible to have grades above 100% or below 0%, and perhaps it should?

Grades and percentages above max are supported. Should they be is another argument. I don't think they should, but 90% of our faculty do. We have 2,100 Moodle instructors.

3. The thing we have been arguing about in the other thread: Should the visibility of the grade item be a separate concept from the visibility of the corresponding activity, or one and the same?

This is a source of contention for us as well. I'm torn between not caring and eating lunch, but our faculty randomly get confused by the separate nature of it as it is now.

4. At the moment whether a grade item is visible can have three states: Hidden, Visible, or Hidden until a given date. It is not clear that third option should really be build into the data model. The alternative is to have grade items be either hidden or visible at any one time, and if you want that to change automatically at a set time, should have a separate plugin that makes that change at the right time.

I like the way you think! 

In reply to Tim Hunt

Problem C: combining automatic and manual grades

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

This can best be described with a specific scenario.

  1. Student attempts a quiz and scores 50%. This is reflected in the gradebook.
  2. Teacher manually edits that grade to 60% in the gradebook.
  3. Student makes a second attempt at the quiz, and now scores 70%.

What should the student's grade be now? (In the gradebook UI and the quiz UI, but hopefully the answer is the same in both places.)

You can vary that scenario by changing the grades. Is your answer the same in all cases? Also, this does not only apply to the quiz. It also applies to the Workshop, or a rated Forum, or even a calculated grade item in the gradebook, or the course total.

I have been asking this question, on and off, for years, but have never got an answer. In fact, I don't think there is one right answer to this, we will just have to pick one, and declare Moodle works that way, but we should try to pick one that works best for teachers more often than not, and I don't have an opinion about this.

Note that in terms of the current Moodle code, this is handled by things like locked grades, but that does not work very well, and often leads to confused people asking questions here, so that suggests other parts of the model to review.

In reply to Tim Hunt

Re: Problem C: combining automatic and manual grades

by Robert Russo -

I've thought about this one for years as well.

The simplest solution would be for the grade book AND quiz itself to show the overridden grade (designated as such) and the achieved grade side by side or via hover or popup with some visual cues (the word overridden and a color change at the very least).

The better solution os to NOT store grades in multiple locations. Quiz achieved grades could be stored in the grade_grades table as raw grade and overrides stored as grade_grades.finalgrade, this way when the user un-pverrides, the grade is returned to the raw grade.

This would require changes to quiz as well as the grade book's myriad parts.

 

Thanks for pointing me to this forum, btw.

In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

OK, I am going to shut up now. I think those are the three most serious problems, but I could well be forgetting more. I hope that was helpful to someone. Please feel free to add to this list.

In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Robert Russo -

The most egregious problem is that letter grade rounding only takes place at 2 decimal places, creating the possibility for students to see one grade and receive another letter grade.

 

Here's a patch.

In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Eric Merrill -
Picture of Core developers Picture of Moodle HQ Picture of Peer reviewers Picture of Plugin developers Picture of Testers

This one is very complicated, because much of the gradebook structure seems to be built on this assumption, but if we are going to think big here...

A design assumption in much of the gradebook is that all users will have the same number of possible points. This causes bad computations in categories with drop highest/lowest X settings, and group members only (different activities for different groupings). You can get around these by using certain aggregation modes and settings, but the result if far from clean - usually with the student seeing that they are getting a way lower score than expected.

In reply to Eric Merrill

Re: What are the major problems in the gradebook

by Bob Puffer -

Right you are, Eric, this design assumption is the single biggest bane of schools with whom I've dealt with in North America.  They want points which is not the same as Moodle's 'real number' because Moodle assumes that's always going to be 100.  The two most largely used agg methods, WM and SWM both calculate the category total at 100 (real number) which is just a restatement of percentage and totally useless.  Potential workarounds are flawed to the core:

  1. Switch to Sum of grades and the correct total points is calculated. But you can't leave it at Sum of grades because SofG includes non-graded items regardless of the setting of 'Aggregate only graded item'.
  2. So, you need to switch back to SWM or WM except you likely haven't got all your grade items in the gradebook yet.
  3. So, you need to continually switch back and forth or manually tally the correct cat and course totals.  But I've seen many problems from teachers who've switched back and forth several times.  Most notable is the grademax in grade_items gets set to 0.

This is the main reason I wrote the LAE Grader report and likely a big part of the reason why it had 1,700+ downloads from plugins in September.

In reply to Bob Puffer

Re: What are the major problems in the gradebook

by Mark McKay -

The Sum of Grades issue was the largest point of contention here at the University of Minnesota as well, so we wrote a patch (simultaneously for 2.2 and 2.4), along with making the "Exclude Hidden" and "Aggregate Only Non-Empty Grades" features work as one would expect across the three aggregation methods that we employ (the other two being Simple Weighted Means and Weighted Means).

We've posted a patch at https://tracker.moodle.org/browse/MDL-39708 for the Sum of Grades fix, but concur that it needs to be reworked in core from the ground up. It's the simplest and most straight forward method for most users at our institution, and now that we have patched it, it's the core of our gradebook training class and our #1 recipe.

Separately, and perhaps I will post a different reply as Problem D, are User Interface issues. The way the grader report works is confusing to users, likely related to Problems A-C, but also just from a design and usability perspective. We are in the process of evaluating Bob's LAE grader, along with the idea of a "pop-out" feature that isolates the "spreadsheet", but we maintain that the grader report still needs attention.

That's my two cents for now.

Mark McKay
Systems Analyst
University of MInnesota

In reply to Mark McKay

Re: What are the major problems in the gradebook

by Bob Puffer -

Mark, make sure you get the latest LAE Grader report off my github or from plugins as there's been an entire rewrite of the css.

In reply to Mark McKay

Re: What are the major problems in the gradebook

by Robert Russo -

I'd love to turn this into it's own aggregation method.

Hmm....

In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Robert Russo -

Let me try to do this in a less fragmented manner instead of commenting everywhere.

  1. No extra credit in weighted mean.
  2. Letters grades are fundamentally broken.
    1. Letter grades are rounded to 2 decimal places regardless of teacher's preferences. So students may see a 90, which they know from their syllabus that that equals an A, but they receive a B, due to the 2 decimal rounding.
    2. Letter grade boundaries are integers.
    3. Letters are arbitrary. In schools with rigid grading scales and letters that their SIS will accept, this is a nightmare.
  3. Sum of grades is fundamentally broken.
    1. SUM doesn't work when you ignore empty grades.
    2. SUM doesn't work when you exclude items.
    3. SUM doesn't work when you drop lowest or keep highest.
  4. The grader report has "some" usability issues.
    1. The grader report needs a user adjustable repeat headers setting.
    2. There's no way to know what your weight is outside of the edit tree.
    3. There's no way to edit one grade item's grades or one student's grades without everything else cluttering the screen up.
    4. Category overrides are the BANE of millions of users existence.
    5. Overrides in general are FAR too easy too create and FAR too hard to undo and get teachers into lots of trouble.
    6. Overridden grades are not obvious.
    7. In large courses, there is no way to assign 99 1 point grades and five 0 point grades without entering them by hand when grading homework.
    8. Large grade books are very difficult to find a particular student in.
    9. Leaving the grader report without saving DOES NOT GENERATE A WARNING!
  5. Drop lowest is fundamentally broken.
    1. When a student only has two items out of five and mid-term grades are due, if the teacher is dropping two grades, the student has a 0 for their mid-term grade even if they have to 100% scores.
  6. Weighted extra credit only makes sense to aliens.
  7. Manual grade book items have a grade: none option, which is evil and cruel. If you create a manual item and set it to grade type: none, you are screwed and can never see that item again to update it or delete it without DB exploration.
  8. Manual grade entries behave differently than every other grade entry. They cannot be offset and they can not have a multiplicator because of this.
  9. CSV importer is fundamentally flawed.
    1. CSV import dies whenever it encounters an issue and you're left to wonder when, where, and why it died.
    2. If a grade item is locked, CSV importer will happily overwrite said grade.
  10. max_input_vars limitations throughout.

That's all I have off my head right now. 

In reply to Robert Russo

Re: What are the major problems in the gradebook

by Robert Russo -

LSU's Moodle solves the following.

1

2

4.1

4.2

4.3

4.4

4.5(ish) Our solution does not address the simplicity in which you can override grades or the discrepancy between overrides and generated grades, but it does make clearing overrides easy.

4.6

4.7

4.8

5

6

7

8

In reply to Robert Russo

Re: What are the major problems in the gradebook

by Keith C -

I think the issue that an item needs a grade to be counted OR the student needs to start with a 0 average and work their way up is a serious problem.  At the secondary level it doesn't work.  I know there is a discussion about this I participated in on these forums.

In reply to Keith C

Re: What are the major problems in the gradebook

by Bob Puffer -

Not certain I understand. With WM and SWM you can aggregate (count) only graded items so students start out with nothing and then as they are graded, the computation of those grades are what they would be achieving. With Sum of grades this doesn't work unless you apply University of Minnesota's patch.

In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Someone who wishes to remain anonymous sent me some things in an email. (What a pain.) I am just copying and pasting it here. (Really, these are good points. Not need to be ashamed about posting them yourself.)

  1. We use the Moodle gradebook for all of our courses and have the integration with Banner – all final letter grades are sent from Moodle to Banner.
  2. The most common mistake my faculty continue to make is adding only a Category to the gradebook and not adding a graded item to the category.  They then add the grades to the category and the aggregation does not work.  I would like to see a message or a block that would say in creating a category you must add a graded item to the gradebook.  Or block the teacher from adding grades directly into a category.  I realize that will not work since it would block the ability to edit the category – but I have done workshops, videos, announcements and as many ideas as I can manage – but it still an issue. 
  3. We need rounding – it is required.  I am working with Pukunui and they will be contracted by us to allow editing pass the decimal point.  In writing to them they stated that once this is done and working properly it will be submitted to Moodle to become a part of the core.  I know many folks would like to see this.
  4. We end up with all of the grades – especially the Course total being overridden.  It would be great if there was a way to restore the course total for each student and uncheck the overridden box – for all students at one time – instead for having to do each student one at a time.
  5. My math faculty has also asked for more in-depth information about the Moodle calculation – can the teacher see the full formula being used to calculate the student’s grade – especially in seeing if only non-empty grades are being calculated and if the lowest graded item(s) are being dropped. 
In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Mike Landis -

Tim above and others do mention problems with the override of grades functionality, and the fact that grades are stored in more than one place, and I agree that this is a problem fundamentally.

Other usability issues that are critical for us (in v. 2.5):

1) There is no way to enter an arbitrary number into the "Grade" field when setting up an assignment.  A pulldown of 100 values is unweildy.  And worse, some of our faculty want to have assignments on larger grade scales.  A "max grade" should be able to be any number the instructor wants and not limited to a pulldown of range 100, with some other custom scales.

2) When overriding grades, in the gradebook the grade item becomes shaded, but the consequences of overriding grades in the gradebook are not clear to most instructors and the shading should have a footnote or key at the bottom of the report stating something akin to "Shaded grades are overridden."

3)  Un-overriding grades is cumbersome.  If a user manually selects an overridden grade in the gradebook and clears the entry, the grade still stays overridden (overridden to be empty).  Fields with no content in other places on the form have a different meaning.    If a professor overrides a number of grades accidentally (easy and quick to do) then the user must go to each individual grade setting to undo this action (very tedious and time consuming).  If entering a grade in a field overrides a grade, then clearing a grade to match the other fields should un-override the grade.

4) Grade items should have a short-name and a full name to make the full grader view easier to use.  The grade column headings are as wide as the assignment or item name - often 20 or more characters - with only 4 or 5 characters sometimes in the row data for each student.  This makes the whole grader view basically totally unwieldy.

5)  It should be possible to "turn editing on" in the grade User Report, so that those grades for an individual student can be edited or overridden if necessary.  The absence of this is somewhat inconsistent.

 

Thanks for all of your work to make Moodle great though, in spite of the gradebook's evolving weirdness.

 

In reply to Mike Landis

Re: What are the major problems in the gradebook

by steve miley -

Mike  - I'll comment on a few of your items, as we've put in a few patches to make things a little better - 

1.  we changed the max points from 100 to 300, still awkward and not perfect, but better, and we have fewer complaints.

2/3.  we made a change preventing a person from overriding the category and course totals.  a baby step, but helps in a big way prevent some possible problems.  Agreed on a legend. 

 

5. You should look at LSU's quick edit module. This is a super contribution, that allows one to edit all grades for one student, or all students for 1 grade item.  Our instructors love it.  My plan is to turn off editing in the grader report. 

 

If you want any more detail on any of these, let me know. Steve

In reply to steve miley

Re: What are the major problems in the gradebook

by Mike Landis -

Thanks so much Steve.  I do want to give the LSU plugin a try when we roll out our new instance at the end of the semester.  We'll be upgrading to 2.6 then as well I'm fairly sure.

In reply to steve miley

Re: What are the major problems in the gradebook

by Robert Russo -

We made ours 500, but I still believe this should be a float input box instead of the arcane drop down.

In reply to Tim Hunt

Re: What are the major problems in the gradebook

by Eric Strom -

Consider this an echo of many of the issues highlighted here already. I'll add my two (current) issues with grades; one is a basic design premise, the second is for those really wanting to leverage it but can't.

1) Populating a gradebook with items from scratch using real course activities is done outside of the grades module. On first glance, one might understandably start creating grade items manually from the categories and items tab with the intention to create activities that coincide with the gradebook structure. Little do they realize that now there are two grade items for each activity and a bunch of wasted time creating manual grade items initially.

2) Custom calculations do not support (as far as I can see) a way to aggregate using "=product" functionality of multiple graded items. Would be nice to define a grade calculated on the percentages of many items; for example

=product(assignment1,asignment2,assignment3)

This grading design provides incentive for students to maintain consistent quality work as future poor results negatively impacts scores from previous work. Would love to find a way to do this. Perhaps someone knows a way?

 

In reply to Eric Strom

Re: What are the major problems in the gradebook

by Steve Ambro v3.8 -

Still in 2.5.1 so I don't know if these have been addressed:

--In Grader Report, move the horizontal scroll bar to the top

--Also in Grader report: lock first row and first column headers (freeze panes as in Excel) to allow easy access without losing student names or the assignment name when scrolling.

--When grading assignments, allow entering a grade manually without having to use a scale.

--See if scale values can be value-based instead of an array-index. (ordinal)

--Allow resizing of columns and remember setting for next session.

-- Hide columns and remember for next session.

--User report by student name should allow direct  editing of grades.

---Have an indicator in the assignment list to show if assignments are waiting to be graded

.Too many?

 

In reply to Eric Strom

Re: What are the major problems in the gradebook

by Bob Puffer -

Calculations in 2.5.1 support multiplication *

In reply to Bob Puffer

Re: What are the major problems in the gradebook

by Eric Strom -

I saw that too, but (at least in 2.5.3) I don't see a working solution:

If I want a category to be calculated as = Item1 x Item2 x Item3 x Item4, where all items 1-4 have a value other than zero; all of these attempts fail to product the result I hope for:

=sum(1*2*3*4, 0)

=sum(1*2*3*4, 5) - where 5 is another item with value of zero

=max(1*2*3*4, 5) - where 5 is another item with value of zero

* the enclosed double hard brackets were used above, they just didn't come through in the post.

The category calculation does equal 0 if one or more of the items has no value, so guess it partially "works"

"=product" seems a little too fundamental to any calculation support for it to be non-existent.

 

product calculations fail