Skip to content

Conversation

@Holmgren825
Copy link

Hey!
Will start off by saying thanking you for this great tool, really helpful for us who don't enjoy clicking through the Canvas UI.

I have gone ahead and added two new question types:

> "question1" -> "choice1"
> "question2" -> "choice2"
> _ -> "distractor1"
> _ -> "distractor2"
  • Ordering question
    Syntax example:
~ "Alternative 1"
~ "Alternative 2"
~ "Alternative 3"

Both questions work as an old and a new quiz (by converting during upload to canvas).

Currently, I haven't added the possibility to add feedback to the new questions, since we have used it yet in our courses. But this is definitely something I could add.

Some other smaller changes:

  • I fixed a bug which added the individual points from all questions within a group to the total available points of the quiz.
  • Made it possible to add True/False questions with the alternatives in Swedish (Sant/Falskt).

Happy to hear what you think and open to suggestions for changes.

Added a first implementation of a matching question. Some things are
still work in progress. Specifically, adding feedback to matching
questions is not currently possible.
Added the ordering question type. Uses the tilde to indentify an answer.
Ex:
```
1. Example ordring question.
~ 1975
~ 1985
~ 1995
```

Similar to the matching question, this question currently does not
support adding feedback.
Add a distraction to a matching question using the syntax:
```
> Question 1 -> A valid choice
> Question 2 -> Another valid choice
> _ -> Some distractor
```
Also extracts the tuple to a global variable.
-1 for unilimited, > 0 for limited number of attempts.
Specify if on-screen calculator should be allowed for any question.

Syntax:

```
Quiz title: ...

one question at a time: true % Recommended

Title: Example question title.
Calculator type: basic
1. What is 2*2?
= 4
```

Calculator type could be either `basic` or `scientific`.
@gpoore
Copy link
Owner

gpoore commented Mar 26, 2025

Thanks for working on this! Given the very large size of the diff, it may be some time before I can work through all of this.

I will have to think about syntax a little more, especially for the matching questions. Using quotes may avoid some symbol collisions I had been concerned about in the past, but it may also mean that there needs to be a way to escape quotation marks.

I wouldn't worry too much about adding feedback support...I don't typically use it myself.

Adding support for True/False in additional languages is good. I think it would be good to reorganize this to keep languages separate, instead of using a single tuple with all alternatives. Maybe have a dictionary like {"english": <english True/False>}, etc.

@Holmgren825
Copy link
Author

Thanks for getting back to me! I realize that this PR has grown a bit out of its initial scope, since we keep adding features we find useful. I'm happy to try to split this up into separate features at some point if needed.

Just to clarify about the current syntax for the new questions, the quotes in the example above are not part of the syntax. They are to indicate that this is a placeholder, e.g. "my_username" would be Holmgren825.

To allow for voluntary questions, questions can be assigned 0 points.
Syntax example:
```
1. A categorization question.
< Choice 1 -> Category 1
< Choice 2 -> Category 2
< Choice 3 -> Category 1
< Distractor 1 -> _
< Distractor 2 -> _
```
Note that Canvas doesn't render markup for the choice and category.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Syntax for matching questions

2 participants