New features for the assignment module

New features for the assignment module

by Matt Gibson -
Number of replies: 10

I'm about to start planning and coding a load of enhancements to the assignment module, which will eventually end up being released into the wild and I need to know if anyone has any input on good ways to achieve them.

This is a project funded by the UK Higher Education Funding council, so it's going to be primarily focused on the needs of UK universities, but I'd like it to be flexible enough that it'll meet the needs of any university in the world. The specific focus is on making a configurable workflow so that Moodle can be used to manage all submitted work for a degree course, which in the UK needs to be assessed in ways which Moodle currently can't handle very well, e.g. anonymous marking, marking by multiple tutors, grades only released to students after moderation in an external system etc.

Naturally, I want to do this in a way that can be added cleanly as a new module or assignment sub-type, but this looks like being difficult given the functionality I need to add, so I may end up with quite a chunky core patch and/or a fork of the assignment module. This idea may help to reduce the amount of core hacking significantly of course, but suggestions on how to make integration/maintenance easier are welcome.

So...

Some questions:

  1. Are there are any current plans for refactoring the core assignment module for 2.1 or beyond?
  2. Who is currently maintaining the assignment module? The forum doesn't have the usual header saying who to contact.
  3. I'm more than happy to work with the core team to make these things available for everyone, so which, if any, of the features below look like good candidates for enhancements to the existing assignment module, rather than a fork or a new subtype?
  4. Any suggestions for the best ways of coding or not coding any of these?

Rough list of features (proper spec to follow)

  • Anonymous assignment marking (possibly via an API that any module could make use of)
  • Multiple markers for each assignment, with automatic aggregation of the component grades and the facility to override the aggregates if needed
  • A single file can be submitted by a group of individuals who will all receive the same marks
  • Restrict publishing of grades to students until approved of by a manager e.g. Department head
  • Allow the institution to force assignment uploads to be stored in a specific repository (security and diskspace cost management)
  • MIS integration (grades export cleanly via webservices etc)
  • Assignments can be flagged as contributing X% of the final unit grade, which then automatically triggers multiple marking
  • An admin interface to manage the workflow of submit->grade->moderate->publish across the entire site as well as constructing the degree transcript at the end.

All comments appreciated smile!

 

 

Average of ratings: -
In reply to Matt Gibson

Re: New features for the assignment module

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

Point 1. Yes, there are plans to completely change assignment, althought I don't think the details exist anywhere outside Petr Skoda's head at the moment.

From disucssions, I think that the basic idea is to completely get rid of the old assignment module and subtypes. This is rather like the way the single monolithic resource module and subtypes in 1.9 was replaced by separate modules page, url, imscp, etc in 2.0.

The point is that now we have the gradebook, File API, etc. Moodle 2.0 is now a sufficiently rich platform that writing a separate activitiy module is actually just as easy as writing an assgnment subtype, and imposes many fewer constraints on what you do.

Note, however, there are some outstanding TODO items on the gradebook API to make this picture really work. All this is probably due to be done for Moodle 2.1, but it is not in the roadmap yet.

 

Now to turn to your bullet points, which I will refer to as a) b) etc.

a) Reasonable idea. The workshop module does this using a capability, so look there for inspiration.

b) & c) This is the kind of instanely complex requirement and workflow that UK universities seem to require. This is the sort of place where you can do it using the flexibility of being a separate activity module, rather than being an assignment subtype.

d) The easy way to do this is to just hide the column in the gradebook until after the manager has approved it. That works for us now at the OU.

e) This is silly. Files stored in Moodle in 2.0 are secure. If they are not, then you are totally screwed anyway. There is probably more sensitive stuff in the file pool than assignment submissions.

f) This is a gradebook feature. You can already do it using the gradebook XML export code and a bit of scripting. We have had that working for a couple of years here at the OU. Of course, it woudl be nice to have a web service API for accessing the gradebook data, but this is really separate from assgnment types. It would be good to make a separate proposal about that.

g) This is a really silly requirement. In my experience it is a bad mistake to hard-code this sort of business rule into the software. If you really need to enforce this sort of thing, just knock up an admin report that lists all assignements worth more than x% of the coures total, and which are not currently double-marked, and make it email someone when something pops up on that list. I bet you will soon hit exceptions where actually it is right to 'break' this rule.

h) i) Managing workflow across the whole site. Again, be careful not to waste time hard-coding volatile business rules at a low level. Helping people monitor what they need to do now is a high-level view-type thing. The best way to handle that in Moodle is to make some blocks or admin reports that provide that view of "thinks that need to be graded now". Then admins can add those blocks in approriate places, which might include the my Moodle page.

h) ii) Generating overall transcripts at the end of a degree. Again this is a separate problem that you might solve with a gradebook report or a block. Or, it may not belong in Moodle at all. The MIS/SIS may already do this.

In reply to Tim Hunt

Re: New features for the assignment module

by Matt Gibson -

Thanks Tim, that's really helpful!

I'm going to have to have a long think about how to do this and then negotiate as much as possible to try to get some sensible requirements.

Some more thoughts:

a) A capability sounds ideal, but I'm not sure how to deal with logging. The student needs proof that they've submitted stuff, but to preserve anonymity, it's important that the tutors can't see the logs until after all grading has finished otherwise they'll be able to match up the latest entries to student names. I could use a temporary log table that gets pushed to the main one later on, or there could be an extra field in the log table so the entries can be flagged as hidden and only those with a site-wide 'view hidden logs' capability can see them. Not sure which would be best, but I think Workshop doesn't have this problem as students can't see logs anyway.

