Provide a CSV format for scoring rubric-based problems

0 Likes
(1)

Currently, one can upload scores for all students on an assignment using a CSV (comma separated text) format.    In this format, the total score for the assignment is specified for each student.

This doesn't work for assignments that have problems graded by rubrics.   For these assignments, you need to specify the score of each individual problem, not just the total of those scores.

The CSV format could be extended to allow one to specify the score on each problem within an assignment.   Then Canvas could use that data to fill in the grade book entries correctly.

4 Comments
ctitmus
Instructure Alumni
Instructure Alumni
Status changed to: Open
 
AbhishekP
Community Member

@ctitmusany update on this 😁?

James
Community Champion

Here is some clarification to the original idea and my thoughts about what would be required to make it happen.

You can upload the final score for assignments that are graded using a rubric without completing the rubric itself. As with the web interface, even if you mark "Use rubric for grading", you can still go into the gradebook and put in a score without completing the rubric. What "use rubric for grading" does is say "if you complete the rubric, then transfer the score to the gradebook." It does not prevent you from manually changing the score after completing the rubric (although the rubric will contain the originals ratings -- more on that later).

What does not work through the gradebook is uploading individual values into the rubric. 

The ability to update individual rubric scores is available through the Submissions API when you grade or comment on a submission. This is one submission at a time; the grade or comment on multiple submissions does not list support for updating the rubric.

I emphasize list because sometimes Canvas does things that aren't documented. Their documentation is written to be "If A happens, then B will happen." If the documentation doesn't mention C, then "If C happens" it is unclear what will happen. Canvas may throw an error, ignore it, or actually do something with it.

When you view the documentation for grade or comment on multiple submissions doesn't show rubric support, but when you follow the source code, there is a line that specifically mentions rubric_assessment. I have not tested it to see whether it supports it or not, or what format is needed.

Whether one student at a time or with the bulk update, Canvas provides the facilities needed to update a rubric. It is currently up to the user to figure out how to get that into Canvas through the API. That is technical in nature and beyond the capability of most people doing grading.

Canvas does not support direct import of a CSV for rubrics. It does for the gradebook, but there is a lot of complexity there that it does behind the scenes. You need IDs for the assignments and the students so that it can match the information. When you download all of the submissions for an assignment, Canvas names the files with the student ID and the submission ID so that it can determine the association when it imports the results back.

Think about what that needs for a rubric import to happen. The person creating the rubric would need the ID for the criteria and either the ID for the rating within the criteria, the text of the rating, or the points allocated to the rating.

This could happen with a CSV import if each student was a row and each criteria was a column and you entered the rating in the cells.

But that's not flexible. You don't want to import a rubric just for grading. Well, you might want to, but other people don't grade based off rubrics but they still want to fill in the rubric based off of a spreadsheet. Other people want pointless rubrics (rubrics without points) and others want ranges. In other words, you may need to supply multiple items or have Canvas guess about which one it is that you're supplying. If your input is text then you need to include the title (the whole title and not misspell anything or put extra spaces in it), if it's a number then you are giving the points, and if its a rating ID (typically a combination of text and number). Except that my titles might be "1", "2", "3", and "4" and those are worth 5, 3, 1, and 0 points. If my input is a 3, where does that go?

When people use the API to submit the rubric, it is an update operation, which only changes the information you provide. In a spreadsheet, you would only be able to provide one of the values, which means that the others could get out of sync. There was someone asking a week ago about updating rubrics who updated the rating but the score didn't automatically adjust. So if you change the score, it doesn't automatically update the rating, just like changing the score for the assignment doesn't touch the values within the rubric.

None of that includes text comments for the individual criteria or for the overall submission. The text comments would need another column in the table so that there are now two columns for each criteria.

For very specific cases, someone could write code that would do this. If you agreed that you were only ever going to enter scores in the spreadsheet and never add any extra comments, then someone could write a program that would download a template for you to complete. This includes the student's name and IDs and the criteria. Then you could go through and enter the points and upload it back to their program that would then convert it into the format that Canvas needed to process it.

If you decided that you didn't want to enter points, you wanted to enter positions 1=first item, 2=second item, etc., then you could do the same thing, but it would be a different code base. Much of it would be shared with the first.

Someone might ask for some checkboxes so that we set up the export / import the way that we want it. If someone doesn't remember to set the checkboxes exactly the same way, then the rubric import gets messed up and it's a harder headache to fix than it would have been to use SpeedGrader in the first place. A design principle for Canvas has been to make it "just work" without lots of options that people have to set.

There are some legitimate cases for taking a rubric that already exists somewhere else and bringing it into Canvas.

Often these rubrics come from external tools that were used to gather them and the people that wrote the tools are programmers, so they have the ability to write the code to get it into Canvas.

I have some assignments that I grade by pasting the student responses into a spreadsheet and then it compares the student's answers to the correct answers and provides feedback that I can copy/paste into the submission comment box. I generally don't use the comments within the rubrics as my students aren't trained to look for those and many even have trouble finding the rubrics at first (so they write me emails about why they got the grade they got when it was explained in the rubric). My assignments like this don't come in all at once, so it's quicker for me to handle it one student at a time through SpeedGrader than to try and import the rubrics back into Canvas. Even though I don't send the rubrics back to Canvas, I have the programming skills needed to do so if I desired.

That leaves the people without programming skills. Canvas caters to the middle 60% of the users and designs their program for those people. High end and low end users sometimes don't get what they desire built into Canvas. Math and science teachers have had to suffer through deficient quizzes because we need more than Canvas can do. But from Canvas' perspective, it isn't wise to add every possible feature that you could. That increases code bloat, makes support harder, and makes the interface more complex.

I don't work for Instructure or their product Canvas, but I cannot see this ever happening in their base product. If it is something that you must have, then writing (or contracting with someone to write) the narrowly-tailored code that you need to make it happen is what will happen. There is room for it as an external tool from a third party provider, but I don't think Canvas will do it themselves.

ProductPanda
Instructure
Instructure
Status changed to: Archived
Comments from Instructure

As part of the new Ideas & Themes process, all ideas in Idea Conversations were reviewed by the Product Team. Any Idea that was associated with an identified theme was moved to the new Idea & Themes space. Any Idea that was not part of the move is being marked as Archived. This will preserve the history of the conversations while also letting Community members know that Instructure will not explore the request at this time.