[Assignments] weighting in assignment groups

It seems this has been a reoccurring request for some time now, but is not generating the votes needed to get attention. Perhaps it is time to try again!

 

Canvas would benefit greatly from being able to allocate a weighting to individual assignments within an assignment group. At present, rather than an overarching "Geography" assignment group for HASS, I have to put each individual assignment in their own group to distribute task weighting for the course. HASS also covers economics, politics and history - that makes for A LOT of assignment groups to break up the weighting for tasks.

 

In my view, it would be much simpler to have the Assignment Group that aligns with the unit or module being taught and has a weighting for the overall course, and an individual assignment weighting function within the group without having to fiddle around with the points. I think most teachers would agree that there is enough of a workload without adjusting and readjusting points to weight assignments according to their worth. I for one wold love to be able to do this with a quick click of a button instead of laboriously pouring over numbers.

 

Please vote up on this - it is clear that many people are asking for this function in many different ways.

Gradebook: weigh assignment within assignment group

"Lock Grade" option in Gradebook

Weighting Assignments

105 Comments
maguire
Community Champion

Thanks  @scottdennis , It seems that there should be a mechanism for plugging in an external program to compute grades based upon gradebook entries - rather than requiring the teacher to export to a spreadsheet, manipulate, and import from a spreadsheet. Some of my colleagues would like a "recalculate" button in the grade book. (They have been using another system for the last decade that could do this and they do not like the fact that Canvas cannot provide this functionality.) So far I am able to migrate all the stored grades to Canvas, but am trying to figure out how to go forward:

1. statically compute everything based on the grades already entered - but offer no functionality to do calculations in the future;

2. export to a spreadsheet (but generating code that will do the bulk of the computations in the spreadsheet) and then import the updated spread sheet;

3. try to make some code that uses the Canvas API to access the gradebook (and the equations that I am storing as JSON "comments" in the description for each assignment), or

4. see if there is another method - such as one that could use an LTI interface to an external LTI tool that could calculate updates to the gradebook. [I think that there is some standardization work that is taking place in this area, but have not seen the resulting standard]

To make things more exciting this previous record keeping system has the ability to not only keep and compute grades similar to assignment groups, but recursively can apply this to (sub)assignments within the equivalent of an assignment group. There is a reasonably rich grammar for defining how to compute the grades (http://www.csc.kth.se/~serafim/rapp/rapp-sv/XE-formler.html  [in Swedish]). There are some courses with more than 44 subassignments and almost 40K different students have grades for some part of several thousand courses. Unfortunately, for all of the students who have not completed a given complete course there is a need to import the grades for what they have completed and help the teacher and student understand what the student yet needs to complete in order to be able to get a grade for the equivalent of an assignment group or for the whole course.

scottdennis
Instructure
Instructure

Hey Gerald,

This is me not speaking on behalf of Instructure but just as a casual observer; it seems like providing a simple gradebook that works for most people that don't need or want to do more complicated calculations with a way for the people who DO to access their data and use other tools is in keeping with the original design philosophy for Canvas.  That being said, I do not mean that the ability to download .CSV files obviates this feature idea.  I did some checking and I am not 100% sure but I believe people had done things with the API like what you are wondering about.  This made me think of all the Canvancements - Canvas Enhancements‌ that the famous and all powerful James Jones has shared over the years.

maguire
Community Champion

 @scottdennis  , I understand the need for the 80% (or in the case of Instructure perhaps the 60%) solution as this is an important balance between functionality, cost, maintainability, usability, and complexity. I also understand that some of my colleagues have perhaps gone well beyond the point of what is really necessary Smiley Wink.  However, I do not think that the approach of exporting, manipulating as a spreadsheet, and re-importing is a responsible path.

I understand the need for a simple to use gradebook. However, I also can say that the lack of scrolling custom columns is a major problem. Yes, perhaps I have abused them - but their use will hopefully eliminate a lot unnecessary paperwork for students, faculty, and administrators - especially with regard to degree projects. For an example, of what can be done see the bachelor's thesis by Shiva Besharat Pour and Qi Li, "Connecting Silos: Automation system for thesis processing in Canvas and DiVA", Connecting Silos : Automation system for thesis processing in Canvas and DiVA 

I'm aware of  @James  's Canvancements. However, given GDPR, I'm a little wary of going in this direction. [For example, we currently have to write a written request to get any LTI  application approved for use - as the administration is so concerned about GDPR. I've been waiting more than a month to get approval for something that would just work on my own content pages. I expect I will have to wait until late August to get this approved - if even then.] [We have locally had an export of the gradebook in beta for nearly a year - since both the developers of it and I had observed anomalous  behavior where not all the students' results were being returned. The correct number of results were returned, but some of them were repeats of earlier students, while some students' results were not reported.(Instructure has tried to look into this.)]  

