On this day...

Adding Assignment Statuses to the Canvas SpeedGrader

Here's another little script I hammered out for Canvas today.

With the new gradebook, you can set assignment statuses like "late" and "missing." This is helpful in the gradebook for on paper assignments (digital assignments are automatically flagged) but you can only change the status in the gradebook grid.

This is a hacked together script to add the same buttons to the SpeedGrader controls.

https://blog.ohheybrian.com/wp-content/uploads/2019/05/2019-05-29_14-45-39.gif

The easiest way to add this is by adding an extension called Tampermonky. This essentially allows you to run code on websites you don't have access to edit.

After installing the extension, click here to install the script.

Last step: click on the Tampermonkey Icon, choose Dashboard, and then click on SpeedGrader Status. In the editor, update line 14 with your Canvas URL.

Comments

Paul Bui

Hey, I just wanted to thank you for this blog post. I forked your code, fixed a bug, and added modification of the late days.

https://github.com/paulbui/canvas-tweaks/tree/master/speedgrader_status
Brian Bennett

Nice! I always worry a little about sharing these tweaks because of bugs, so I appreciate you sharing the updated code back.

Managing Standards Based Grades in Canvas LMS

I'm trying to make standards-based grading more approachable for my teachers. When I was teaching full time, I held to Frank Noschese's Keep It Simple philosopy. Single standards correlate to single assignments that are scored as pass/fail. Now, I averaged these out on a weighted scale to calculate a 0-100 grade, but that's for another post

Using Canvas, I was able to set up a functional reassessment strategy to aggregate demonstrations of proficiency.

The Learning Mastery Gradebook in Canvas does not translate anything into the traditional gradebook. This mean that every week or so, I would have to open the Mastery report alongside the traditional gradebook and update scores line by line. This was tedious and prone to error.

Using the Canvas API and a simple relational database, I put together a Python web app to do that work for me. The idea is that a single outcome in a Canvas course is linked with a single assignment to be scored as a 1 or 0 (pass/fail) when a mastery threshold is reached.

The app

Users are logged in via their existing Canvas account. There they are shown a list of active courses along with the number of students and how many Essential Standards are currently being assessed (ie, linked to an assignment).

The teacher dashboard

In the Course view, users select which grading category will be used for the standards. Outcomes are pulled in from the course and stored via their ID number. Assignments from the selected group are imported and added to the dropdown menu for each Outcome.

The alignment menu

Users align Outcomes to the Assignment they want to be updated in Canvas when the scores are reconciled. This pulls live from Canvas, so the Outcomes and Assignments must exist prior to importing.

As Assignments are aligned, they're added to the score report table.

Score reporting per assignment

Right now, it defaults to a 1 or 0 (pass/fail) if the Outcome score is greater than or equal to 3 (out of 4). All of the grade data is pulled at runtime - no student information is ever stored in the database. The Outcome/Assignment relationship that was created tells the app which assignment to update for which Outcome.

When scores are updated, the entire table is looped. If an Outcome has risen above a 3, the associated Assignment is toggled to a 1. The same is true for the inverse: if an Outcome falls below a 3, the Assignmet is toggled back to a 0.

I have mixed feelings about dropping a score, but the purpose of this little experiment is to make grade calculations and reconciliation between Outcomes and Assignments much more smooth for the teacher. It requires a user to run (no automatic updates) so grades can always be updated manually by the teacher in Canvas. Associations can also be removed at any time.

As always, the source for the project is on GitHub.

The Big Dig

Our septic system needed to be upgraded, so we took the hottest weekend of the year (so far) to do it. My wife's dad and brother spent the day with me on Saturday digging large trenches to bury leach chambers. We redid all the plumbing. We plowed a new, larger garden and cut down some nuisance trees.

I've also learned about navigating the permitting stages with the health department. Good news is that I'll never need to do this again.

Septic Field Repair

A Short Story of Most Unfortunate Circumstances

We all need time to do things we love. But, time is not always on our side. Neither are the people around us. Henry Bemis lived a life in which he found solace in books, and contempt from everyone around him. In Time Enough at Last, he is given an opportunity to forget the world and live in his books, but the Twilight Zone had other ideas.

I tackled the One Story/Four Icons design assignment to get the juices flowing. I had a lot of great ideas after watching Tim Owens and Jim on the ds106.tv show about design yesterday. One I had known about was The Noun Project, but I had forgotten about it until the show. So, I hopped over there to grab some images and get going.

I started with 5 icons (full disclosure here) and then combined the man’s head with the mustache to make myself a Bemis. So, in the end, I still ended up with four icons (I’m not a cheater.)

A story, decomposed to elements.

A story, decomposed to elements.

To get the broken lens, I simply used the circle selector and chose the space inside the glasses icon. Then, I grew the selection (Selection > Grow) by 3px to grab some of the edge. Then, I used the Transform tool to skew the lens (we’re getting deep here (yes, that is a terrible pun)) to show some depth. Filled in some lines, and you’ve got yourself a cracked lens. This didn’t take me too long, so I decided to beef it up a little and give myself another star in the process.

Rather than a still image, I decided to GIF this into something a little more interesting.

When things go wrong, they really go wrong.

When things go wrong, they really go wrong.

(I played with the timing a lot. I’m happy with what I came up with).

Just like Mr. Bemis, he thought things would turn out one way, only to find that circumstances often get the best of us, no matter how much we plan.

http://bibliophilica.files.wordpress.com/2012/07/20120708-110941.jpg

— CC Attributions —

Person designed by Antonis Makriyannis from The Noun Project

Mustache designed by Fernando Vasconcelos from The Noun Project

Book designed by Diego Naive from The Noun Project

Explosion designed by Bohdan Burmich from The Noun Project

Glasses designed by Thomas Hirter from The Noun Project

On a side note, this episode makes me really, really sad.

3 Design Stars