How to calculate a "current grade" based on resource availability and/or due dates?

How to calculate a "current grade" based on resource availability and/or due dates?

by Basil Gohar -
Number of replies: 7

Is it at all possibly to calculate, on a per-student, per-course basis, a value for a "current grade" based on what assignments and other kinds of course modules could have been completed for a student up to that time?

We want to present to our clients' students and guardians a single value in an easy-to-find place representing their grade for work that is due, which can change as the year progresses and more work becomes available.

Myself and a colleague of mine have worked on this and started in the direction of creating a custom category for this that we dynamically alter with the relevant grade items, calculate, extract the value, and then remove the category, all behind the scenes.  We've meet with less than absolute success at this point.

We want this to be as automatic as possible, which is why we opted for using the dates of availability for the course modules, instead of just relying on teachers to create their own category.

Does anyone have any ideas on how this can be done, programmatically or otherwise?

In reply to Basil Gohar

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Matt Fedorko -

I have no direct corollary to what I'm doing, but I thought I'd share what I went through yesterday. It probably won't help!

I recently set up a course gradebook to display all of the student's grades up to that point based on a rubric (30% of the final grade from quizzes, 30% from homeworks, 40% from the final exam). When the student opens up the Gradebook in Moodle, it will show them all of their grades and, for each category, the average of the grades up that point (so a 75% so far for all quizzes, a 85% for all homeworks), but it WILL NOT give me a course total.

See, it's smart enough to realize that there isn't a grade yet for all of the quizzes the student hasn't yet taken, so it won't average those with all of the others. But because I'm using a weight to calculate the final grade, and there's no value for the final grade yet, it won't give me a course total. 

However, if you don't care about a fancy rubric, and everything's weighted the same, I believe when you set up your Gradebook, it should deliver a Course Total for everything the student has done up to that point -- that is your one value for their "current grade."

Otherwise, you can at least possibly get more than one value for the "current grade" for each type of activity. For instance, I would be able to provide the "current grade" for quizzes and the "current grade" for assignments, but no total grade.

I can talk more about how I got the Gradebook to do that, but I can summarize it as "screwed around for a couple hours until I understood what all the weird settings meant." 

In reply to Matt Fedorko

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Basil Gohar -

Thanks for the input.  We were thinking more along the lines of doing this behind the scenes, and not necessarily through the gradebook, but definitely using some of the gradebook logic to calculate the grades for the items we were interested in.

If you do feel like sharing how you got things setup as you've described, though, I think that would be helpful both for myself and others.

In reply to Basil Gohar

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Matt Fedorko -

I can describe what I did, sure, but it was a few weeks back now, and I was trying a lot of things to get it to behave the way I wanted it to.

Going into this, I knew that I was going to have a weighted grading scheme, based on different types of activities. In my case, we have homework assignments, quizzes, and a final exam (30%, 30%, 40%, respectively).

The first thing I did, then, was create categories in my gradebook. I did this for two reasons. 1.) So I could have Moodle calculate this weighted scheme I devised and 2.) I wanted the student to be able to look at their grade for the course as a whole and on a "per category" basis (I've communicated the weights to them in the syllabus, and if Moodle didn't do the calculation, they would have to do it themselves). To do any of the rest of what I've done, you don't necessarily need to use categories. I just thought it was helpful to me and the students. It does, I think, make the User Report in the Grader look a lot slicker.

I did this by going to the Grader report, under "Categories and items" under the Settings menu, clicking "Simple View" or "Full View." What you should be seeing is a list of all of the items that have grades attached to them in your class (if you have items that you don't want to be there, that's a whole different discussion). At the bottom of this page (outside of the iframe), there's a button that says "Add category." You can make your category, then at the bottom of the iframe, there's a menu that says "Move selected items to." So you can go up and use the checkboxes all of the way to the right to select all of your Quizzes, for example, then go back to the dropdown menu and move all of those items to the Quizzes category.

