Moodle
  1. Moodle
  2. MDL-7706

Lesson Grades incorrect when user does not complete lesson

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.5.4
    • Fix Version/s: 2.0.10
    • Component/s: Lesson
    • Labels:
      None
    • Affected Branches:
      MOODLE_15_STABLE
    • Fixed Branches:
      MOODLE_20_STABLE
    • Rank:
      295

      Description

      When a student does not complete a lesson their grade is improperly calculated.

      If a lesson is worth 10 points and the student only answers 6 questions of those 10 and only 5 of the 6 are correct they receive 5/6 * 10 or 8.3 points rather than 5 points.

      A potentially bad problem would be on a 100 question lesson if the student knows they answered the first question correctly they could stop taking the lesson and receive 100/100 rather than 1/100!

      All the examples I've seen are due to lesson time limit being reached, not sure if this is an issue for non-timed lessons as well.

        Activity

        Hide
        Mark Nielsen added a comment -

        Workaround:

        1. Turn "Custom Scoring" Off
        2. Set "Minimum number of questions" to the number of questions a student should answer

        This way if a student ends the lesson prematurely, their correct answers is divided by the "Minimum number of questions" instead of the number of questions viewed.

        Reason why this does not work for "Custom Scoring" On is because one cannot assume the point value of the questions that were never answered. With "Custom Scoring" Off, each question is essentially worth one point each, but with it On, any question can be worth any point value. So, dividing the points earned by "Minimum number of questions" would not make since because that would assume that all the questions have a max score of 1.

        Only solution that comes to mind is to make "Required" questions. These "Required" questions should be answered and are always used in the calculation of the final grade. This would be a rather large change though :\

        Show
        Mark Nielsen added a comment - Workaround: 1. Turn "Custom Scoring" Off 2. Set "Minimum number of questions" to the number of questions a student should answer This way if a student ends the lesson prematurely, their correct answers is divided by the "Minimum number of questions" instead of the number of questions viewed. Reason why this does not work for "Custom Scoring" On is because one cannot assume the point value of the questions that were never answered. With "Custom Scoring" Off, each question is essentially worth one point each, but with it On, any question can be worth any point value. So, dividing the points earned by "Minimum number of questions" would not make since because that would assume that all the questions have a max score of 1. Only solution that comes to mind is to make "Required" questions. These "Required" questions should be answered and are always used in the calculation of the final grade. This would be a rather large change though :\
        Hide
        Mark Nielsen added a comment -

        Another way to re-produce this is to answer the first question, then change the URL to mod/lesson/view.php?id=X&pageid=-9 where X is the course_module ID of the Lesson (easy to find). Sends you to the end of the lesson and grades it. Big problem if a student finds out and the teacher does not check their attempt in Lesson reports.

        Show
        Mark Nielsen added a comment - Another way to re-produce this is to answer the first question, then change the URL to mod/lesson/view.php?id=X&pageid=-9 where X is the course_module ID of the Lesson (easy to find). Sends you to the end of the lesson and grades it. Big problem if a student finds out and the teacher does not check their attempt in Lesson reports.
        Hide
        Michael Penney added a comment -

        I think that when custom scoring is used, the points earned should be matched against the total points directly. So in the example situation, if the student answers 5 1 point questions on a 10 point lesson, they should get 5/10. If one of the questions they answer correctly is worth 5 points, they should get 9/10 (4x1 + 5)/10.

        If the get kicked out of the lesson due to the timer being up after they have earned 5 points (by answering what ever range of questions correctly) they should get 5/10.

        Since attempts (on a question) are currently assigned the last score (if attempts are =3 I can get full credit for the question on the last attempt), this should work for custom scoring fine: if a student has 3 pts when they are kicked out of a lesson due to the time being up, they should get 3/10 for a grade, not 10/10 as it currently (reproduced in 1.6 just now) sits.

        Long run I think we should strive to comply with IMS QTI (perhaps Jeff and/or Gustav could help with the definition for "an integer with single cardinality." used by IMS?->
        http://www.imsglobal.org/question/qtiv2p1pd2/imsqti_infov2p1pd2.html#element10578

        Show
        Michael Penney added a comment - I think that when custom scoring is used, the points earned should be matched against the total points directly. So in the example situation, if the student answers 5 1 point questions on a 10 point lesson, they should get 5/10. If one of the questions they answer correctly is worth 5 points, they should get 9/10 (4x1 + 5)/10. If the get kicked out of the lesson due to the timer being up after they have earned 5 points (by answering what ever range of questions correctly) they should get 5/10. Since attempts (on a question) are currently assigned the last score (if attempts are =3 I can get full credit for the question on the last attempt), this should work for custom scoring fine: if a student has 3 pts when they are kicked out of a lesson due to the time being up, they should get 3/10 for a grade, not 10/10 as it currently (reproduced in 1.6 just now) sits. Long run I think we should strive to comply with IMS QTI (perhaps Jeff and/or Gustav could help with the definition for "an integer with single cardinality." used by IMS?-> http://www.imsglobal.org/question/qtiv2p1pd2/imsqti_infov2p1pd2.html#element10578
        Hide
        Mark Nielsen added a comment -

        Only problem with Michael's proposed solution is that old lesson's could easily break. For example: a large lesson with 30 questions that has max grade set to 10. The student would only have to get 10 out of the 30 questions correct to get 100% if each question was worth 1 point.

        Also, this is somewhat a burden on the creator because s/he would have to add up all the points in the lesson to set max grade to the appropriate number.

        Show
        Mark Nielsen added a comment - Only problem with Michael's proposed solution is that old lesson's could easily break. For example: a large lesson with 30 questions that has max grade set to 10. The student would only have to get 10 out of the 30 questions correct to get 100% if each question was worth 1 point. Also, this is somewhat a burden on the creator because s/he would have to add up all the points in the lesson to set max grade to the appropriate number.
        Hide
        Martin Dougiamas added a comment -

        Reassigning this to moodle.com for the time being, since Mark Nielsen is not maintaining Lesson any more. Please comment/vote/patch any crucial bugs that affect you for 2.0 to help us prioritise fixes for the upcoming release.

        Show
        Martin Dougiamas added a comment - Reassigning this to moodle.com for the time being, since Mark Nielsen is not maintaining Lesson any more. Please comment/vote/patch any crucial bugs that affect you for 2.0 to help us prioritise fixes for the upcoming release.
        Hide
        Michael de Raadt added a comment -

        Thanks for reporting this issue.

        We have detected that this issue has been inactive for over a year. It was reported as affecting versions that are no longer supported.

        If you believe that this issue is still relevant to current versions (2.5 and beyond), please comment on the issue. Issues left inactive for a further month will be closed.

        Michael d.

        TW9vZGxlDQo=

        Show
        Michael de Raadt added a comment - Thanks for reporting this issue. We have detected that this issue has been inactive for over a year. It was reported as affecting versions that are no longer supported. If you believe that this issue is still relevant to current versions (2.5 and beyond), please comment on the issue. Issues left inactive for a further month will be closed. Michael d. TW9vZGxlDQo=
        Hide
        Michael de Raadt added a comment -

        I'm closing this issue as it has been inactive for over a year has been recorded as affecting versions that are no longer supported.

        This is being done as part of a bulk annual clean-up of issues.

        If you still believe this is an issue in supported versions, please create a new issue.

        Show
        Michael de Raadt added a comment - I'm closing this issue as it has been inactive for over a year has been recorded as affecting versions that are no longer supported. This is being done as part of a bulk annual clean-up of issues. If you still believe this is an issue in supported versions, please create a new issue.

          People

          • Votes:
            2 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: