Learning Analytics

A learning analytics block to identify students at risk of disengaging with their studies – $50k, NetSpot Innovation Fund, 2012.

What can Moodle/BlackBoard/etc tell us about student success? Student persistence and achievement have been linked to what students do on learning management systems. Successful students view content pages (eg lecture notes); post and read messages; log in often; and complete assessed (and non-assessed) tasks. What about students who don’t do these things? Existing research calls for an “early warning system” in the form of a learning analytics “dashboard” for lecturers, but no such system exists within the standard Moodle codebase. I am leading a team that is developing a block that teachers can add to their Moodle course that will provide them with a quick graphical snapshot of which students are at risk.

More information

Slides and handouts from SoLAR Southern Flare

Download links

Post on moodle.org forums announcing release

2012 MoodleMootAu presentation abstract and slides: pdf|pptx

A story on the NetSpot website

Traffic light risk view

Sortable report view

Configurable weightings for each indicator

5 responses

  1. for Forum Activity with these settings:

    No_Risk = 5
    Max_Risk = 1
    Weighting = 23%

    if the average post per week is equal to or greater than [No_Risk] value, then the local risk is 0%.

    if the average post per week is less than [No _Risk] and greater than [Max_Risk] then the local_risk should be:
    local_risk = (average_post_per_week – Max_Risk ) / (No_Risk – Max_Risk)

    if the average post per week is equal to or less than [Max_Risk] value, then the local risk should be 100%, not equal to 23% (weighting percent). What do you think?

  2. Hi Rebecca! In your example, the indicator should return 100% risk, which would be multiplied by 23% for a weighted score of 23%. In the screenshots above, that would look like a “23% (100%)” entry in the Forum Activity column. This is then added to any risk from other indicators for a total weighted score.

    • Hi Phill,

      Thank you very much for your response.

      Since weighting only use for risk_contribution, not risk_local
      Would you please update the formula for local_risk calculation in the next release of this plugin?

      something like:

      //$local_risk = $this->calculate(‘totalposts’, $this->rawdata->posts[$userid]['total']);
      //$risk_contribution = $local_risk * $weighting;

      protected function calculate($type, $num) {
      $maxrisk = $this->config["max_$type"];
      $norisk = $this->config["no_$type"];
      //rebecca changed
      $weight = $this->config["w_$type"];

      $risk = 0;
      if ($num / $this->currweek currweek currweek;
      $num -= $maxrisk;
      $num /= $norisk – $maxrisk;
      $risk = $num * $weight;
      $post_per_week_avg = $num / $this->currweek;
      if ($post_per_week_avg = $norisk) {
      $risk = 0; //faster
      $risk = ( ($post_per_week_avg – $maxrisk) / ($norisk – $maxrisk) ) ;
      return $risk;

      • Thanks again Rebecca. I’m not involved in active development (and didn’t do any coding on it when I was) so you’re probably better off putting this up on the Git repo. Maybe get in touch with Bob Puffer from Lutheran in the US too, who is part of a group that has forked EA. Thanks for getting in touch!

Leave a Reply