So before I d escribe anything in detail, let me summarize how I have this set up. At the CLASS LEVEL (topmost row in the iframe), under Aggregation, I have the drop down menu set to Weighted Mean of Grades. (There's a Moodle Doc somewhere that describes what all of those options are, by the way). I chose this one because I knew that each category was going to have a weight. Once I selected this, it reloads my iframe and gives me a new column named "Weight" to the right of "Aggregation" with little boxes beside each of my categories. I believe if I had any items outside of categories, it would give me boxes beside them. For instance, I have a category for "Final Exam" but I think I could get rid of the Category and just have Final Exam floating out there and it everything would still work fine.

I then put 0.3 beside Quizzes, 0.3 beside Assignments, and 0.4 beside Final Exam. As you might guess, if your values don't add up to 1, your students grades will be lower than they should be (if this value adds up to 0.7, the best the students would ever do would be a 70%, for instance). 

Once I got that far, I had to look at how I wanted to deal with the grading of the individual categories. This takes me back to the Aggregation column, but this time looking at the options for each category. 

The first problem I ran into was that all of my quizzes were defaulted to be out of a maximum score of 10 points (the "Max Grade" column), which makes things a little trickier because everywhere else I'm going to be using a 100 point range. If I were to have 10 quizzes, I could just sum them (the equivalent of averaging 10 100 point quizzes), or I could use some of the fancy calculation options Moodle gives you (----the "Calculator" icon that's to the rightmost part of the "Category Total" or "Course Total" rows --- this sucker is where you go if the built in Aggregation methods aren't powerful enough). In essence, I could make Moodle multiply each of my quiz grades by 10 before averaging them. This seemed too complicated.

But, personally, for me, I found it was easier to go into all of my quizzes and change the maximum points to 100. (There's no easy way to do this besides going into each and every quiz, clicking "Edit Quiz," then the "Editing Quiz" tab, then changing that value to 100 and clicking "Save.")

I was then able to change the Aggregation method to "Mean of grades."

And here, ladies and gentlemen, that I was confused for about 45 minutes. The last row in each category is labeled "Category Total." Notice that you can change the value in this column under "Max Grade." I don't know if this thing is buggy or is behaving the way it's supposed to, but sometimes it changes with what Aggregation method you've chosen and sometimes it doesn't. For instance, if you've chosen "Sum of grades," and you have 5 100 point items, this value should be 500. If it doesn't read 500 in that situation, you need to make it say 500 or it will not work.

In my case, since I'm using a simple mean of items that have all the same max value of 100, that little box should say 100. If it doesn't say 100, in my case, it will not work correctly. 

That's pretty much it. My Assignments category is shaped the same way ("Mean of Grades" as the Aggregation, each item's max grade is 100, the Category Total is 100). My silly Final Exam category has an aggregation method of "Sum of grades" because there's only one item. The category total is 100.

The Course Total is 100, in my case, because I want everything on a 100 point scale.

From here, you could get as fancy as you wanted. Moodle is pretty beefy, I've learned, in this area and the possibilities are too numerous for me to mention -- weighting individual items inside a category,  choosing to accept only the highest grades in a category, building in extra credit, using some intensive calculations inside each category or on a course level, etc.

I'm sorry I didn't provide pictures, but there's really only one screen and one menu. I can come back and put some screenshots up if people really want to see what I'm talking about.

This is just one way to do things, of course, and I would love people to post other ways of doing different things. I will try to keep tabs on this thread and answer questions about what I did, and I'm sure there's plenty of people who know more than I do about this thing.

In reply to Matt Fedorko

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Matt Fedorko -

Soon after I posted this, I moved the Final Exam "out of" the Final Exam category and delted the "Final Exam" category. This whole thing behaves like a tree. The course is at the top, then there's a second level which might contain activities or categories. Now I have two categories ("Quizzes" and "Assignments") and a Final Exam activity on the same level. Since the categories and the activity are on the same level, they're all given weights in the weighted mean calculation. I gave it a weight of 0.4 and everything's working fine.

In reply to Matt Fedorko

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Scott Biggin -

Hi Matt. It seems I may be trying to do the same thing with my grade book (I am using the weighted means of grades) but without success. In the User Report, I would like students to see the current average of the assignments, and exams, and also the current course grade. The two averages would give them an indication of how well they are doing, and the current course grade would inform them exactly what their current mark was. If you find a solution for this, please drop me an email.

In reply to Scott Biggin

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Basil Gohar -

Actually, I hope that any solution found would be shared on these forums, because this appears to be an issue that many would be or are already interested in.  We are currently working on a code-based solution within our company, and I was hoping someone else had already found a solution before we invested significant time into it.

If not, then I will try to share the solution we develop here.

In reply to Scott Biggin

Re: How to calculate a "current grade" based on resource availability and/or due dates?

by Matt Fedorko -

Scott, I'd have to look at things a little closer before answering you. I know that with the way I'm doing things (see above), the student will be able to see their average on a Category level (Quizzes, Assignments, Participation, whatever) as the course progresses and Moodle will ignore any items that are not completed (next week's quiz that's still open, for instance, or any hidden items). But I'm just using simple means inside each category. 

In short, I don't know how things will behave once you start in with other Aggregation methods, including weighted means. For instance, let's say you're summing 20 10-point grades in a category, and that sum is factored into a final grade somehow. Well, halfway through the semester, the student looks at his grades, sees that he has straight 10s on the first 10 assignments. Will Moodle tell him he has a 50% (100 of a possible 200 total points?) or will it know that only 100 of those possible points are available and give the student a 100%? Same with weighted means -- if an activity that makes up part of a weighted mean calculation hasn't been attempted yet, how does Moodle deal with the weighted mean calculation? I just don't know the answer to this question. I could've used the time it's taken me to type this to go in and put fake grades in and mess around, I guess, but then we'd have facts instead of random guessing and who wants that?

And maybe it doesn't matter that they can't see their course grade at that point? The User report shows the category total as well as a percentage and the ranges for each of the items attempted. So maybe the student is smart enough to figure these things out on his/her own...

I will say, Scott, that if you try to follow my process above, it should do some of what you're asking about. Tomorrow I will put in fake grades for a fake student into the course I just set up and will post a screenshot of the user report as if the student were mid-semester.