Learning journal, activity completion and nudge analytics

Week 2 of 2nd semester. Time to start checking how students are going and checking in with those that haven’t started yet. For EDC3100, this means putting in place the various “shadow systems” that bridge what’s provided by the institution and what I need in order to enact the practices I deem appropriate. What follows is a record of the ongoing evolution of this idea.

Extending things a bit this semester is that EDU8117 will leverage some of the same system. So it will all have to be a bit more general. Also hoping to tweak it solve some issues from last semester.

BIM backups – bring user details in

A request for backups of the BIM activities for the two courses brings the user data in I believe. Will need to do this once more.

Figure out which users belong to a course

I’m kludging this with Perl. So no friendly Perl APIs. A kludge with groups perhaps – that’s what was used last semester. So identify the groups that apply.

mdl_groups: [ id, courseid, name, description etc. ]
mdl_group_members : [ groupid, userid…]

Courseids for

  • EDC3100 – 4 – gives the right set of groups it appears. 46 is the group I’m after for EDC3100
  • EDU8117 – 5 – only 1 group 68

There is also a role for dropped students that should perhaps be checked at some stage.

Given new use of MoodleUsers->new_all( COURSE => “EDC3100”, TERM => “2014_S2” ) and then do the translation.

That’s working.


Relies on two classes. One is hard coded to the ID for the BIM activity. Both are. So same kludge as for the MoodleUsers. A simple hash to translate COURSE/TERM into a BIM activity.

Actually Marking only needs updating to take a BIM id.

Done. It’s a bit of a bugger that Webfuse is dead. Quite like the flexibility of the class system. Perfect for bricolage/tinkering.

Importing activity completion

It’s currently done with activityCompletion/import.pl

  1. Reads the CSV file with Activity Completion data,

    Biggest kludge here is the student ID number which is missing leading 00s.

  2. Arbritarily creates a base course module ID for each activity starting from a common, hard-coded base.
  3. Compares that data with the Moodle user data to get a match up, Currently done on USQ student number (ID).
  4. Inserts the course completion data for each user into mdl_course_modules_completion : [ id, coursemoduleid, userid, completionstate, viewed, timemodified ]

    Currently does this by deleting all the data in mdl_course_modules_completion – perhaps overkill.

    foreach $student ( @enrolled ) {
        foreach $activity ( @csv_activity_records ) {
             # create a database record for course_modules_completion that activity
             push @rows, $activity
        # insert into database

Got that all fixed up. Finally.

Identify the students slow getting going

Next step is to identify those students who have been a bit slow getting going.

Each week has a “learning path” of activities to complete. The idea is that given any particular week it would be useful to identify those students who are “slow”.

Perhaps something like

  1. Class that takes the course code, term and the week of term.
  2. Generates a CSV file with student details (email address, name) and the percentage of activities that have been completed up until this week.
  3. This can be manipulated with Excel and emails sent as a result.

Raising questions

  • How to know which activities apply to which week?

    Current approach is to hard code the start and end pretend CMIDs for activities for a period. Could extend this to each week. ActivityCompletion class does something like this based on START/END for hard coded CMIDs.

    Convert this class to use COURSE PERIOD WEEK instead.

Done. And first email sent to students who have yet to complete 50% of the tasks from last week. A very primitive nudge.

Will need to send out a reminder about registering blogs so I can send out a learning journal report.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s