New gradebook for core Moodle

New gradebook for core Moodle

by Gustav W Delius -
Number of replies: 27
There is a phletora of gradebooks in contrib now: cvs:/contrib/gradebook, cvs:/contrib/gradebook2, cvs:/contrib/gradebook_cdc and cvs:/contrib/gradebook_sfsu. I think it is time that some of the features of these gradebooks made it into the main Moodle CVS.

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
directly.

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?
In reply to Gustav W Delius

Re: New gradebook for core Moodle

by Bryan Williams -
This is profoundly good advice (IMO). A major benefit of the central database table for grades going forward will be the ease with which student information systems (SIS) will be able to interact with Moodle. Come on developers, lets get with the program and make gradebook something that shines in Moodle like everything else. I think the Penney & Company gradebook is looking pretty good right now, and would certainly like to see a serious dialog going for gradebook changes in 1.5.
In reply to Bryan Williams

Re: New gradebook for core Moodle

by W Page -
Hi Gustav and Bryan!

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:

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.

WP1


In reply to Gustav W Delius

Re: New gradebook for core Moodle

by N Hansen -
Unless there are plans to include this elsewhere in Moodle, I would like to see improved tracking capabilities incorporated into the gradebook. Something that would make it easy for teachers to see what work they had graded, that students had completed, and what students still needed to do, and what teachers still needed to review.

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.
In reply to N Hansen

Re: New gradebook for core Moodle

by Michael Penney -
In gradebook_cdc, put non-graded items in a 0 weighted catagory, and give them a grade of 1 if completed. The grade won't modify their total, but you'll be able to see at a glance who has completed what.

Comments are another issue, currently they are handled by the modules. Where would you put them in the gradebook?
In reply to Gustav W Delius

Re: New gradebook for core Moodle

by Michael Penney -
Hi Gustav, gradebook_cdc has all the backup code written, XHTML compliance, and should be able to drop into 1.5 Head with minimal effort. Jeff's implemented a number of suggestions Martin had for improving & Moodleizing the interface. The 1.5 code with XHTML compliance and interface changes is in CVS/contrib/gradebook_cdc/1.5. We'll try to get this running on a 1.5 install for folks to test.

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.




In reply to Michael Penney

Re: New gradebook for core Moodle

by Gustav W Delius -
I had a brief look at your gradebook and it is very impressive with a huge number of features and options. With all those different settings it should indeed be possible to do all those things which we currently do with calculated columns (personally I find calculated columns the simpler way of achieving the same thing but I realize that that is probably just because I am a mathematician and used to working with spreadsheets).

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.

In reply to Gustav W Delius

Re: New gradebook for core Moodle

by Michael Penney -
Hi Gustav, thanks for the comments!

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 happysmile.


In reply to Michael Penney

Re: New gradebook for core Moodle

by W Page -
Hi Gustav & Michael!

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??

WP1
In reply to Michael Penney

Re: New gradebook for core Moodle

by Enrique Castro -
Picture of Core developers Picture of Particularly helpful Moodlers
Hi,
    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 -
In reply to Enrique Castro

Re: New gradebook for core Moodle

by Michael Penney -
Hi Enrique, I think you (or wesmile could do that ("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.) with gradebook_cdc. It isn't a simple SQL statement to read the grades, but once read and weighted, etc. by Jeff's code the numbers and letters could be formed into a SQL statement and sent to your SIS.

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.
In reply to Michael Penney

Re: New gradebook for core Moodle

by Dirk Herr-Hoyman -
UW has been doing grade submission with our current CMS Desire2Learn
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.

Requirements:
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
roster.

Technology:
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...
In reply to Michael Penney

Re: New gradebook for core Moodle

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
It's one thing on my list ... I keep getting waylaid ... Thanks for the working on the fixes ... I'll take a look at your latest version today.
In reply to Martin Dougiamas

Re: New gradebook for core Moodle

by Michael Penney -
Hi Martin, thanks!

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.
In reply to Michael Penney

Re: New gradebook for core Moodle

by Gustav W Delius -
I recommend that people who want to take a look at the demo of the new gradebook should use IE rather than Firefox because currently the table looks very confusing in Firefox which must be due to some CSS subtlety.
In reply to Gustav W Delius

Re: New gradebook for core Moodle

by Michael Penney -
Hi Gustav, this is what I'm getting in firefox now (attached) what verson of ff and what plaform are you seeing problens on?

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.
Attachment grades.gif
In reply to Michael Penney

Re: New gradebook for core Moodle

by Bryan Williams -
That's what I'm seeing in Firefox also. Could stand a little cell padding, but doesn't look bad.
In reply to Michael Penney

Re: New gradebook for core Moodle

by Gustav W Delius -
That is now also what I get if I go straight to the gradebook. But when I then click on "Turn editing on", go to "Set Preferences" and then back to the grades table (without changing any preferences) the page looks as attached. Note the missing table borders.
Attachment grades.gif
In reply to Gustav W Delius

Re: New gradebook for core Moodle

by Werner G. Vavken -
Being fairly new in this ballgame with Moodle, I'd like to offer the following stuggestions for the gradebook:

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".

Werner Vavken
In reply to Werner G. Vavken

Re: New gradebook for core Moodle

by Michael Penney -
Hi Werner,

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.
In reply to Michael Penney

Re: New gradebook for core Moodle

by Werner G. Vavken -
Thanks, Michael. I will have my Moodle server guy (Bryan Williams) load gradebook_cdc and try it out.

Do you think gradebook_cdc will be in Moodle 1.5?

Thanks!

Werner
In reply to Werner G. Vavken

Re: New gradebook for core Moodle

by Michael Penney -
Do you think gradebook_cdc will be in Moodle 1.5?

Yes. big grin
In reply to Michael Penney

Re: New gradebook for core Moodle

by Bryce Thornton -
Is this wishful thinking or are there really plans to include it?

I think it is great.  Thanks for the hard work!
In reply to Bryce Thornton

Re: New gradebook for core Moodle

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
It's in there, but has had a lot of cleaning up from a code point of view (with a fair bit still to do).  But it's in.  smile
In reply to Martin Dougiamas

Re: New gradebook for core Moodle

by Michael Penney -

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 XMLangry), 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.


In reply to Gustav W Delius

Re: New gradebook for core Moodle

by Roel Cantada -
Hi !  I have not fully testdriven the gradebook but it looks good.

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.    
In reply to Roel Cantada

Re: New gradebook for core Moodle

by Joan Codina Filba -
I have some students developing changes for the gradebook and I hope that will be in some extend the ones you ask for. I will tell my students to explain it better