Teach
with it

Put Azadira problems into a Canvas course. You choose a whole path, a level or single problems; students solve them in the browser, and their grade reaches the Canvas gradebook by itself.
Free for students and instructors. It uses LTI 1.3, the standard Canvas uses for external tools, so a Canvas administrator installs it once for the whole school.
Checking whether this site's server is ready for Canvas…
Once per school · about 10 minutes

For the Canvas administrator

You need the Admin role in Canvas (developer keys are an account setting). Instructors cannot do these steps themselves.

  1. Create a developer key. In Canvas: Admin → Developer Keys → + Developer Key → + LTI Key.
  2. Load the configuration. Choose Method: Enter URL and paste:
    …
    In Redirect URIs enter (Canvas reads this one from the form, not from the configuration):
    …
    Name the key "Azadira" and save.
  3. Switch the key on in the developer key list, and copy its Client ID (the long number in the Details column).
  4. Install the app. Admin → Settings → Apps → View App Configurations → + App, choose Configuration Type: By Client ID, paste the Client ID and install. (Installing in one course instead of the whole account works the same way, under that course's Settings.)
  5. Copy the Deployment ID: in the app list, open the app's gear menu and choose Deployment Id.
  6. Send both numbers to the people who run this Azadira site, with your school's Canvas address. They register your school, and from then on every course can use it. (Your Canvas has to be known to this server before the first launch, so this step cannot be skipped yet.)
What the tool asks Canvas for, and why
  • Placements: assignment selection and link selection, so instructors pick problems when they add an assignment or a module item.
  • Privacy level "public": the student's name, so the instructor's class table can show who solved what, and Canvas's user id, so grades go to the right person. No email addresses.
  • Grades (Assignment and Grade Services): permission to create the assignment's grade column and to post scores to it.
Each assignment · about 2 minutes

For instructors

  1. Add a graded assignment: Assignments → + Assignment, set Submission type: External Tool, click Find and choose Azadira problems.
  2. Choose what to assign in the window that opens:
    • a whole path (its required problems, the ones each level's lesson teaches),
    • one level's core set, or
    • single problems, found by title, level or difficulty.
    Give it a title, tick "open in a new tab" if you like, and choose Add to course. Then save the assignment and set its points: Canvas scales Azadira's 0 to 100 score to them.
  3. Or add it to a module: Modules → + → External Tool → Azadira problems. It becomes a graded item.
  4. Follow the class: open the assignment yourself to see the problem list and a class progress table: each student who has opened it, what they solved and when, and their score. Your own solves are never graded.
  5. Change the selection later by editing the assignment's external tool settings and choosing again. Students see the new list on their next launch.

Grading: score = 100 × solved problems ÷ assigned problems. The grade updates in Canvas a few seconds after each solve, and an assignment counts as complete when every problem is solved.

Nothing to install

For students

They open the assignment in Canvas and see its problems with a Next problem button. Each problem opens in the normal Azadira editor, the code runs in their own browser, and after a solve their grade appears in Canvas within seconds. Problems they already solved earlier in the same browser count. A session lasts eight hours; after that they open the assignment from Canvas again.

Good to know

Is it really free?
Yes, for students and instructors. Running the code costs nothing on our side, because every program runs in the student's browser.
What is stored about students?
Canvas's user id, the display name, the course and assignment, which problems were solved and when, and the score. No email addresses, no passwords and no code.
Can a student fake a solve?
The code is checked in the student's browser, so a determined student could report a solve by hand (only their own, and every solve is logged with its time). That suits practice and formative grading. For exams, use a Multi-player board in a supervised session: there, the leader's browser re-checks every solve.
Accessibility
Azadira is built to WCAG 2.1 AA: keyboard use throughout, screen-reader labels, reduced motion, adjustable text size and colour themes, and private extra time for students who need it in Multi-player.
Does it work outside Canvas?
It uses the LTI 1.3 standard, so other platforms that support LTI Advantage (Moodle, Blackboard, D2L Brightspace) should work too; it has been tested against a simulated Canvas. Tell us if you try one.
Running your own copy of Azadira?
The server setup (keys, environment variables, registering a school) is described in docs/LTI.md.