Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-59786

Strengthen "Students at risk of dropping out" requirements to accept courses and student enrolments

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 3.4
    • Fix Version/s: 3.4
    • Component/s: Analytics
    • Labels:
    • Testing Instructions:
      Hide

      Enable debugging if it is not yet enabled.

      1. Install a new site
      2. Hack lib/classes/analytics/target/course_dropout.php and add a return true after the following comment // Not a valid target for training if there are not enough course accesses.
      3. Create 2 courses so they are setup this way (note these courses ids):
        • both using topics or weeks format
        • course1 with a start date in 2013 and end date in 2015
        • Enrol 1 students in course1
        • course2 with a start date in June 2014 and end date in April 2015
        • Enrol 3 students in course2 (note you will need to enrol them and later update enrolment start and end)
          • One with timeend back in January 2014
          • One with timestart in March 2014
          • One with timestart in March 2013
      4. In CLI: php admin/tool/analytics/cli/enable_model.php --modelid=1 --timesplitting="\core\analytics\time_splitting\quarters"
      5. In CLI: php admin/tool/task/cli/schedule_task.php --execute=\\tool_analytics\\task
        train_models
      6. You SHOULD see something like Analysable $ID is not valid for this target: The course is too long where $ID is course1 id
      7. Query the DB for select * from mdl_analytics_train_samples
      8. A single record SHOULD be returned and sampleids field should contain something like " {"3":3}

        " (where 3 is an integer, note it is an associative array json encoded, the important point is that it should only contain 1 element)

      9. Enrol 2 more students to course2
        • One with timestart today
        • One with timestart in January 2015
      10. In CLI: php admin/tool/task/cli/schedule_task.php --execute=\\tool_analytics\\task
        train_models
      11. Query the DB for select * from mdl_analytics_train_samples again
      12. A new record SHOULD have been created (2 in total) and sampleids field should contain something like " {"6":6}

        " (where 6 is an integer, note it is an associative array json encoded, the important point is that it should only contain 1 element)

      Show
      Enable debugging if it is not yet enabled. Install a new site Hack lib/classes/analytics/target/course_dropout.php and add a return true after the following comment // Not a valid target for training if there are not enough course accesses. Create 2 courses so they are setup this way (note these courses ids): both using topics or weeks format course1 with a start date in 2013 and end date in 2015 Enrol 1 students in course1 course2 with a start date in June 2014 and end date in April 2015 Enrol 3 students in course2 (note you will need to enrol them and later update enrolment start and end) One with timeend back in January 2014 One with timestart in March 2014 One with timestart in March 2013 In CLI: php admin/tool/analytics/cli/enable_model.php --modelid=1 --timesplitting="\core\analytics\time_splitting\quarters" In CLI: php admin/tool/task/cli/schedule_task.php --execute=\\tool_analytics\\task train_models You SHOULD see something like Analysable $ID is not valid for this target: The course is too long where $ID is course1 id Query the DB for select * from mdl_analytics_train_samples A single record SHOULD be returned and sampleids field should contain something like " {"3":3} " (where 3 is an integer, note it is an associative array json encoded, the important point is that it should only contain 1 element) Enrol 2 more students to course2 One with timestart today One with timestart in January 2015 In CLI: php admin/tool/task/cli/schedule_task.php --execute=\\tool_analytics\\task train_models Query the DB for select * from mdl_analytics_train_samples again A new record SHOULD have been created (2 in total) and sampleids field should contain something like " {"6":6} " (where 6 is an integer, note it is an associative array json encoded, the important point is that it should only contain 1 element)
    • Affected Branches:
      MOODLE_34_STABLE
    • Fixed Branches:
      MOODLE_34_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-59786_master

      Description

      course_dropout target should change is_valid_sample definition to exclude user_enrolments with $ue->timeend < $analysable->get_start()

      tip: retrieve() can be used to retrieve the sample user_enrolment data.

      I've updated the issue's name, the original one was "Students at risk of dropping out should ignore enrolments which timeend is less than the course start"

      Some sites are reusing courses without removing previous users, these users would be used for training and would get predictions if we don't exclude them. It is not a massive problem because people don't usually access previous years material, and even if they do their calculations would be close to the lower score which should lead to drop out predictions.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  13/Nov/17