Make Speed Grader Load Faster

0 Likes
(5)

My experience with SpeedGrader (as an instructor) is that moving from one student to the next is EXTREMELY slow. I am often grading 300+ quizzes at a time and grading by question to maintain consistency. Each time I grade a question it can take 4-5 seconds for the page to update after clicking the "Update" button to save the score changes and another 7-8 seconds to load when I click to the next student. This 11-13 seconds adds up to an hour of wasted time if I am grading 300 quizzes---and that is 1 hour per question. Generally I have to grade more than one question, so this is multiple hours wasted. And this doesn't account for the time spent scrolling up and down the page just to get to the "Update" button.

I wonder if it would be possible to have the browser download or cache the files for the next 5 or so students in the grading order each time a student's page is entered so that the page for the next student is being prepared while I am working on grading the current student.

14 Comments
Stef_retired
Instructure Alumni
Instructure Alumni
Status changed to: Moderating

@jvwowd 

Thanks for sharing this idea. We have two questions:

  • Are you experiencing this when grading Classic (Old) or New Quizzes? 
  • Have you already contacted Canvas Support, or the support team provided by your school, to have them investigate this? If you have, would you please provide the case number for the support interaction, and if you haven't, would you please do that and update this conversation with the results when that's complete? General directions for contacting support are in How do I get help with Canvas as an instructor?, but your school may have provided its own pathway to support, so please follow that.

Thanks again.

Stef_retired
Instructure Alumni
Instructure Alumni
Status changed to: Archived
 
paulbui
Community Member

Within the Speedgrader, assignment submissions are only fetched at the moment the student is brought up, and the content is not cached either. There is a lot of waiting and latency when just bringing up a student's submission.

I suggest pre-fetching student submissions, so that the grader does not have to wait every time they bring up a new student.

Additionally, I suggest caching the content that was pulled so that a new request for the submission's content is not submitted every time a student is brought up.

paulbui
Community Member

If the status of this conversation is archived, does that mean that there's no way for these changes to be implemented?

Stef_retired
Instructure Alumni
Instructure Alumni
Status changed to: Open
 
Stef_retired
Instructure Alumni
Instructure Alumni

@paulbui Thanks for catching that. We've changed the status to Open for Conversation.

jmsmit49
Community Participant

@paulbui Can you elaborate on how you pre-fetch student submissions to speed up the speed grader? 

victor_powell
Community Member

I interpret @paulbui 's comment as a suggestion for Canvas implementation.

paulbui
Community Member

@jmsmit49 So the most common optimization for a user interface that is implemented in the backend/background is that if there is a common "next" resource that is going to be fetched by the user's interface/browser, then it is actually pre-fetched before the user actually chooses to get it. When something is pre-fetched, it is stored locally in cache, which allows the resource to be brought up instantly rather than having to wait for the request-response protocol that would typically happen when a user selects something.

So when we use the Speedgrader, you'll notice that it takes a few seconds for the assignment to come up in the window, so there's is this noticeable wait time because the browser has to request that assignment submission and have the server respond to it, which it can then render on the page. The most common use case is for the grader to grade an assignment and then proceed onto the next assignment, but if this is so commonly done, then it would make sense for Canvas to pre-fetch the next several assignments so that the grader does not have to wait for the window to request and render it

davidrcrockett
Community Explorer

I open up two instances of speedgrader one on each monitor of my dual monitor setup. 2nd monitor I start from the bottom of the class. After I grade one, I either go forward or backwards depending on the monitor. While the new assignment loads, I am already grading the 2nd assignment on the other assignment. Rinse and repeat.

James
Community Champion

Nifty trick @davidrcrockett for those who have two monitors. I've used the two monitor trick when I have student turn in assignments they worked together in a team. That way I can duplicate comments and scores from one to another.

For those who don't have two monitors there are other tricks you can play. I've done the same thing with multiple tabs on a single browser. I use it for editing assignments -- I open all the assignments for a chapter by pressing Ctrl when I click on the link -- then I go through each one and click Edit -- then I go through and edit each one and save it. For SpeedGrader, you could open multiple tabs with SpeedGrader and set them to different locations. If I do two tabs, then I would put one at the start and one about 50% of the way through. Then I can always just click Next student rather than having to remember which direction I was supposed to be going on that tab. If I opened 4 tabs, then I would set them at the start, roughly 25%, 50%, and 75% of the way through. Then rotating through the tabs would be part of the process of grading. The problem is remembering where you started on the additional tabs so you don't grade things you've already graded.

Another way to speed up the initial loading of SpeedGrader and handle the multiple sessions is to filter by section. If you have sections, you can load SpeedGrader once for each section and then you don't have to worry about re-grading a student because the lists are distinct.

Things that will speed it up but you probably cannot control are getting a faster internet connection and having fewer questions in a quiz.

There definitely is some room for improvement in SpeedGrader and there have been feature ideas for this before. One of those was to show just the question that is being graded rather than the entire quiz and jumping to the question being graded. Loading one question won't take as long as loading all of them, but then it makes it harder to adjust the overall quiz score since you don't have the whole thing in front of you.

Another feature idea was to take that one question and show just that question for all students. That would not work within the SpeedGrader framework. Canvas could write an alternative version of SpeedGrader just for quizzes that showed each student's question for a single response and then when you clicked in something on the left side, it automatically changed the rubric view on the right side to be for that student. I'm not sure that would pass accessibility requirements, though.

The one-question-at-a-time thing is a issue with the quizzes more than SpeedGrader itself. Since Canvas has announced the phase out of Classic Quizzes and the lack of development for them and grading by question has been marked as "beta" as long as I can remember, I don't think they'll improve this anytime soon.

meisner
Community Explorer

I too use double monitors to reduce the wait time for assignments to load - that seems like a ridiculous expectation. Documents (pdf, jpg, doc, etc.) need to load faster. Also, the double monitor 'trick' isn't possible when on the road and using an iPad. The slow loading on an iPad is awful.

davidrcrockett
Community Explorer

I've given up on the ipad app, just takes too long to load anything... 

KristinL
Community Team
Community Team
Status changed to: Archived

Thank you for sharing this idea with the Instructure Community!

The Product Team reviewed all feature proposals recently, and unfortunately, this thread was identified as one that they would not be able to include in their current or future plans. While we appreciate your proposal, we also want to be transparent about the likelihood of something like this making it to production.

Thank you for collaborating, and we hope that you submit another idea in the future!