I've been playing around with this issue. The reason it's important for me is that I work in a HS that uses a non-graded, standards & benchmark pedagogy. However, it is useful to set specific, numeric minimum requirements for students on homework, class participation, etc. Additionally, I teach the Interactive Mathematics Program which is primarily a student-centric and student-driven curriculum. (I should mention that I'm using Moodle for my classes only -- it's not a schoolwide system right now)
I currently have several weekly grades I give the students: class participation and "leadership" being two of them. Take the leadership grade for example. It's a grade I give to students based upon how much leadership initiative they demonstrated during the week. I use a scale that has 4 possible values:
- 0 - No Leadership demonstrated
- 1 - Demonstrated leadership within your group
- 2 - Demonstrated leadership during a whole class activity
- 3 - Demonstrated leadership within your group and during a class activity.
Now, I require my students to earn a specific # of points during the semester to receive credit in my class. Therefore, getting the gradebook to calculate a score would be a great assistance.
Here's my thinking:
Assumptions
I assume that I'll always use the scale with associated numeric "points". I further assume that the scale has been input from least points to greatest point value, beginning from zero and increasing by 1 point for each entry in the scale. (I always do point systems this way)
Changes to existing code
I've already changed the assignment module to return the maximum points for the assignment if it's using a scale (based upon my assumptions above).
My thinking is: if I also change the assignment module to return the grades as an array (grade, description), then it should be possible to check in the gradebook module to see if the grade is an array. If this is the case, then the gradebook will know it's a scaled assignment and can execute specialized code to calculate points per assignment, category points, etc.
Obviously, if this idea is attractive to others, we should add the "option" of whether or not to calculate points for scaled items in the gradebook advanced options.
Questions
Could somebody who's more intimately familiar with the gradebook_cdc code help me focus in on where to experiment with these changes? The code is a bit bulky and I haven't had a chance to print it out yet. I tried returning the array to find where it's used and found gradeslib.php:469 generated errors on grade being an array.
Thanks for reading this lengthy post!