I've been trying to contribute with the things that I have been exploring thus far, such as Migrating grades from one Canvas course to another  , Adding users and setting their status to inactive or reactivating them  , Administrative assignments associated with a student  , Searching for users  . Removing users and assignments via the API , Grading Standards API missing delete operation , Adding a new grading standard , ... . My concern that the current API based solution is not the appropriate way and that a better way is to really have a different interface that can really provide the whole gradebook and then get a set of updates in response (either via an LTI like interface or as a new API). A true one button "recalculate" solution that can support even extremely complex grade computations (if someone can implement them) is desirable if it does have the functionality, usability, and perhaps even the maintainability, complexity, and cost that can be supported. These updates can even be appropriately logged to support FERPA, GDPR, etc.

I think that from the discussion it is clear that assignment groups and trivial rules (drop lowest N, keep M) are a step forward, but not sufficiently far enough. My question remains as to what is the most constructive direction to move forward to support external calculation of grades in a way that could satisfy the expressed needs for more complex grading and would fit with Instructure's Canvas design philosophy.

david_ross
Community Novice

What in the sam hill are LTI, GDPR and API?

David A. Ross

Associate Chair

ESL/Intensive English

Houston Community College

713-718-7752

scottdennis
Instructure
Instructure

Hey Gerald,

That is interesting (and no doubt frustrating) about the GDPR effect on using LTIs.  I hadn't thought about that.

I agree that the gradebook could still be improved in many ways - not arguing against that at all.   Again, speaking for myself and not for Instructure; I remember another LMS I was an admin for long ago that had a simple gradebook and then for those who wanted to open the door there was a more powerful/complicated option.

After I posted earlier today, one of the inquiries I had made about this came back.  Long and short of it is they do not recommend pursuing an API option to pull data from the gradebook, manipulate it and then send it back in.  Sorry if I got your hopes up there.

 @david_ross  - Sorry for the jargon!  Learning Tools Interoperabilityapplication programming interface, and General Data Protection Regulation respectively.  The first two are technology responses to the need to send data back and forth between systems.  The last is a European regulation that limits what you can do with someone's personal data without their consent (or so I understand it to be).

david_ross
Community Novice

Thanks for the quick illumination, Scott!

David A. Ross

Associate Chair

ESL/Intensive English

Houston Community College

713-718-7752

maguire
Community Champion

 @scottdennis  , given that you said that someone does not recommend using the API pulling grades and then inserting updates - what do they recommend?

scottdennis
Instructure
Instructure

Hey Gerald,

Working with existing functionality, the best option that I know of is to download the CSV, manipulate it, and re-upload.  Sorry I don't have a better response to give.

maguire
Community Champion

Dear  @scottdennis  ,

An export via the API so that the instructor could have the grading formulas automatically included in the spreadsheet seems much better. This will greatly reduce the work that the instructor must do. Since the operations are simply to compute new values in cells (that are generally never filled out by an instructor) from cells that the instructor has entered via the gradebook - it seems silly to be going the route of export CSV, manipulate, and import from CSV. Or is there something magic about the CSV exports and imports?

scottdennis
Instructure
Instructure

Noo, not that I'm aware of, Gerald.  The person I spoke with (a customer who experimented with the API route) just said the options simply there for doing this via the API - that's all I know.