The current Moodle gradebook does need to become more scalable. It is far too slow for classes with many students. It needs paging and sorting by column headings. Luckily Jon has recently given Moodle a new table class that produces paged, sortable tables with a lot of other goodies thrown in. The Moodle gradebook should be upgraded to use these.
There is not currently a central database table to hold the grades in Moodle. Such a database table should be introduced to hold all the information that is needed to print the grades table. Without that paging and sorting could not work efficiently. For the time being the database table would have to be populated by polling all the modules. In the long run however more and
more modules should convert to writing their grades to this table
The new gradebook should have the "Calculated Columns" capability of
cvs:/contrib/gradebook. The code for that is not too complicated but needs to be cleaned up a bit to provide better error handling when the formula the user gives leads to errors in the calculation. Also the new version should allow these calculated columns to be mixed in with other columns rather than having them only at the end. In particular the totals column (which is a particular calculated columns) should appear as the first column after the student's name which is important in those cases where there are a lot of columns in the table.
I haven't tried any of the other gradebooks recently. What are the most important capabilities of those that you think should definitely go into the central Moodle gradebook?
It would be really nice to see an updated "official" GradeBook in Moodle:
- To improve "ease of use"
- To support the creation of MyMoodle pages [Student / Teacher / Admins / Course Creators / etc (What ever roles are created by a roles feature)]
- To more easily support graphic representation of grades and activity.
- To enable group upload of grades and export of grades
- To enable specific upload of grades and export of grades for one or a specific group of students (not all). This way a student's grades could be removed and imported if the student is moved to another class.
The other issues I see are:
- Teacher input
If there is a major upgrade to the core MoodleGradeBook I think there should be a general news announcement to the entire Moodle community requesting input from teachers and anyone else (admins, etc) that use the gradebook to get their input about what features they need in a MoodleGradeBook. This is the only way (I am aware of) to let the entire Moodle community know about this, as not all Moodlers may be subscribed to the GradeBook forums. The "CDC" and "SFSU" GradeBooks are in "live" situations, so hopefully the programmers reponsible for developing and running each software will be able to provide very useful information about gradebook use and features from their particular perspectives.
Also, hopefully, a usability group will look at the gradebook and officially work with developers and provide input about usability issues relating to the present gradebook and any developing gradebook. If development is only based on the developers concepts of what is needed, I think, many issues relating to ease of use may be missed. Yes, all usability issues may not be addressed, but with the help of those who are into or experienced in "usability" there should be less usability issues the first go round, just like there should be less programming issues by tapping into the knowledge of those who have programmed gradebook software previously.
"Calculated Columns" and "SIS" were both address by Gustav and Bryan above.
Just some thoughts.
I also would like the gradebook to take into consideration the fact that number or letter grades are not necessarily the only method of marking a student's work. It would be nice if the teacher's comments could be recorded in the gradebook, and an option simply for keeping track of whether a student had done a non-graded piece of work or not. Currently, there is no way to do this, as far as I can tell.
Comments are another issue, currently they are handled by the modules. Where would you put them in the gradebook?
The new gradebook should have the "Calculated Columns" capability
What abilities does CC give you that are not already in gradebook_cdc? We tried to cover most needs mentioned here (other than mass uploading, which works but hasn't been implemented in the main system yet).
There is not currently a central database table to hold the grades in Moodle.
When we looked at the issue we found that a central grades table gradebook would represent some pretty fundamental changes in the way Moodle's modular structure works, so we didn't try to implement that at this time. In our estimation, this would represent much more than a discussion of what features should be in a gradebook, some pretty big changes in the way modules are written and handle grades would have to be implemented at the same time.
IMO, this is a good time to work on getting the features (categories, weighting, dropping, exclusions, letters grades, etc.) that are missing in Moodle implemented than to try an tackle the much larger task of centralizing the grades. I'd fully agree that a central grades table gradebook is the best long run goal (my one course with 8500 students takes ~34 seconds to load) however in our use here courses with a hundred or so students load quite quickly without undue load on the server.
A manual, with gradebook_cdc features covered is available here.
There is one feature that is an absolutely must for any new gradebook: paging. It is not very difficult to implement and immediately makes the gradebook scalable to any number of students. This could probably be fitted to your gradebook quite easily.
Another thing that is easy to add are user pictures. I find it is one of the greatest features of Moodle that it shows me the student's pictures when I look at their grades. Especially in a blended learning environment where I will also meet the students in person it is a very valuable feature. Was there any reason why you left them out in your gradebook?
One thing that works well with the current gradebook with its simple table is that one can export it to an excel spreadsheet and then manipulate it further. I assume your gradebook has preserved that feature?
Thanks for planning to provide us with a test server for playing around with your gradebook. That will be very convenient.
Pictures: we left these out due to the load time (that was before the paging functions became part of the api). We handled large classes with reprinted activity/category titles, but If the new pageing functions are an easy fit, then adding pictures back in shouldn't be a problem.
Export works for straight points, as the old system did, it's pretty much the same code. We did not implement exporting the weighting, etc. to excel or text, though if someone wants to do that we'd be happy.
What about a "printer-friendly" option that would allow the ability to printout a student's or class's grades from the web, if necessary??
I think a central table for grades is essential. I see it as a key to further integrate Moodle with other student management systems.
For instance, at ULPGC the official grades are set trough a dedicated application. Each teacher has to enter the grades, in a stereotyped way, and then are sent to the central Oracle database. My impression is that with a central table it would be much easier to connect Moodle with the Institutional database a a given point in time: when pressing the "Publish grades" button in Moodle, closes the course for further grading, reads grades with a simple SQL statement, and sends to Oracle with another simple SQL.
- Enrique -
The hard part would be to constantly update an external gradebook with the current code--and that goes to re-designing all the modules to give up control of the grades, (and some thinking about that, eg. when should a quiz graded on an average or highest score of multiple attempts stop sending grades to the centralquiz grades table, and how would it know to do it), but if the model is to keep the grades in Moodle and for the instructor to publish them to the SIS when the course is done, gradebook_cdc should be able to do that without too much trouble.
and UW-Madison did grade submission with our former CMS WebCT. I was in on the requirements and design of both. I'm giving a few requirements here. Then I'll explain some of the technology being used. See http://coco.doit.wisc.edu/~hoymand/uw-gradesub/LUW-SRS-Grade%20Sub%201.0.doc.pdf
for the full requirements specification, which includes high level design diagram at the end.
The official grade roster, students that are to receive grades, some
from the SIS at some set time in the term. This grade roster is just like
the usual student rosters, in terms of it's technical construction.
In the gradebook, there is
a clear indication of which students are to receive grades.
Final grade column with letter grade. This is a calculated column.
Scale for the grade that has a default for entire server and
can be changed by instructor on per course basis.
Scales are typically A,BA,B,CB,C,D,F, but we do have other variations.
Instructor initiates grade submission, which sends what ever is
in the final grade column to the SIS for the students on the final grade
This starts with integration with the SIS for student rosters. This insures
we have all the right students and does include student IDs needed by
the SIS are there. The student rosters are updated daily.
For the grade submission, we take one of the daily updates and annoint it
to be the "grade roster". The grade submission data looks just like a
grade roster, it adds the final grade.
We have used the IMS Enterprise spec (http://www.imsglobal.org/enterprise) for
the format of the data in between the SIS and the CMS. In our current model we send all the data for the campus in the course roster daily. For grade submission, we send at the course level. The daily feed is similar to the BB "snapshot" interface.
Going forward, we would like to use the IMS Enterprise Service spec, which is the Web Service version, and allows for a "real time" incremental update. This would mean that both the SIS and the CMS would need to implement this WS.
In this general approach, one doesn't think of "writing to an SIS DB" directly, rather it's done with an implementation of the IMS Enterprise in the SIS. This allows for ONE could implementation to handle any CMS. Similarly, we would not have the SIS write directly to a CMS db. ONE good implementation would work for any SIS.
It's similar to a "device driver" or "plugin" architecture. You write your software to the API, not to the device.
This approach does mean one has to be able to deal with the XML data and with WS.
While PHP may or may not be up to this (today), it's quite possible to run Apache Axis right next to Moodle and let it provide the XML and WS. Down the road a bit
(1-2 years), I think PHP will have all the support for WS needed. Someone on my team (Brad) was on the Zend course about PHP WS yesterday, so I'll know about where that's at later today...
A working version is here: http://cdc.humboldt.edu/moodletest/moodle15/
login as teacher/teacher.
We haven't put the backup code up on this test site yet, but everything else should work.
There does appear to be little to no cell padding in the current themes, we'd want to add that in a theme, but all that should be controllable from a theme.
1. Capabilities for non-whole number inputs for assignment/quiz grades (e.g. a Quiz to be worth 2.5% of the overall grade).
2. Capabilities for manual grade entry to overide a current grade in the gradebook.
This last comment has more to do with the Quiz module, but let me throw this out as it is important and eventually has an impact on a stduent's grade:
1.The ability to trigger an e-mail to the instructor if a student scores less than "x" (and x can be predifined in the QUIZ SETTINGS on a Quiz .
2. The ability to add an option in a course to prevent a stduent from "moving on" to a new learnimng module or activity if the overall grade is less than "x".
1. Capabilities for non-whole number inputs for assignment/quiz grades (e.g. a Quiz to be worth 2.5% of the overall grade).
This is in gradebook_cdc, you put the quiz in a category, and the category can be worth x.xx of the final grade (eg 2.5% or 2.75%, etc).
2. Capabilities for manual grade entry to override a current grade in the gradebook.
Currently this is handled by the modules, with some mods allowing manual grades and others not. The problem with having manual grades from the gradebook override grades in the modules goes to this core design of Moodle, eg. the modules all need to be redesigned to deal with having their grades overriden and some sort of rules for the api agreed on (eg. if a quiz is grading itself on average score or highest score, when and how does the manual grade over-ride the grades being calculated by the quiz?)
The current model in Moodle is the gradebook just takes what numbers it gets from the modules and then applies the weighting, etc.
Do you think gradebook_cdc will be in Moodle 1.5?
I think it is great. Thanks for the hard work!
Yes <THANKS> to Martin et al. for the code cleanup and Moodlizing!
It's looking very nice now with the tabbed interface and running faster too!
And thanks very much for taking the time to get this into 1.5!
Jeff's trying to fix Blackboard 6.1 question import now (BB has a very odd idea of how to write XML), but he can help out if more needs to be done to get the gradebook all set for release & of course bug squashing in beta.
Would it be possible to have subcategories and subtotal grades for categories?
The reason why I asked is that in our country we are made to submit grades per grading period i.e. every two months or so. Such that a grading sheet for elementary and high school would be subdivided into first grading ... fourth grading period, while in college its usually preliminary, midterm, finals. Each of these categories have their own subcategories of quizzes etc.
I assume that with the current gradebook i can simply hide the next grading period, and unhide it later on. Then manually export each period. But would this not mean that the final grade will be overwritten in the database and i would have to reset the weights?
I don't know if subcategories and subtotal grades would be sensible for others but it would sure be great if its included as options in the gradebook.