Using resources appropriately

The following is intended to be an example that will be used in the course I’m teaching. It’s meant to demonstrate appropriate ways to reuse resources that have been created in different ways. It’s also an opportunity to explicitly test my understanding. So feel free to correct me.

The idea is that how and if you can use a resource (be it words, audio, video etc) depends on who created the resource, copyright, and any additional conditions that have been applied.

Using a resource I created

The following image is a photo taken by me. I’m the copyright owner, I’m free to use this anyway I like. No need to reference or give attribution.

If I’d taken this image as part of preparing teaching materials for my paid work for the University of Southern Queensland, then I would have to ask their permission to use this image here. As the University (currently) retains copyright ownership on materials produced for teaching purposes.

Eating in the bath

There’s not need to include any attribution on this image, as I own the copyright.

Using a public domain image

The following image – taken from a book from the 1800s – is in the public domain. There are no restrictions on how I (or you) can use this image.

Image from page 363 of "Encyclopédie d'histoire naturelle; ou, traité complet de cette science d'après les travaux des naturalistes les plus éminents de tous les pays et de toutes les époques: Buffon, Daubenton, Lacépède, G. Cuvier, F. Cuvier, Geoffroy Sa

With public domain resources, there’s no need for an attribution, but it would be nice to do.

Using a Creative Commons image

The following image was taken by Daisuke Tashiro. Who has chosen to add to this image this Creative Commons license which allows me to reuse the image as along as a fulfill the conditions of the license, including appropriate attribution of the image.

To properly attribute the image, I make use of the ImageCodr service.

If I were to use the above image without the attribution, just the image itself. I would be breaking the terms of the license.
However, I can currently link to the image without any attribution or breaking any copyright conditions.

Using a copyrighted image

The following image is copyrighted. All rights reserved.  While I can link to this image without breaking copyright. If I embed it in this blog post, I’m likely to get into trouble.

Unless I ask the copyright holder for permission to use the image. As I have known the copyright holder for a long time, I’ve been able to do this quite easily and quickly. However, if you don’t know the copyright holder, obtaining permission may take quite some time, and may not happen at all.


Copyright © (2012) Colin Beer – used with permission

If I don’t get permission from the copyright holder, I can’t use this image. Even if I put the nice attribution of the resource, I still can’t use it.

What is that last image about?

The image is a little interesting in the context of the course. It indicates that there is a potential relationship between final grade a student achieves in a course, and the week of term when the student first accesses a course website. i.e. if you access a course website in week 5, you are likely to get a grade lower than students who access the course website earlier.


Producing OPML files for EDC3100 student blogs

EDC3100 tries to get students engaged with writing their own blogs and following the blogs of others via a feed reader. Yes, just a bit old fashioned.

