AnsweredAssumed Answered

Why should Canvas assume that all questions have a correct answer?

Question asked by Gerald Q. Maguire on Jun 10, 2017
Latest reply on Jun 10, 2017 by Gerald Q. Maguire

I believe that there is a fundamental error in an assumption made in Canvas that all questions of the types:

missing_word, multiple_answers, and multiple_choice must have a correct answer and if they do not, the code turns the first answer into a "correct" answer - even though it is incorrect by using: "@answers.set_correct_if_none"

See app/models/quizzes/quiz_question/answer_parsers/

  • missing_word.rb
  • multiple_answers.rb
  • multiple_choice.rb

 

This is quite a disturbing finding since it means that the system overrides the setting of the answer_weight in the answers.

Response Body

[   {     "id": 17983,     "quiz_id": 2476,     "quiz_group_id": 1393,     "assessment_question_id": 16971,     "position": 1,     "question_name": "Q5",     "question_type": "multiple_answers_question",     "question_text": "<p>The question is xxxxx?</p>",     "points_possible": 1,     "correct_comments": "",     "incorrect_comments": "",     "neutral_comments": "",     "correct_comments_html": "",     "incorrect_comments_html": "",     "neutral_comments_html": "",     "answers": [       {         "id": 8617,         "text": "first incorrect answer",         "comments": "",         "comments_html": "",         "weight": 0      },       {         "id": 8697,         "text": "second incorrect answer",         "comments": "",         "comments_html": "",         "weight": 0      },       {         "id": 3447,         "text": "first correct answer",         "comments": "",         "comments_html": "",         "weight": 100      }    ],     "variables": null,     "formulas": null,     "answer_tolerance": null,     "formula_decimal_places": null,     "matches": null,     "matching_answer_incorrect_matches": null  },   {     "id": 17984,     "quiz_id": 2476,     "quiz_group_id": 1393,     "assessment_question_id": 16972,     "position": 2,     "question_name": "Q6",     "question_type": "multiple_answers_question",     "question_text": "<p>The question is xxxxx?</p>",     "points_possible": 1,     "correct_comments": "",     "incorrect_comments": "",     "neutral_comments": "",     "correct_comments_html": "",     "incorrect_comments_html": "",     "neutral_comments_html": "",     "answers": [       {         "id": 9963,         "text": "first incorrect answer",         "comments": "",         "comments_html": "",         "weight": 100      },       {         "id": 9301,         "text": "second incorrect answer",         "comments": "",         "comments_html": "",         "weight": 0      }    ],     "variables": null,     "formulas": null,     "answer_tolerance": null,     "formula_decimal_places": null,     "matches": null,     "matching_answer_incorrect_matches": null  }]

 

The code that puts these two questions into the quiz is available via https://kth.instructure.com/courses/11/pages/canvas-turns-first-answer-into-the-correct-answer-even-if-it-is-incorrect-when-there-are-not-correct-answers 

The page also includes a zip file of the exported quiz.

Outcomes