Here's the situation:
How could this best be done in Canvas? We are open to free 3rd party tools. At this point, I'm mainly hoping for an answer that's better than it can't be done.
Solved! Go to Solution.
I worked a little on it last night, thinking about adding a button to the page to assign peer reviews, right under the "Assign Peer Reviews" button. Perhaps "Intra-Group Reviews" or "Assign Intra-Group Reviews" with a smaller font.
It turns out there's a small, not insurmountable, issue in my case. The assignment I'm using for peer reviews is not a group assignment. I created a separate assignment for the feedback so that I can use a separate rubric. That means that there is no way to know which group set to use (unless there's only one) and that I need to add a way of selecting the group set to use when assigning peer reviews. Right now, I'm thinking the easiest way will be a dropdown select box before the button to assign the intra-group peer reviews. The button isn't active unless a group set is chosen and if it is a group assignment, then it defaults to the one being used.
When Canvas assigns peer reviews automatically, it does so in the background. This is one of those things where people would need to remain on the page while all of the assignments are made. I don't have any timings yet since I haven't gotten that far, but the way I'm planning it out, someone could come back and run it again and it would pick up where they left off.
It's not ready for release yet, but I just used the userscript I've been writing to automatically assign intragroup peer reviews to my class.
Here's what the interface looks like so far, but I haven't tried to do much styling yet. It gets added beneath the Automatically Assignment of Peer Reviews block.
I haven't attempted to handle pagination from the API, so right now it will fail if you have more than 100 group sets or more than 100 groups within a group set. Ok, it's 10, but I could easily make it 100 just by adding a per_page=100 query parameter, so it would take about 15 seconds to make it work with up to 100 groups and groupsets.
I ended up not going through the API to create the courses. That meant that I would have had to look up the submission IDs for every student and in a large class that could take a while. By calling the non-API call, I'm able to do it just off the user IDs.
It says it will reload the page, but I'm not sure if I want it to do that or not. I thought about adding a progress bar, but with my 30 students in groups of 3-5 students each, it took less than a second to run.
If for some reason it gets interrupted, you can just reload the page and run it again. It only tries to assign peer reviews that don't already exist and it doesn't try to remove any. In other words, if you manually add some, it won't get rid of them. On the other hand, if you have people change groups, it won't remove the peer reviews for the old groups.
I also need to do some additional testing. I wrote it to use the fetch() api rather than jQuery, so it's not dependent upon jQuery being loaded and has a chance of working in Firefox with Greasemonkey (completely untested, so no promises). I also need to test it with a group assignment and in a course with more than one groupset.
I needed this for tomorrow's class, so now I need to work on the rest of the things I put off this week to work on this. I just wanted to update people on the status.
That sounds great! I look forward to its release! It took me an hour or more to assign intra-group review of my 92 students of 4-5 in each group.
No rush. I'm done for this semester and I'll be teaching a smaller graduate class next semester so I guess I'll need it next spring.
Thank you for the effort and I'm sure many instructors will welcome this feature.
In the mean time, here's a video of what is coming. This was done in the test instance of Canvas with a course of 123 students, assigned into a group set with 32 groups and most groups having 4 students, but some having only 3. That's 355 assigned peer reviews in 30 seconds. It paused right at the end between 99% and 100% -- meaning I probably don't have the Promises completely figured out yet
Not shown in the video is another group set in the same class with 12 groups of about 10 people in each. There were 1141 peer reviews assigned and it took about 58 seconds to complete.
It can be interrupted, but it only processes while on the page. If you move off or reload the page before it's done, you can come back and restart it and it picks up where it left off.
I've finished writing and documenting the script I was talking about. It assigns peer reviews to everyone in the same group as each user with the click of a button.
Does anyone have any update on intra-group reviews? We are building a discussion board with 20+ groups for an assignment and 800+ students and it would be VERY helpful to not have to manually sort these groups...