But then one of the problems with doing something a bit different is that it takes a fair bit of extra work to implement. Once you automate this bit of extra work it creates a bit of inertia that prevents change. Not only because I don’t want to lose the effort that went it into automating the process. But also because I know that if I did something different that was more modern, I’d have to invest more time in automating that process (i.e. working around the limitations of the current institutional learning environments.

So documenting the process.

Students create and register their blog on the LMS

About 250 have done this so far. Another 100 to go.  But can’t wait, need to get the OPML files out to students so they can start making connections.

Get the data that identifies students by specialisation

By default the institutional learning environment doesn’t provide this. That’s why I had to spend Friday doing this.

Though I do now have to update the data

  • Get the most recent participants.
  • Get the most recent registered blogs.
  • Double check “can’t find data” students.
    • Find a buggy example
    • Check the local course enrolment – shows up
    • Check users_extras – not there.  That’s the problem. Don’t have the extra data from student records for students who weren’t enrolled a couple of weeks before the start of semester.

Run the script

Once the data is available, I can configure and run a script that will produce the OPML files.

  • Fix the configuration settings
  • Do something with the NOPLAN students
  • Modify the script to handle change in data format and the dirty data

Test the OPML files

All appears to be good.

Write the instructions for students

That’s the next task.

Preparing my digital “learning space”

The following documents the (hopefully) last bit of extra work I have to undertake to prepare the digital “learning space” for EDC3100, ICT and Pedagogy. It’s work that has taken most of my working day. At a time when I can’t really afford it.  But it’s time I have to spend if I want to engage effectively in one of the most fundamental activities in teaching – know thy student.

End result

The work I’ve done today allows me to easily access from within the main digital learning space for EDC3100 (the Moodle course site) three different types of additional information about individual students.

It’s also an example of how the BAD mindset is able to work around the significant constraints caused by the SET mindset and in the process create shadow systems, which in turn illustrates the presence of a gap (i.e. yawning chasm) between what is provided and what is required.

The shadow system gapAdapted from Behrens and Sedera (2004)

What are they studying? What have they done before?

This student is studying Early Childhood education. They’ve completed 21 prior courses, but 5 of those were exemptions. I can see their GPA (blurred out below). They are studying via the online mode and is located in Queensland.

Screen Shot 2016-03-04 at 1.17.07 pm

How much of the course activities they’ve completed and when

This particular student is about half way through the first week’s material. They made that progress about 5 days ago. Looks like the “sharing, reflecting and connecting” resource took a while for them to complete. More so than the others – almost two hours

Screen Shot 2016-03-04 at 1.17.15 pm

What they’ve written on their blog and how they are “feeling”?

This student has written two blog posts. Both are fairly positive in the sentiment they express. Through the second is a little less positive in outlook.

Screen Shot 2016-03-04 at 1.26.04 pm

Reasons for the post

There are a number of reasons for this post:

  1. Reinforce the point about the value of an API infrastructure for sharing information between systems (and one that’s open to users).
  2. Document the huge gap that exists between the digital learning spaces universities are providing and what is actually required to implement useful pedagogies – especially when it comes to what Goodyear and Dimitriatdis (2013) call “design for orchestration” – providing support for the teacher’s work at learn time.
  3. Make sure I document the process to reduce the amount of work I have to do next time around.
  4. Demonstrate to the EDC3100 participants some of the possibilities with digital technologies, make them aware of some of what happens in the background of the course, and illustrate the benefits that can come from manipulating digital technologies for pedagogical purposes.
  5. Discover all the nastly little breaks in the routine caused by external changes (further illustrating the unstable nature of digital technologies).

What will I be doing

I’ll be duplicating a range of institutional data sources (student records and Moodle) so that I can implement a range of additional pedagogical supports, including:

Hopefully, I’ll be able to follow the process vaguely outlined from prior offerings. (Yep, that’s right. I have to repeat this process for every course offering, would be nice to automate).

Create new local Moodle course

I have a version of Moodle running on my laptop. I need to create a new course on that Moodle which will the local store for information about the students in my course.

Need to identify:

  • USQ moodle course id – 8036
  • local course id – 15
    Create the course in Moodle and get the id
  • group id – 176
    Create the group in the course
  • context id – 1635
    select * from mdl_context where instanceid=local_course_id  and contextlevel=50
  • course label – EDC3100_2016_S1
    One of the values defined when creating the course.
  • Update MoodleUsers::TRANSLATE_PARAMETERS
  • Update ActivityMapping::TRANSLATE_PARAMETERS
  • enrolid – 37
    select * from mdl_enrol where courseid=local_course_id and enrol=’manual’;

Create BIM activity in new course

Need to identify

  • bim id – 9

Enrol students in the course

Ahh, returning to Webfuse scripts, the sad, depleted remnants of my PhD.

~/webfuse/lib/BAM/3100/3100_support/participants/ is a script that will parse the Moodle participants web page, extract data about the enrolled users, and insert them appropriately into the database for my local Moodle course.

Initial test, no-one showing up as a participant. But add myself as teacher.

  1. Figure out that the “show all participants” option is hidden down the very bottom of the page.
  2. Save the page to my laptop
  3. Edit the script to update course details
  4. Test that it parses the HTML file (in case changes have been made by the institution or by the new version of Moodle) – looking good.
  5. The finding of old students appears to be working.
    Oh nice, easy way to identify repeating students.  Need to save that data.
  6. Run the script
  7. Fix the errors
    • Duplicate key inserting into groups
    • missing required parameter COURSE_ID 111
      Complaint from MoodleUsers class – need to update TRANSLATE_PAREMETERS above
    • Particpants still not appearing, something missing — have to update the script. Done.

Took a while, but that should further automate the process for next time.

Add some extras

The above step only adds in some basic information about the student (USQ Moodle ID, email address). TO be useful I need to be able to know the sector/specialisation of the student, their postal code etc.

This information comes from a spreadsheet generated from the student records. And the data added into a “special” table in the Moodle database. This year I’m using a different method to obtain the spreadsheet, meaning that the format is slightly different. The new process was going to be automated to update each night, but that doesn’t appear to be working yet. But I have a version, will start with that.

  1. Compare the new spreadsheet content
    Some new fields: transferred_units, acad_load. Missing phone number.
  2. Add columns to extras table.
  3. Update the parsing of the file

Seems to be working

Activity data

This is to identify what activities are actually on the study desk.

Another script that parses a Moodle web page to extract data. Currently re-writing some of the activities, wonder how that will work. Actually, seem to have designed for it.  Does a replace of the list, not an update


  1. Add in the course id for the new course
  2. ??? may be update the script to handle that parameterised section titles

Seems to be working

Activity completion data

Now to find out which activities each student has completed. Another script, this time parsing a CSV file produced by Moodle.


  1. Update the script with new course data
  2. Unable to find course id – update
  3. Having problems again with matching activity names
    1. EDC3100 Springfield resources
      it shouldn’t be there. Turn off activity completion and get new CSV file
    2. For “.”???.
      First field is a . should be empty May need to watch this.
  4. Parses okay – try checkStudents
    Getting a collection of missing students.

    1. Are they in the local database at all? – no
    2. Have they withdrawn, but still in activity completion – yes.
  5. Seems to have worked

Student blog data

Yet another scraping of a Moodle web page.   ~/BIM/

  1. Update the config
  2. Check the parsing of the file
    1. Only showing a single student – the last one in the list
      For some reason, the table rows are missing a class. Only the lastrow has a class. Given I wrote the BIM code, this might be me. The parsing code assumes no class means it’s the header row.  But seems to work.
  3. Check the conversion process
    1. Crashed and burned at me – no Moodle id – hard code my exclusion
  4. Check insertion
  5. Do insertion
  6. Check BIM activity
  7. Check mirror for individual student – done
  8. Run them all – looks like there might be a proxy problem with the cron version.  Will have to do this at home – at least wait until it finishes.

Greasemonkey script

This is the user interface end of the equation.  What transforms all of the above into something useful.


  • gmdocs/moreStudentDetails.user.js
    • Add the Moodle course id – line 331
  • phpdocs/api/getUserDetails.php
    • map the USQ and local Moodle ids
    • map USQ course id to BIM
    • add in the hard coded week data
    • Modify the module mapping (hard coded to the current course) — actually probably don’t need to do this.
  • Download the modified version of the greasemonkey client – http://localhost:8080/fred/mav/moreStudentDetails.user.js
  • Test it
    • Page is being updated with details link
    • Personal details being displayed
    • Activity completion not showing anything
      • Check server
        • Getting called – yes
        • Activity completion string is being produced
        • But the completion HTML is empty – problem in displayActivityStructure
        • That’s because the structure to display (from updateActivityStructure) is empty – which is actually from getActivityMapping
        • getActivityMapping
          • **** course id entered incorrectly
    • Blog posts showing error message
      Problem with type with the course id
  • Can I add in the extra bits of information – load, transferred courses
    • Client

Sentiment analysis

This is the new one, run the blog posts through indico sentiment analysis


  • update the BIM id




Behrens, S. & Sedera, W. (2004) Why do shadow systems exist after an ERP implementation? Lessons from a case study. IN WEI, C.-P. (Ed.) The 8th Pacific Asia Conference on Information Systems. Shanghai, China.





PEBKAC, mental model mismatch and ICT

Semester has commenced. First lecture yesterday. Big plans to use Zoom to “broadcast” the lecture to online students and to make a recording that could be shared with those who didn’t want to/couldn’t listen to my dulcet, droning tones at 8am on a Tuesday morning.

Zoom performed as expected. Easy to set up and get working. As expected a small issue with participants not following the advice to mute their microphones. Hence my dulcet, droning tones and the nodding off of the face-to-face audience were occasionally interrupted by the sounds of the domestic life of the online audience. Thankfully Zoom has the capability for the host of the session to mute mics of participants.


The tendency for people to forget to turn off their mic appears to be an example of PEBKAC. A reasonably well known term amongst computing people, especially those in technical support. As the image to the right explains PEBKAC is an acronym that expands out to

  • Problem
  • Exists
  • Between
  • Keyboard
  • And
  • Chair

i.e. the object that exists between keyboard and chair is the user. It’s user error.

It’s a term that expresses the bewilderment of technical people when the person with the problem has done something that clearly demonstrates a lack of basic understanding. At least in part, the term arises because technical support people see this type of problem all the time.

Why is it so common?

Poor mental models as a source of PEBKAC

This is a question which the content of this week’s lecture has an answer to provide due to a combination of the nature of digital technologies (ICT) and how people learn.

Ben-Ari and colleague (Ben-Ari, 1999; Ben-Ari & Yeshno, 2006) suggest that the problem is that many people have superficial mental models of how the technology works. In the absence of a reasonable correspondence between their mental model of the technology works, and how the technology actually works people are left to “aimless trial and error” when they attempt to use digital technologies. By definition, the reliance on trial and error means that errors will occur and PEBKAC will become evident.

In the Zoom lecture experience the participants joining the Zoom lecture – perhaps many for the first time – don’t understand (they don’t have a mental model) how Zoom works. They don’t understand that their mic is on by default. When it is on, any noise made where they are is shared with all the other participants in the Zoom session. Including, the 40 odd people in the lecture theatre in Toowoomba.

So blame the user?

The opaque nature of digital technologies

Maybe we can blame the technology.

Koehler and Mishra (2009) have this to say

Digital technologies—such as computers, handheld devices, and software applications—by contrast, are protean (usable in many different ways; Papert, 1980); unstable (rapidly changing); and opaque (the inner workings are hidden from users; Turkle, 1995).On an academic level, it is easy to argue that a pencil and a software simulation are both technologies. The latter, however, is qualitatively different in that its functioning is more opaque to teachers and offers fundamentally less stability than more traditional technologies. By their very nature, newer digital technologies, which are protean, unstable, and opaque, present new challenges to teachers who are struggling to use more technology in their teaching. (p. 61)

Digital technologies are opaque. It’s not easy to get a handle on the models that underpin the design and implementation of digital technologies. It’s difficult for a student sitting at home in front of their computer to hear the sound of their neighbour’s lawn mower echoing around the R113 lecture theatre on the Toowoomba campus and connect that to their mic not being muted in Zoom.

There is a picture of a mic on the Zoom interface. But you have to click on it to see the option to mute the mic. That requirement makes it difficult for a person using Zoom for the first time (especially if they are new to video-conferencing) to be aware of how to mute the mic, let alone the need for it.

People who have a mental model that more closely corresponds to how the technology works are better able to prepare for (avoid) or solve problems.

Before starting the lecture I thought this might be a problem (based on prior experience) so I explored the Zoom interface to see if it had an feature that would allow me (as meeting host) to mute the mics of other people.  It did, and that’s what I used to address this problem.

Developing mental models through conceptual models

Ben-Ari and Yashno (2006) found that if they presented people with a conceptual model of how an ICT works, those people were able to move beyond trial and error and solve problems conceptually.

At the moment, my mental model of Zoom is that I’ll have to be manually muting participants next week. As I’m sure, even with all the recommendations, the opaque nature of the Zoom, and the limited mental models of Zoom held by people will once again create the problem.

I wonder now if Zoom has a feature by which you can specify that participants mics are muted automatically as they join.  This is an example where my mental model of Zoom breaks down. Time to play with Zoom.

Hey presto, it does indeed.  The image below shows the “Mute All” button that includes the ability to mute all participants, including new participants. I’ve just learned something new.
Unmute all

Interestingly, however, for me this reinforces the opaque nature of digital technologies (or at least their user interfaces). The button “Mute All” suggests to me that it will mute all existing participants. I didn’t assume it would include participants yet to join. Minor, but useful example.

Environment/context plays a part as well

But it’s just not the technology that is to blame.

As explained above, due to a combination of technical training and experience with video conferencing I have a fairly good mental model of how video conference works. But even with that I still make mistakes.

About 3/4 of the way through the hour lecture yesterday I realised that I hadn’t hit the record button. This is a problem as I’d planned to share that recording with those who couldn’t attend.

So if I had a good mental model of the technology, why did I make the mistake.

I blame the environment. This was my first time trying to use Zoom in a lecture theatre. Due to the theatre set up I was using a Windows computer for the presentation (I’m normally a Mac user). I also had to set up my Mac as secondary machine so I could observe the chat. I also had to worry about the lapel mic and getting that to work. Lastly, it was the first lecture of new semester. A lecture that I’d only finished preparing 30 minutes before the start of the lecture.

It was a novel environment, I was feeling rushed. So even though I knew the importance of hitting record, I didn’t hit record.

Improving my mental model

That mistake and having to re-record the lecture this morning means that I’m unlikely to make this same mistake again. Human beings learn best from making mistakes (especially public mistakes) and reflecting on them.

Broader implications

Some ad hoc ponderings and hypotheses.

The learning activities this week should be designed to require people to make mistakes and then build their conceptual models from there. The pre-packaged errors won’t be as beneficial.

Will the conceptual models that have been provided of the technology and the course be useful enough to help people develop useful mental models?

Are all the problems with staff using the Moodle Assignment activity down to this problem of opaque technology and limited mental models? Could this be fixed by sharing accessible conceptual models with staff? How do overcome the sheer complexity of the model of the Moodle assignment activity?

What role does the teaching context play in these limited mental models?

Would improving the mental models of teaching staff address the perceived quality issues around University digital learning?


Ben-Ari, M. (1999). Bricolage Forever! In Eleventh Workshop on the Psychology of Programming Interest Group (pp. 53–57). Leeds, UK. Retrieved from benari.pdf

Ben-Ari, M., & Yeshno, T. (2006). Conceptual Models of Software Artifacts. Interacting with Computers, 18(6), 1336–1350. doi:10.1016/j.intcom.2006.03.005

Koehler, M., & Mishra, P. (2009). What is Technological Pedagogical Content Knowledge (TPACK)? Contemporary Issues in Technology and Teacher Education, 9(1), 60–70. Retrieved from