d) Sounds good, but what about the student's view of the assignment itself - can't they just see their marks there even if the gradebook column is hidden? I am thinking of the multiple markers scenario, where there needs to be some sort of face to face agreement of the final grades before the students see them. I suppose I could add a check in the assignment code to see if the gradebook column is hidden (unless it's already there) but would this be a bit messy?

f) Yes, I saw that and thought it was a good place to start except for the need for the moderator to see the component marks supplied by multiple markers as well as the final gradebook mark, which I'll have to make a custom report for. I will have a look at the gradebook export code and webservices code and make a proposal. I imagine it would be good to make it very broad to match lots of MISs and/or standards compliant e.g. SIF.

g) That's a good point, but I may not be able to get around it. I agree that an admin report would probably be best, or even a warning in the assignment setup form.

h) ii) I think the aim is to allow the MIS to see what's going on, which will then treat Moodle as the provisional grades whilst storing final grades and generating transcripts in it's own way. What I'm uncertain about is how best to flag this data. One was for an extension to the assignment module form, another to use the course final grade and make the assignment part of the calculations, which is probably easier. I think you're right that it may best fit a gradebook report.

In reply to Matt Gibson

Re: New features for the assignment module

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) Hmm, you may have to do this by ensuring that when the 'Marker' role is set up, that it has neither the mod/marking:viewhiddenids nor the coursereport/log:view. Certainly, that is one approach.

It depends on what the requirement really is, which could be anywhere on a spectrum from

  • marker probably won't be aware who's work they are currently marking, to
  • there is absolutely no way for the marker to find out who did a particular bit of work, no matter how much time and effort they are prepared to spend trying to find out.

Of course, in the typical exam marking scenario, there is no way to stop a particular marker recognising the handwriting or writing style of a student they are familiar with.

d) This is one of the bits that is not quite right at the moment. The vision is that the master store of all grades (and metadata like whether the students should be able to see them) should be in the gradebook. If a particular activity module wishes to display the grade information, then that should be considered just an alternative view of the gradebook data - and should obey all the same policies.

f) If you are building a separate activity module to handle the submission and grading UI, then there are two ways you could handle this.

  • You activity could create several different columns in the gradebook for each component mark. (My guess is that this is the wrong solution, but it is possible.)
  • The separate component marks should be internal to your Module, and only the final grade is sent to the gradebook. In this case, you can display the information any way you like on different pages within your activity.
In reply to Matt Gibson

Re: New features for the assignment module

by Jon Africa -

I am not sure if this is a good place to bring this up or not, but if there is new current effort being made in the Assignment area I would REALLY like to see a handwritten option here.

I have played with javascript options in the past to collect handwriting - and even some basic recognition. Recognition is less vital here, though. I just think it would be great to be able to create a space on the page where a student could submit a handwritten response - especially for math, but perhaps also for other non-textual information like diagrams or graphs, etc.

This is assuming students are using tablet computers or devices, but I guess it could work with a mouse as well.

I would be willing to help with the process as well.

Thanks,

Jon

In reply to Jon Africa

Re: New features for the assignment module

by Davo Smith -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

This sounds like the sort of development that would make a great 3rd-party plugin, but would be out of place in the core code (especially given that everything in core should continue to work with javascript turned off, albeit with some usability reduction).

In reply to Davo Smith

Re: New features for the assignment module

by Jon Africa -

I guess I didn't realize that javascript turned off was a requirement for core functions.

There could be a way to do it with HTML 5 Canvas features - I don't know enough to know for sure - but I suspect that would not be acceptable for core functionality either.

I am open to working on a 3rd party plugin for that feature, but I am not even quite sure where to begin with that. Any suggestions?

In reply to Matt Gibson

Re: New features for the assignment module

by Davo Smith -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

I'm wondering if this is also the place to bring up the idea of allowing 'deadline extensions'?

It would be great if you could set a deadline for an assignment, with 'prevent late submissions' set to Yes, but then override the deadline on a student-by-student basis (possibly with a space to type in the reason for the extension - 'major illness', 'family bereavement', etc.). The extension (+ reason) could be added as extra fields in the 'assignment_submission' table.

In reply to Matt Gibson

Re: New features for the assignment module

by Sebastian Fuller -

I was wondering if you could update us on your progress. I am the assistant Dean at an overseas university with validation agreements in the UK, and so we follow the QAA guidelines on blind marking and double marking. If this module is up and running we would certainly support it.

Regards,

S

In reply to Sebastian Fuller

Re: New features for the assignment module

by Gordon McLeod -

I'd like to second Sebastian's comment. Our tutors are really starting to see the value of online assignment submission in 1.9x - but are hamstrung by requirements for anonymous (and multiple) marking of summative work. Turnitin was proposed as a solution, but our Registry Dept wouldn't agree as it didn't map perfectly to in-house processes, so we're unable to progress that as an option. I'm desperately hoping it will be available for 2.x by the time we jump in June 2012.

On the tracker it's unclear what the timeline and version are for functionality being available to enable anonymous submission for marking - can anyone clarify?

Recommend anyone who wants this functionality vote for it so the importance is clearly recognised http://tracker.moodle.org/browse/MDL-11968.