Assembling the heterogeneous elements for (digital) learning

Category: edc3100 Page 2 of 6

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


Sentiment analysis of student blog posts

In June last year I started an exploration into the value of sentiment analysis of student blog posts. This morning I’ve actually gotten it to work. There may be some value, but further exploration is required. Here’s the visible representation of what I’ve done.

The following is a screen shot of the modified “know thy student” kludge I’ve implemented for my course. The window shows some details for an individual student from second semester last year (I’ve blurred out identifying elements). The current focus is on the blog posts the student has written.
Sentiment analysis of blog posts

Each row in the above corresponds to an individual blog post. It used to show how long ago the post was written, the post’s title, and provide a link to the blog post. The modified version has the background colour for the cell modified to represent the sentiment of the blog post content. A red background indicates a negative post, a green background indicates a positive post, and a yellow background indicates somewhere in the middle.

The number between 0 and 1 shown next to the post title is the result provided by the Indico sentiment analysis function. The method use to perform the sentiment analysis.

Does this help?

Does this provide any help? Can it be useful?

An initial quick skim of posts from different students seemed to indicate mostly all green. Was the sentiment analysis revealing anything useful? Was it working?

In the following I examine what is revealed by the sentiment analysis by paying close attention to an individual student, the one shown in the image above.

Red blog post – reveal target for intervention?

The “red” blog post from the image above included words like “epic fail”. It tells the story of how the student had problems getting the new software for the course working. It shows as the third post the student made in the semester. The start of this course can be frustrating for students due to technical problems. This particular student didn’t report any of these problems on the course discussion forums.

Given that the course is totally online and there are ~100 students in this offering, there’s little chance for me to have known about these problems otherwise. Had the sentiment analysis been in place during the offering and if it was represented effectively, I might have been able to respond and that response might have been helpful.

Yellow blog post – a problem to address?

The yellow post above is a reflection on the students experience on Professional Experience, in a school, in front of a classroom, actually teaching. It is a reflection on how the student went through an emotional roller coaster on prac (not unusual), how her mentor really helped (also not unusual, but a little less so), but also how the various exemptions she received contributed to her problems.

Very positive blog posts – loved resources?

A number of the posts from this student are as positive as they can get – 1.0. Interestingly, almost all of them are descriptions of useful resources and include phrases like

what a wonderful learning tool …lovely resource…wonderful resource for teachers

What’s next?

Appears that the following are required/might be useful

  1. Explore different representations and analysis
    So far I’ve only looked at the student by student representation. Another forms of analysis/representation would seem potentially useful. Are there differences/patterns across semester, between students that are the same/different on certain characteristics, between different offerings of the course etc.How can and should this representation be made visible to the students?
  2. Set this in place for Semester 1.
    In a couple of weeks the 300+ student version of this course runs. Having the sentiment analysis working live during that semester could be useful.
  3. Explore useful affordances.
    One of the points of the PIRAC framework is that this form of learning analytics is only as useful as the affordances for action that it supports. What functionality can be added to this to help me and the students take action in response?


I’ve been thinking about doing this for quite some time. But the business of academic life has contributed to a delay.  Getting this to work actually only required three hours of free time. But perhaps more importantly, it required the breathing space to get it done. That said, I still did the work on a Sunday morning and probably would not have had the time to do it within traditional work time.


What is theory and why use theories?

The following is an edited version of something used in a course I teach that’s currently hidden away in the LMS. I’m adding it here because I’m using it with another group of students.

It’s a quick attempt to cover what I perceive to be a reasonable whole for many education students. i.e. what exactly is a theory and why the hell would I want to use them? My impression is that not many of them have developed an answer to these questions that they are comfortable with.

This is a complex and deeply contested pair of questions. I’m assuming that if you lined up 50 academics you’d get at least 50 different sets of answers. My hope that this is a useful start for some. Feel free to add your own pointers and answers to these questions.

If you want a more detailed look into the nature of theory then I can recommend Gregor (2006).

What is theory?

I take an inclusive and pragmatic view of theory.

An inclusive view, because there is a huge array of very different ideas that can be labelled theories. A pragmatic view is taken because the reason we use theories in this course is to make it easier to do something. To understand a particular situation, or for most reading this figure out how to design some use of digital technology to enhance or transform student learning.

Hirst (2012, p. 3) describes educational theory as

A domain of practical theory, concerned with formulating and justifying principles of action for a range of practical activities.

i.e. educational theory should help you teach and help your learners learn.

In the context of this particular course we touch on various ideas such as: the Computer
Practice Framework, TPACK, Backwards Design, the RAT framework, the SAMR model, The TIP Model, constructivism, and many more. For the purposes of this course, we’ll call these things theories. They help with “formulating and justifying principles of action”.

There is huge variability in the purpose, validity, and approaches used to formulate and describe these objects called theories. A theory isn’t inherently useful, important, or even appropriate. That’s a judgement that you need to make.

A theory is just a model and All models are wrong, but some are useful (Box, 1979).

Why use theories?

Thomas (1997, p. 78) cites Mouly (1978)

Theory is a convenience a necessity, really organizing a whole slough of facts, laws, concepts, constructs, principles into a meaningful and manageable form

These theories are useful because they help you understand, formulate and justify how and what to do. In this course, these theories will help you plan, implement, and evaluate/reflect upon the use of digital technologies to improve your teaching and your students’ learning.

Learning and teaching are difficult enough. When you add digital technologies to the mix even more complexity arises. The theories we introduce in this course should hopefully help you make sense of this complexity. Guide you in understanding, planning, implementing and evaluating of your use of ICTs.


Gregor, S. (2006). The nature of theory in information systems. MIS Quarterly, 30(3), 611–642.

Hirst, P. H. (2012). Educational theory. In P. H. Hirst (Ed.), Educational Theory and Its Foundation Disciplines (pp. 3-29). Milton Park, UK: Routledge.

Thomas, G. (1997). What’s the Use of Theory? Harvard educational review, 67(1), 75:105.

Computers 'do not improve' pupil results, just like wood 'does not improve' houses

Here we go again. There’s an OECD report on “Students, Computers and Learning” that is doing the rounds. @palbion points to one media report

A report that starts with the observation

Investing heavily in school computers and classroom technology does not improve pupils’ performance, says a global study from the OECD.

The same OECD report has been mentioned in Moodle research discussion forum.

Almost 30 years ago Seymour Papert (1987) wrote “Computer Criticism vs. Technocentric Thinking” in which he asked people to

Consider for a moment some questions that are “obviously” absurd. Does wood produce good houses? If I built a house out of wood and it fell down, would this show that wood does not produce good houses? Do hammers and saws produce good furniture? These betray themselves as technocentric questions by ignoring people and the elements only people can introduce: skill, design, aesthetics. Of course these examples are caricatures. In practice, hardly anyone carries technocentrism that far. Everyone realizes that it is carpenters who use wood, hammers, and saws to produce houses and furniture, and the quality of the product depends on the quality of their work. But when it comes to computers and LOGO, critics (and some practitioners as well) seem to move into abstractions and ask “Is the computer good for the cognitive development of the child?” and even “Does the computer (or LOGO or whatever) produce thinking skills?” (p. 24)

Beyond asking an “obviously absurd” question, there are other problems I have with this study.

What is meant by “use tablets and computers”

The BBC report quotes the OECD’s education director as saying

Those students who use tablets and computers very often tend to do worse than those who use them moderately.

But what does “use tablets and computers” mean?

Papert (1987) again

Stated abstractly, the two studies have the same explicit intention: the children are to be given “programming”– and the purpose of the experiments is to see what happens. But there is no such thing as “programming-in-general.” These children are not given “programming.” They are given LOGO. But there is no such thing as “LOGO-in-general” either. The children encounter LOGO in a particular way, in a particular relationship to other people, teachers, peer mentors, and friends. (4) They don’t encounter a thing, they encounter a culture. (p. 27)

Now read that quote again and replace “LOGO” with “tablets and computers”.

The culture in schools impacts on how students are using the tablets and computers. At best the report has found a correlation and not the cause. The cause would seem likely to arise from the culture and how it impacts that nature and quality of students’ use of “tablets and computers”.

Given that the 2015 Horizon Report for K-12 identifies “Integrating technology in teacher education” as one of the problems facing the use of “tablets and computers” in K-12 education, might not this say something about the culture influencing the way “tablets and computers” are used in schools. Especially given that the 2015 Horizon Report for K-12 suggests that

the most important finding is that the level of a teacher’s digital competence directly correlates with students’ learning outcomes when technology is used

The OECD’s education director understands that how “tablets and computers” are used are important. The BBC report again

But Mr Schleicher says the findings of the report should not be used as an “excuse” not to use technology, but as a spur to finding a more effective approach.

But don’t start blaming the teachers and the teacher educators (at least not solely).

Warning: reliance on anecdote.

Every year I teach a course in “ICT and Pedagogy”. A course with the aim of helping them be able to design effective ways to use tablets and computers for student learning. Each year around 400 of these students go out into schools through Australia and abroad. Each year there are positive and negative stories.

There are stories of classrooms with little or no technology that actually works. Stories of where the only technology available is in a computer lab that the class can access for an hour or two each week. Stories of a full curriculum and a focus on standardised tests. Stories of teachers and school leaders that are only now starting to use technology in their everyday life. What might these stories say about the culture in these schools?

Both the negative and positive stories feature the above elements. Typically the only difference between the negative and positive stories is effort put in by a mentor teacher and/or the pre-service teacher involved. Very rarely are the positive stories a result of the school culture as a whole.

How is “learning” measured?

The BBC report reports the OECD’s education director again

He said making sure all children have a good grasp of reading and maths is a more effective way to close the gap than “access to hi-tech devices”

Which brings me to the question of “learning” is measured?

The summary of the report suggests that learning is being measured in this report “Based on results from PISA 2012”. PISA 2012 “assessed the competencies of 15-year-olds in reading, mathematics and science (with a focus on mathematics) in 65 countries and economies”.

Okay, so learning is being measured by a test on “reading, mathematics and science” and results indicate that “a good grasp of reading and maths is a more effective way to close the gap”.

Using the available data, not the meaningful data

Lastly, it appears that report seems to have taken the available data (i.e. PISA data showing performance on the PISA tests and ICT use) and sought to identify patterns and draw conclusions from that data.

Data about how students actually use ICT. Data about the culture within schools around learning, teaching, and the use of ICT doesn’t seem to have been available and hence it wasn’t considered.


The comments/argument above is based on the BBC report. I have not read the full report. Hence I’m liable to be committing the following offence.


Papert, S. (1987). Computer Criticism vs . Technocentric Thinking. Educational Researcher, 16(1), 22–30.

ICT knowledge and quizzes

Do you know more about computers than an 11-year-old? is the title of an article from a UK newspaper. It contains an 11 question quiz that is apparently based on the primary school IT and computer science curriculum.

I’ve come across it via some folk currently taking one of the courses I teach. In that course they are learning about how to use ICT to enhance/transform student learning. For many starting out in the course their perceived level of ICT knowledge and competence is not high. I imagine a challenge phrased as the above struck a chord. Results included: 8 out of 11 and 7 out of 11.

What did you get?

I’ve been programming since 1983, have university degrees in Computer Science and Information Systems, and have spent my professional life teaching and developing applications of ICT. I should do ok. What did I get?

10 out of 11.

What does this tell us?

Yes, I’ve probably picked up a bit more knowledge about ICT over the years playing with computers. But that’s no great surprise.

Is the quiz a good judge of ICT knowledge, or more importantly capability to do useful things with ICT. No!

The article makes claims like

The scary thing for older people is that things you were never taught about are now common knowledge for young children. Even if you’re in your 20s quite a lot of what you learnt in school ICT lessons is probably obsolete now.


One of the multiple choice questions was along the lines of

In what year did Tim Berners-Lee invent the World-Wide Web?

The answer is 1989. This is not some new fangled ICT knowledge that someone in their 20s wouldn’t have learned.

In addition, this is the question I got wrong. One of the distractors was 1988. I couldn’t remember exactly when the WWW was invented, so went for 88.

There’s nothing in this question that tests my capability to do something creative with ICT. Nor with many of the other questions (e.g. which of the following list of words is not a programming language). Most are not basic knowledge required to be creative with ICT and most could be answered after a Google search.

None get at the fundamental knowledge or capabilities that have helped me maintain some level of knowledge about ICTs as they evolve. None talk about the fact that while the syntax and specifics of ICT change rapidly, there are basic principles of how they are designed and how you can learn and work with new ICT.

The quiz is based on the assumption that it is what you know that is important. It’s not. Arguably, it’s about “how you know things are connected”. That particular quote is from this post by @gsiemens. The original full quote is from this newspaper article and is from a former editor-in-chief of a dictionary. The full quote is about the English language

English is a network, being a literate person is not so much about what you know, but about how you know things are connected.

Which perhaps says something about Jocelyn’s concerns

It really gets me wondering how we can actually keep up with the speed in which technology and terminology around technology is constantly updating and changing. Makes me feel like I need to source an ITC dictionary or something to try and keep up with what it all means!

Updating "more student details"

“More student details” (see image below) is the most visible part of the additional systems I’ve put in place to make teaching bearable (this presentation talks more about it). The problem I’m dealing with here is that a new semester has started, which means I need to re-configure these feral systems to work with the new semester.

And while I’m at it, I’m hoping I might be able to add a bit of sentiment analysis to it.


What needs to be done

Tentative process appears to be

  1. Create new course ID (5), group id (53), contextid (575) and course label (EDC3100_2015_S2) for new offering – creating the course in local Moodle.
  2. Create a BIM activity in the new course. – 3 – DONE
  3. run participants/ – DONE
  4. run the user extras. – DONE
  5. Load the initial activity information.- DONE
  6. Load the current activity completion data. – DONE
  7. Load the BIM data. – DONE
  8. Update the greasemonkey script

The basic aim is to populate a database running on my laptop with the following data

  • Student enrolment data.
    • Source – spreadsheet provided by manual dump from student records
    • Destination – Local moodle tables: mdl_user_extras and mdl_user
    • Method
      • Initialisation – set up the Moodle users data
        • update the course label in
        • Play around with the columns in the spreadsheet.
      • Maintenance – participants/extras/ – DONE
        • Can the CSV file be read appropriately – DONE – but missing some of the data I would have liked to have had.
          Keep on eye out for strange data – e.g. UK post codes.
        • Get the users data for this course.
        • See if a match can be made with local Moodle and Peoplesoft data
        • Any missing students (can’t match)
        • insert into mdl_user_extras table
        • update mdl_user table – to update the phone1 and phone2 values
    • Status
  • Student Moodle user data.
    • Source – CSV file produced
    • Destination – Local moodle tables: mdl_user, mdl_groups_members, mdl_role_assignments
    • Method

      • Initialisation
        1. Update the library files
        2. Create a new local Moodle course – get id.
        3. ??? do I need to create a group ID???? What else is needed
      • Maintenance – script will do most of this — students aren’t enrolled in the course, but are appearing in BIM.
        1. Parse the HTML file. – DONE
        2. Find any existing users – DONE
        3. Add the new students – DONE
        4. Populate the group data – DONE
        5. Populate role assignments – DONE
    • Status
  • Activity completion data – DONE
    • Source
      • HTML file saved of main Moodle site – DONE
      • CSV file from activity completion
    • Destination – local Moodle tables
    • Method
      • Initialisation – activities/ – DONE
        1. Have the local Moodle course set up.
        2. Ensure that the script has the configuration for the new course.
        3. Dump the main remote Moodle page to HTML.
        4. Run the script
          • Parse the html page – DONE
          • update the activity mapping table – DONE
        5. perhaps have to play with the activity translation stuff especially since Moodle 2.8 seems to have changed their method
      • Maintenance
        • List of activities – Whenever a the activity list to be completed changes on the remote site, save a new HTML file and re-run the script.
        • Activity completion – run the parse completion script
          • get progress data – DONE
            And Moodle has changed the format of their spreadsheet. It appears that the … has been removed. Let’s try that.
          • update the local/remote mapping – DONE
          • check the students – DONE
          • update the database – DONE
    • Status
  • Student blog data.
    • Source – HTML file from BIM on remote site
    • Destination – local Moodle BIM tables
    • Method
      • Initialisation – DONE
        1. Create the course
        2. Create the BIM activity
        3. Run the user scripts
        4. Modify the bim/ script
      • Maintenance
        1. parse the file
        2. Get the users and check data
        3. insert the data – DONE
    • Status – simply save the updated HTML page and re-run the script when updates required

Greasemonkey script

Well the data is in and the update process should be fairly straight forward – though still somewhat manual. Time to move onto the Greasemonkey script. This is what recognises and updates the Moodle page, communicates with the details server and displays a pop up. Changes will likely need to be made to both the client and server to serve the new course.

Greasemonkey first

  • Recognise the course – 7023
    Add that Moodle course id to an if statement and it should start working? As long as I remember to reload the modified script. Yes. It is recognising it.


  • Map course id to BIM
  • Map remote course id to local id
  • need to abstract out the WEEKS data – at the moment this is hard coded to the weeks, but it will do
  • And the module mapping – DONE
  • Fix up the dates

Still some minor bugs, to do list includes

  • Get the accordion working.
  • Timeago isn’t calculating the time since/till end of weeks.
  • Missing data- GPA, # courses complete
  • Add in the sentiment analysis work.

Re-building results processing

It’s once again time to process final results for a course and return the final assignment. A process that involves

  1. Checking overall student results for a course, before returning the final assignment.
  2. Identifying all of the students who won’t have final results available by the required date.
  3. Analysing this offering’s performance across the course and comparing it with prior offerings.
  4. Returning the final assignment.
  5. Ensuring the overall results are entered appropriately into the student records system.
  6. Preparing a report for the examiners meeting.

There are three problems driving this

  1. What institutional processes/tools are provided to help with these tasks are far from user friendly.

    e.g. the greasemonkey script I wrote last year to help with task #5 above.

  2. There are no institutional processes/tools for some of these tasks.

    e.g. the only way to get all of the assignment marks into one place is to put them into the Moodle gradebook. But I believe if I do that then the students can see the marks. Given that I’m still moderating the last assignment marks them seeing the marks is not so good.

  3. The management of online assignment submission has changed this year, so some of prior workarounds are no longer viable.

What I used to do

Part of this activity is identifying what I’ve already got. It’s around 7/8 months since I last had to do this, so I don’t remember. I’m not sure the impact of this temporal distance is something that the designers of institutional systems and processes are fully cognisant of.

The old process appears to have been

  1. Extract individual CSV files for each assignment from EASE.
    The old online assignment system generated 2 separate CSV files. I needed both.
  2. Get another CSV file with Professional Experience results.
    Whether a students has passed their Professional Experience is determined by another part of the institution using a different system.
  3. Run a perl script which would
    1. Extract all the data from the CSV files.
    2. calculate the final results (for each student).
    3. Assign a grade to the student based on circumstances
      • FNP if at all assignments not submitted.
      • F regardless of mark if PE failed.
      • IM if PE mark has not yet been received
      • RN if assignment submitted but still being marked.
    4. Generate grade breakdowns for each campus and overall
    5. Output all that as a CSV file, including comments that I’d added
  4. Import that into Excel and do some further checking.

What I need to do

The process will be largely the same. The main difference is the source and format of the CSV files. The changes now are

  1. Assignment 1, Assignment 2 and PE marks are now in Moodle gradebook.
    The will all export nicely. Though it does use the long version of the USQ student number. May need to do a workaround for that.

    what sort of institution is silly enough to have at least 3 versions of the same student number?. Long with leading 0s. Long without leading 0s. Short!

  2. Assignment 3 mark will be in Moodle assignment activity.
    That will work. The grade is there.

    But yet, it uses a different version of the student number (long without leading 0s). But both do have email address, that might be the candidate for unique id. Or the script will just pre-pend leading 0s.

The other major difference is that neither of these CSV files include any mention of the campus or mode the students are using. Which prevents breaking results down. But thankfully I do have database table populated with this information.

Ahh, that’s right. I also have to change the PE mark for some students to -1 to indicate they were exempt. This is to discern students for whom there is no PE result yet, from those students who aren’t going on PE and should still pass.

My other problem is that the CSV file for A3 has a “status” field that includes new line characters. My poor little Perl CSV parsing module doesn’t handle that well.

It’s working well enough to help moderate A3 results. Time to do that.

Still to be done

  • Modify gradebook.csv to have -1 for PE for those students who will never go **** what about when it’s updated?
  • Add the campus calculations back in
  • Figure out how to handle the status field in Moodle assignment csv.
  • Have the script produce an Excel file, not a CSV file

And the little one said, "roll over, roll over"

Roll over

It’s that time of year again. The time between semesters when one offering of the main course I teach is still drawing to a close and when I have to think about preparing for the next offering. It’s time – for better or worse – to roll over. The following is a description and some thoughts on how and what I do during roll over.

As it happens there is some discussion going on in the Moodle community about “roll over”, but at the institutional level. The following is very much focused on the course level.

The process

The high level steps I use are:

  1. Use the Moodle/institutional roll over process.
  2. Update my “macros”.
  3. Check for broken links.
  4. Other manual changes

Overall, the tools provided by the institution to roll over a course from one semester to the next do a reasonable job. However, if you have a fair amount of structure and content to a course site there is a hole. The tools don’t yet know enough about the institutional context (dates, weeks). Nor is this information provided in a way that helps teaching staff integrate the information in a way that responds to those changes. The problem gets worse the more you get into the unique course context (e.g. names of weekly topics).

Moodle/institutional roll over

I log an IT request (using a god awful interface) and in a little while some magic happens and the content from Semester 1 (S1) is copied into the Semester 2 (S2) course. The image below (click on it to see it larger) is of the newly rolled over S2 course site. As it shows – for better or worse – the course has quite a collection of resources that make up each weekly learning path (originally called and based on the idea of a weekly ramble). The interconnections between each of the elements is quite convoluted. e.g. the “Introduce yourself” book links to the “Share your introductions” discussion forum and vice versa.

The Moodle/institutional roll over process does a really good job of updating the interconnections between elements. This is good.

But there’s a problem. Can you see the problem in the following image?

s2 2015

Semester 2 runs from late July through to October/November. The dates in the above image are different. They are for Semester 1. The Moodle roll over process doesn’t know anything about USQ dates. This causes problems because dates are littered throughout the course site. Such as the assessment overview page, each individual assignment page, the study schedule, and any of the learning path pages that mention dates.

The suggestion is that I need to manually search (remember there’s typically no search engine on a Moodle course site) and replace all occurrences of dates and any other information that may change from offering to offering. Information that might include:

  • the details of the teaching staff;
    e.g. the assessment information contains directions to “email the course examiner” with extension requests. Who is the course examiner may change from offering to offering.
  • names of weeks/topics; and
    In the above image, week 1 goes under the title “ICT, PLNs and You”. I may wish to change that topic name in Semester 2 (e.g. add in the missing comma “ICT, PLNs, and You”) and the course material uses the topic names throughout.
  • the weeks of the semester for each topic.
    For some historical reason, when it numbers the weeks of semester my institution includes weeks that are holidays in the count. Since holidays are never at the same time each semester, it means for some topics their week of semester changes. In Semester 1, the “Finishing your UoW” topic is in Week 8. In semester 2, it will be Week 6.

“Macros” – my solution to this problem

Last semester I implemented a “macro” system. Initial implementation had it working just for the semester 1 site. Time to update it to work with both sites. The Javascript code will no need to

  1. Identify which course site (S1 or S2) the user is viewing.
  2. Replace all the “macro” variables with values appropriate to the course site.

What I need to do know is enter appropriate information for the new offering, this includes

  • links to books within the course site;

    Assessment, study schedule etc.

  • Assignment due date – course profile.
  • Professional experience dates – PE calendar
  • Weeks and dates – academic calendar.
    This also involves moving the holidays and week numbers around.

With the script updated viewing the S2 course site now reveals the following. Dates and weeks updated.

S2 2015

Broken links

The institution has a “check course” tool that performs a range of checks. Problems it picked up in the newly rolled over course included

  • Cross-course references
  • Reference to missing activity

22 problems were identified, all to be fixed manually. Most were due to the tweaking of paths I did last semester which broke links.

Other manual changes

Teaching team details – need to remove the folk who aren’t teaching in S2. The institutional system for “teaching team” does this automatically, but it has some missing functionality, including

  • No space to add a “Advice on specific request” section.
    i.e. when students are looking for how to contact the teaching team, they often want to ask the same question. A section like this allows some additional advice and scaffolding.
  • No space for “personalisation”.
    The institutional version only offers the standard contact details and qualification information that is present in the institutional database. It doesn’t allow a staff member to personalise their part of the course site. e.g. to explain exactly what they do in the course and more importantly take a small step in creating a relationship with the students.

Week order for study schedule and “jump to” – the change in week numbers for specific topics needs to be manually adjusted. That’s done, but a problem

Build the scaffolds

A number of the activities are based around discussion forums. Students have to complete an activity and share the end result in a forum. Many of these includes example responses (often only seen after the student posts their response). Most of these come from other students in the offering, but a small number are provided by me. I need to manually copy these over from the last offering.

But it appears that the institutional SSO is playing silly buggers. Will have to complete that task later.

What do you do with Twitter?

I was sitting in the first tutorial for EDC3100, ICT and Pedagogy yesterday when I overheard a student ask another, “What do you do with Twitter?”. There are many answers to this, this is what I did with Twitter this morning.

Learn – seek and sense

Primarily I use Twitter to seek out new information.

According to my Twitter profile I follow 544 people. That doesn’t mean I ready everything that they post. I have created a number of Twitter lists. Most of which I don’t really use any more. e.g. I’ve stopped using course twitter lists.

The one list I pay more attention to is the inner-circle. It currently has 100+ people I follow. This is a fairly random collection of people who currently tweet about stuff I find interesting. Stuff that I try to keep abreast of (but typically fail).

This morning when I first started up the laptop, there were around 180 tweets from this inner-circle. Given I had some time this morning, I skimmed through those tweets looking for some interesting stuff. Some of what I’ve found so far includes the following.

First I spotted the following re-tweet from @clairebooks

Mentions digital literacy and some changes to the Welsh curriculum. Digital literacy is something we touch on a few times over the semester in EDC3100. In fact, next week we mention the somewhat related ICT General Capability in the Australian Curriculum. What’s happening in the Welsh context provides an interesting comparison with our own context.

@shaned07 tweeted about an article in CIO about a presentation given by the CIO of the Queensland department of education.

The presentation talks in glowing terms about the success of their “ERP” system and its associated dashboards. I’m somewhat skeptical of the claims of such systems. ERPs almost inevitably leave huge gaping chasms between what people would like to do with them, and what they actually do. Dashboards are something I’ve learned to dislike a lot. However, the CIO is also saying some good things in terms of the importance of the teacher’s judgement with what is shown in the data.

This is interest because it is both a research interest of mine (I’ll be spending a fair bit of the next couple of days kludging together various institutional systems to get access to this type of data about EDC3100) and also of relevance to the topics we cover in EDC3100. Evidence-based decision making and data analysis are an increasing interest of those who decide what’s important for pre-service teachers to learn.

I’ve also been following along with @palbion’s tweets from the SITE conference in Las Vegas. Lots of interesting things to ponder from there.

Digital renovation is a growing interest of Peter and I, so I’ll need to follow up on this.

I also found out that at least one student seems to be progress okay with the course

And just as I was finishing up this post, I came across this from @courosa

This has me thinking about how many of the #edc3100 folk would make the connection between the mathematical concepts and the dance moves. It makes me wonder whether this is a way to bring in a tool like GeoGebra into EDC3100.

And lastly I liked (and smiled at) this re-tweet by @markdrechsler

It speaks to me of similar statements I’ve heard where management “blame the teachers”, the teachers “blame the students”, and IT people “blame the user” for not responding to some plan in the expected way.

Twitter helps seeking

All of the above are examples of something that I would not have come across without the network of people that I follow on Twitter. Cultivating a diverse network of people who are interested in different things and take a different perspective from me, helps me in seeking out new and interesting ideas. It sparks thoughts and possibilities that would not have been possible otherwise.


And in keeping with the PKM process I’ve also shared these tweets. This post is one example of sharing the tweets and what I do with them. I’ve also shared the links provided in some of these tweets to the EDC3100 Diigo group.

The article from CIO has also been tagged with a tag that links it to some research I’m doing.

The link about digital literacy is something I need to revisit in a little while and consider how (and if) it can be integrated into the EDC3100 learning paths. There’s some potential for a discussion around the shift from ICT to digital literacy, what it means, and whether it’s a good thing.

What did I do with Twitter?

I’ve generated a couple of ideas for activities for EDC3100. In fact, this blog post will also find its way into the next learning path as an example of what you might do with Twitter, but also as an example of a blog post.

And identified some additional avenues of exploration around research issues.

I learned about some work that’s going on around education from across the world. Generated some ideas for my teaching, but also for my research. Perhaps most importantly, I smiled.

And the day is still young.

The edc3100 "inspirational posters"

The following is a work in progress intended to record the “inspirational posters” that I use on my course website. Mainly so I an remember what I used and why.

Inspirational posters??

Rather than take up the space “above the fold” on my course site with reams of text or less than useful navigation icons, I have moved toward a model with minimal text and an “inspirational” post for each week of semester. The idea is to provide something that is interesting, not text-based, and related to what the students may be doing/thinking in any given week.

The following image shows the current state of the course site.

edc3100 - 2015

I know have to think about whether there’s any good way of moving the “general” forums from the top of the site without losing functionality.

Start whinge

I’m learning to detest the intrusion from folk outside of my course into the learning space for my course. This week the “fish” block appeared in the left hand column. These are two links to various support sites created at a program or institutional level. The intent is that they will aid students and improve their learning. My hypotheses is that their impact is low (few students use the links) and this is partly because they are just plonked on the edge of the learning space and are not integral to the learning process for the course (a process which, in this course, points explicitly to these and related resources at a time appropriate to the learners.

And don’t get me started on “Fac of Bus, Educ, Law & Arts”. It’s bad enough when organisational restructures create conglomerations of disparate organisational units, let alone when they are inflicted upon learners who really don’t need to know that my course (and their education program) belongs to the “Fac of Bus, Educ, Law & Arts” and not USQ (the institution they enrolled to study at). Especially when it takes up huge amounts of limited space in the bread crumbs navigation space.

Which of course is all related to the broken idea of “consistent course websites”. It is especially ironic given that as I write this post, one of my students in EDC3100 (a course for pre-service teachers title “ICT and Pedagogy”) has just shared the following comment via Diigo on this reading for the course

There is no such thing as a one size fit all approach to learning or teaching and no individual student or teacher should stop talking and working out better ways of learning and teaching together.

(Note: semester starts tomorrow, so this opinion is the outcome of the students learning prior to joining this course and being infected by my views).

End whinge

Previously I’ve used Diigo to keep track of what I’ve used, but it’s time to be a bit more explicit.

Week 0 – orientation

Here’s the first image I’m using this semester. It’s used during “week 0” the two weeks between when the institution opens course sites to students and the start of semester. In this course, it’s the “orientation and getting ready” period.

To be a teacher by ecmp355, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  ecmp355 

The photo is from one of the students taking a course taught by @courosa. The quote is

To be a teacher is not to have all of the answers, but instead to be the first person willing to learn — Tyler Mantyak

Tyler appears to be using his own quote in the image. Love it.

The connection with my course is that many students find it a challenge. Especially in the first couple of weeks. This quote might help them remember that they need to be willing to learn and that learning is typically pretty hard. If they are finding the course a challenge, then maybe it is because they are learning (and not that the course is badly designed and implemented).

Week 1 – ICTs, PLNs, and you

For the first week I think a bit of Proust is called for.

Discovery of Wisdom by ecmp355, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  ecmp355 

This photo (as with many) is also taken from a @courosa course. Continues the theme of taking responsibility for the journey. Also links nicely with the use of “learning path” as the metaphor for the weekly journey students have to go on.

Week 2 – ICT and Pedagogy: Why and What?

One of the aims of this week is to get folk thinking about the broader changes in society that are impacting learning and teaching, and also to start questioning how ICT might change pedagogy. Which means this Dewey quote fits nicely.

Teaching for Tomorrow by ecmp355, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  ecmp355 

Week 3 – RAT, SLIC, Curriculum, Copyright and Digital literacy

A bit of what is apparently Proust this week. A nice constructivist type of a quote that does capture the intent behind design of the course. Not sure how effectively the course achieve that, but at least the intent is there.

Discovery of Wisdom by ecmp355, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  ecmp355 

Week 4 – Effective planning

This week marks a turn of focus toward unit planning as a mechanism by which to demonstrate the design of ICT-rich learning experiences. The focus on planning means that the Lewis Carroll quote in the following is a nice fit

If you don’t know where you are going, any road will get you there…”

As yet we don’t really engage with questions like, is it ok for any road to get there? Is it possible to really know where you should be going in a class of 20+ learners?

Road to Your Own Success by ecmp355, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  ecmp355 

Week 5 – Learning experiences

The aim this week is to get the students thinking about the design of ICT-rich learning experiences. Trying to encourage them to turn off the old style of teaching.

Week 6 – Finishing up the unit plan

The last week spent on developing a ICT-rich unit plan and a small dig at formal education. By this stage the learners are all probably a bit jack of the formalism that comes with unit plans.

Week 7 – Professional Experience

Keep Calm - it's on the lesson plan

This week has focus turn toward preparing for Professional Experience. Where the learners head out to schools and try to put some of this into practice. Mostly in the form of designing and implementing ICT-rich lessons. Teaching in schools is always just a little scary.

Week 8 – Digital Citizenship

One of the aims of week 10 is to move students beyond the “it’s too dangerous lets avoid it” focus of digital citizenship into one where it has it’s risks, but also it’s benefits, and we should all be able to leverage the benefits.

Week 9 – IWBs and CLEM

This week the focus is on how to develop the knowledge required to effectively design ICT-rich lessons that amplify and transform student learning using what ever random ICT is available within a specific classroom context. We focus on this because next week the pre-service teachers head out on Professional Experience. i.e. they are in a classroom having to teach ICT-rich lessons with whatever ICT is available in that classroom. CLEM is a framework designed to help them identify the Communities, Literature, Examples and Models that are available for the ICTs that are available. CLEM is designed to help them develop the knowledge they need. Hence the link back to the image first used in Week 0.

Organising a change in session time

The next iteration of the ICT and Pedagogy course I teach is about to start. We’ve struck a small problem with one of the campuses, the person being employed to run sessions on that campus can’t make the scheduled time. I need to ask the students when would be the best time to reschedule the session. The following summarises how I’ll do this with Doodle and various other tools.

I’m posting this on my blog to share what I’ve learned about this task. Making this explicit illustrates to the folk in the course one way to make use of blogging. Share your learning, no matter how small or simple you may think it. It may also be of use to some of my colleagues at the institution. It’s also to help demonstrate a process of creatively combining ICT to help with an aspect of learning/teaching.

Two other important points the following illustrates

  1. The digital environment in which teachers (of all types) is littered with concrete lounges.
  2. How we live with those concrete lounges (how we do things with digital technologies) is going to be very different and dependent on our environment, skills, and the available tools (and the affordances we perceive).

    I don’t there are many people that would have completed this particular task the way I have.

The limitation of this example is that it is more a “classroom management” task, rather than a learning/teaching task. A learning/teaching task would involve the application of more pedagogical knowledge in the skills step.

The TEST framework

Over the last couple of years we’ve adopted/adapted Socol’s Toolbelt theory and TEST framework as a way of thinking about this sort of problem. Rachel – a past student – has a post that summarises some of the intent behind this approach.

In figuring out how to do this, I’m going to be thinking about the following

  1. Task – what needs to be done?
  2. Environment – where must this be done? What are the constraints?
  3. Skills – what do I know/have that can be applied to this task.
  4. Tools – what tools allow me (with my skills), in the environment I’m in, complete the task?


Three main steps to this task

  1. Inform the students about the need for a change.
  2. Gather their responses about which time best suits.
  3. Inform them of the chosen time.

In a perfect world, step #2 should also perhaps include the ability for the students to see and perhaps talk about their responses and related factors.


This is a course being offered at the institution that employs me. There’s a Moodle course site to which the students are enrolled. There are also a few other related tools.

It’s still a week and a half from the start of semester. So no face-to-face discussions are possible as the students aren’t on campus yet (generally). There will also be the question as to whether the students are checking their institutional email accounts yet. Plus, I’m at another campus.


Probably the main relevant skill is some capability to use a range of digital technologies.


Moodle messaging

Moodle will be one. It should have some messaging capability that I can use to contact the students (though of course such contact will be limited to their institution email or any forwards they have set up). Can I find that tool and discover it’s affordances?

Nothing is obvious from the institutional Moodle interface. So fall back on Google “moodle messaging” (Of course, I if I wasn’t already aware of this feature and this particular term, I’d now officially be in trouble).

That Google search gets me to the Using Messaging page. It appears this is using Moodle “instant messaging”, not 100% clear that this will email the students. Ahh, the FAQ seems to suggest that messages are only sent as email when the individual have configured their preferences to have messages sent. I wonder whether this can be changed at the institutional level, and whether or not my institution has?

So, not a great fit due to the reliance on students being in Moodle. Can I get a list of student email addresses?

Student records

The institutional student records system does allow me to download a spreadsheet containing student data. The should have email address as part of it.

Ahh, no. Name, ID number, information about the grading basis for the course (which is all the same for all students at this institution and information I already know, why is that included), program, year level, citizenship status, and a column that contains the word “View Student Details”. On the web version this is a link to detailed information about the individual. In the spreadsheet, it’s just the word.

Now that’s real useful. An example of a concrete lounge if I ever saw one.

That spreadsheet seems to be designed as is, rather than for the purposes of teaching staff.

Moodle participants list

Okay, struggling now. Student email addresses are included in Moodle and visible through the participants lists to teacher. In theory you can choose which groups to view. The groups should include campus. Yes it does.

But it doesn’t look like I can download the list of participants to a spreadsheet, or easily extract the email address.

Ahh, and now the super slow response times from Moodle are commencing.

So, my solution is to copy and paste from the HTML page into a text file and use the following ed/vi command (sorry this is really, really nerdy) to extract just the email addresses.
[code lang=”sh”]
:.,$s/^.* ([^ ]*)@([^ ]*) .*$/1@2/

I can then stick that list of addresses into my mail client and send an email.


I used Doodle a couple of years ago. But I couldn’t remember the name. So a quick Google for “scheduling meeting” and hey presto, Doodle is the #1 hit I get back. There appear to be others, but I’ll stick with what I know.

Doodle is aimed at making the process of scheduling events easy. You can set up an online poll, send people the link, and they make their choice.

I could have done this with the Moodle quiz tool. However, Doodle is quicker to use and also I don’t have to add Doodle to the Moodle course site. This could cause some confusion as it’s only relevant to a subset of students, but also because doing so would break the design I’ve used on the course site.

Set up the quiz, time to send the email……there have been 6 responses since the poll was released yesterday afternoon.

How to help improve the Moodle book module

As mentioned in the last post there are limitations in the Moodle book module that are acting as a concrete lounge. The following documents an attempt to help improve the module.

In the end, I’ve made some serious steps to contributing a bit of code to a standard plugin (as I write this, I’m imagining how experienced Moodle folk will shudder at the many misuses of Moodle terms in the following).

Update: The “bug” in the Book module reported below is not a bug. There’s actually functionality in the Book module to support this, it’s just not obvious. More explanation is available.

Task and context

As described in the last post the context is a course website hosted in the Moodle LMS. A course that uses quite heavily the Moodle book module. The module has import function that is meant to allow you to import a collection of HTML documents into a book.

Concrete lounge

The problems with the import process include

  1. Titles for imported titles are 100% from the HTML filenames.
    e.g. call your file “Diigo tool disappears_sub.html” and the chapter title will be “Diigo tool disappears_sub.html”. Rather than “Diigo tool disappears”.
    The _sub is required by the import function to indicate a sub-chapter. The .html is to indicate a HTML file.
  2. The order of imported chapters is based on the order in the file system.
    e.g. If I have the following files to import
    [code lang=”sh”]
    dj:001 david$ ls *.html
    A blog.html
    Diigo tool disappears_sub.html
    The tools we’ll be using.html
    Regardless of the order in which I add these files to the zip file (import is via a zip file), the order that they will appear as chapters in the book is dependent on the order the file system of the Moodle computer creates.
    Even if I create the zip file in the right order
    [code lang=”sh”]
    dj:001 david$ unzip -t
    testing: The tools we’ll be using.html OK
    testing: Diigo.html OK
    testing: Diigo tool disappears_sub.html OK
    testing: A blog.html OK
    testing: Twitter.html OK
    No errors detected in compressed data of
    The first chapter will be “A blog.html”
  3. There is not option to remove all existing chapters before import.
    There are situations where I’m trying to replace the entire book with the import. Currently I have to create a brand-new book resource, or manually remove all the chapters in the current book.
  4. No method for linking to a chapter prior to import.
    If I create the collection of chapters elsewhere, there will be times when I wish to create links between those chapters. Currently there is apparently no capacity to do this.


Here’s what I’ve done so far to address this problem with the resources available.

Process to make changes to Moodle core

This seems to be the process I need to follow for the above which translates into

  1. Is there a tracker issue?
    Via various trails I end up at the book page/section in tracker. Raising the question which versions of the book Module am I dealing with?
    Time to track through the book issues in tracker. Those related appear to be

    • support for re-importing chapters
      Close to what I’m working on. But it’s old. Created in 2008.
    • Book HTML zip incorrect URL
      Picks up on the issue with links between chapters that have been imported. This appears to have been fixed and should be in from 2.5 onwards. Need to check this (NOTE: I haven’t actually tried this process yet).

    Nothing apparent.

    So as a user I can report the bug/make a feature request and then contribute by making a fix. So let’s create an issue in tracker. What type of issue should it be?

    • bug – A problem which impairs or prevents the functions of the product.
    • improvement – An improvement or enhancement to an existing feature or task.

    Either could apply. I’ll be positive and call it an improvement. Issue created.

  2. Which branches should the fix be made on?
    The advice is

    Bugs should normally be fixed on all the supported stable branches that are affected. New features should just go into master, but sometimes minor enhancements are made on the most recent stable branch.

    So where does this fit? I assume a bug or minor enhancement. The other factor is that if I make this change on the version that my institution is using, that will increase the chances that I might get to use it this semester (which are very slim). Of course, it’s difficult to remember/discover which version of Moodle we’re using. I think perhaps 2.7 for now. Which seems to the other supported release.

  3. Develop the change using git
    Prior work contains an example of how to get a version of the Moodle source using git and start making changes. Will start with that.

    My issue number is MDL-49128

    The process I’ll use is

    • Fork the branch of Moodle I want to work on MOODLE_??_STABLE
      [code lang=”sh”]
      dj: david$ history | grep git
      git clone git://
      git clone git://
      git branch -a # what are the available branches
      git remote add upstream git:// # connect upstream
      git checkout MOODLE_27_STABLE
    • Create the branch
      [code lang=”sh”]
      git checkout -b MDL-49128-book-import-fixes origin/master
    • Make changes – see below
    • Testing process
        Has the following files that should be displayed in this order

        1. The tools we’ll be using.html
        2. Diigo.html
        3. Diigo tool disappears_sub.html (this is a sub chapter)
        4. A blog.html
        5. Twitter.html

        Without either fix the chapters will start with A blog.html, Diigo.html etc. through to Twitter.html.
        With the both fixes, the order of chapters should match the numbered list above. Also, the chapter names should not include .html or _sub

        Has essentially the same chapters, however, they are implemented as folders containing a single HTML.
    • Commit the changes to my repo
      This wasn’t as straight forward as I thought. Ended up with
      [code lang=”sh”]
      git remote set-url origin
      git push origin MDL-49128-book-import-fixes
      Which ends up creating this nice little summary on github.
    • Ask the Moodle devleopers to review it
      Updated the issue in the tracker, time to wait and see what I got wrong.

Making changes

I’ve been using the zipfiles approach. A zip file with a collection of HTML files, each file equals one chapter. This is fixed based on previous work.

There is also a zipfolders approach. A zip file of folders. Where each folder equals one chapter.

The order fix is working on zip folders. However, with the chapter names, I’m now getting both the chapter name and the file name. So The tools well be using/The tools well be using. Should the filename or the folder name be used?

I’m assuming the folder name. The book module import code appears to support this. For example when reading HTML files it is looking for default files in the folders. i.e. Default.htm and index.htm. Suggesting that it isn’t assuming that these have the names of the chapters.

That appears to be working.


I have to think that anyone who had used the import function in action – like I tried to do – would have been aware of the limitations of the import function. It just doesn’t seem designed to be useful. Thus it seems logical to suspect that maybe the original designer wasn’t a user. They weren’t solving their own (or someone close to them) problem. Just implementing a feature. Hence they weren’t in a position to know how limited it was.

This distance between implementing the function and using the function seems to be a common feature of concrete lounges. Anyone who has to use a concrete lounge for any length of time is going to be aware of the pain and want to change it.

The fact that this particular bit of pain has stood for so long, has to say something. Perhaps it’s just at the book module is just an unloved child? But it is part of Moodle core now, so it has to be perceived to be useful for some.

Kludging an authoring process with Moodle books (almost)

The following outlines an attempt to evolve the authoring “process” I currently use with Moodle books into something a little more useful. It won’t be the be all and end all of authoring process, just enough to solve the immediate problem I have. i.e. bricolage

I’ve essentially got this working on my end. The problem is that the Moodle book module has a few flaws in how its import function works which means I can’t really use this approach. At least until the book module is fixed. I’ve fixed most of it on my own install of Moodle. Will have to find out how that might happen.

Some related work

As it happens @abelardopardo wrote a post yesterday titled Re-visiting authoring: Reauthoring that touches on the broader problem and offers a solution. Many of the conditions he outlines align with mine, however, my need is more immediate and contextual than what would be need to explore and adopt his solution.

And I remember @timklapdor doing some work around this broader issue last year. Yep, I even commented on his post. A comment that captures some of my disquiet about institutional approaches to solving the authoring problem (I know my institution will be having another go at this soon).

Meaning I’m not trying to solve it at the institutional level. I’m simply aiming to enhance my current practice a bit. An “inside out” approach, rather than outside in.

A better idea

If I had the time I might have modified the approach below so that rather than exporting the Moodle book into HTML files on my computer, I’d have it exporting to pages on my smallest federated wiki (SFW) (and back into the Moodle book). With this approach the SFW version would be the definitive version. It has version control built in at the paragraph level and opens up a range of possibilities of students (and others) being able to fork and work on their own versions of the content. An affordance that could potentially be much more interesting from a learning perspective and in terms of being “open”.

However, the SFW authoring environment doesn’t feel quite as natural to what I plan to use below. That may simply be familiarity, but there’s also the problem that SFW somewhat denigrates the use of HTML and is somewhat limited in terms of presentation and embedding. Why not use SFW, rather than Moodle books? Mainly because the course design currently (and perhaps problematically) relies on Moodle activity completion. Not a function that is available in SFW, nor a function that is sensible in the SFW world-view. It also appears – after a quick test – that SFW doesn’t necessarily play all that nicely with search engines. Meaning that SFW doesn’t solve my big bug bear with Moodle, no search capability.

Deja vu all over again: why?

I do this with some reservation due to a sense of deja vu. Almost 20 years ago as I prepared my first totally web-based course I wrote a set of scripts to help with authoring the web-based study material (thank you the web archive). Tools and an outcome not unlike the approach I’m working toward below and not that far removed (but far more primitive) than those mentioned above.

Why? Why after 20 years this authoring problem still hasn’t been solved? Why do there remain a plethora of disjointed systems and no-one really good solution?

Perhaps mainly because there is a plethora of disjointed systems in which the resources that are authored have to fit. Each of those disjointed systems have different world-views and subsequently sets of functionality. Hence it’s almost impossible for one authoring process to fit nicely into all of them. e.g. the talk above about integrating SFW and Moodle books. Adding more complexity, and touching on the comment I made on @timklapdor’s post, the people who are likely to use, the people that will use these authoring systems come with their own set of world-views, preferences and peccadilloes. The gaps between all these world-views are perhaps just big enough to prevent the wide acceptance of a single approach.

Suggesting that designing or selecting a single system (an outside-in approach) for everyone to use is destined to fail. There will always be gaps between the different world-views. Even if you can get everyone to agree, in a year or so another type of system will arise and there will be another gap to overcome. Perhaps a better approach is focus on what people are currently doing and bridge the gaps (an inside-out approach), which is sort of what I’m doing here.

The problem and context

As outlined in a previous post and shown in the following screenshot my course uses “Moodle books”. Each Moodle book tends to be focused on a specific task and generally is wrapped around external resources.


These books were originally written in HTML using the vi editor and manually imported into Moodle. Last year I made ad hoc changes by using the book module’s “editing” interface. That’s not a great process.

The wish list for what I want from a process

  1. Have an authoritative source HTML file that contains all the content for the book.
  2. Use directories and files to create a structure that mirrors the learning paths on Moodle.
  3. Perhaps in way that allows the content to be put on another website so it can be searched.
  4. Have that structure under source control.
  5. Allow simple updating of the Moodle book.
  6. Benefit from the Moodle migration smarts.
    The Moodle books point to additional Moodle activities (e.g. quizzes, discussion forums) etc that are used in learning activities in the books. When a new offering of the course is prepared, the old offering is migrated. This migration process is smart enough to have the books in the new offering pointing to the activities that belong to the new offering. The “books” in source control wouldn’t be automatically updated this way.

In essence, I’d like to edit the books using vi (or whatever HTML editor etc I end up using) on my local computer. When I’m happy with the book, commit it to source control and import it into Moodle.

In a perfect world, at the start of a new term I’d have a process that dumps the migrated books from the new course site onto my local computer ready for editing and importing into source control.

Exploration and Development

The following documents some exploration of various possibilities that might help achieve the above.

Import and export from a Moodle book

When I started all this either I was aware of, or the Moodle books didn’t have an import facility. Time to play with that as it may be the foundation for putting content back into Moodle quickly.

It appears it accepts each chapter as a HTML file. Which is a bit of a bugger as I’d hoped to work with a single HTML file locally and upload that. Appears I may need some sort of script to produce the format required by the Moodle book. Let’s test this out

  1. Download an existing book.

    I’m doing this by using the “print book” function. This produces a fairly bare HTML file of the entire book that forms the basis for the local copy.

  2. Look at the HTML.
    Diigo/Firefox has stuck a bunch of css etc into it. Remove that.

    • book_summary/title
      classes book_summary and book_info use for entire book information.
    • class book_toc_numbered
    • Chapters are surrounded by a div with class book_chapter, heading 2 used for the title.
    • Sadly sub_chapters also appear to use class book_chapter but with heading 3
    • A collection text/css files are created when saving the printed file.
  3. Import that single HTML file into another book.
    Well that doesn’t work. Apparently an invalid file type. Let’s try removing all the diigo etc crud. Nope that doesn’t help.
    So what about a single section of HTML?
    Of course, it has to be a zip file that you upload. Idiot. So zip file with two html files. One the big HTML from the book itself, and the second a small excerpt.
    So it does the import and presents some feedback – “Importing” “Relinking” and then a continue button.

    Appears to be a very simple import. Each HTML is create as a single chapter. Sequenced in the order found in the zip file.

    What if I import again, but change one of the files to end in _sub.html. This is meant to create a sub chapter. That works as expected. Another two chapters added to the book, exactly the same as the other two. But the test_sub.html has been created as a sub-chapter. i.e. the title of the chapter is taken from the title, but it isn’t smart enough to remove the _sub, even though it knows what _sub at the end indicates. Note: I really should do something about that, looks like it would only take the addition of a single line of code.

  4. Look at the content and develop the script.
    Looks like the script will need to parse the HTML “print” version from the book by

    • Extract all the div class book_chapter
    • for all of those (in order that they are found in the HTML file)
      • create a new file with the following name format NUMBER TITLE{_sub}.html
        1. NUMBER – A number such as 001 to ensure that the order stays the same.
        2. TITLE – the title from the heading 2 or three immediately inside the div.
        3. _sub – if it’s a heading 3 – indicating a sub-chapter.
      • Add in the content of the div into that.

    Also appears like I’ll need to have two separate functions, related to preparing the version of the file to

    1. edit; and
      This would be a single HTML file that I use to edit.
    2. import.
      The one outlined above that would imported into Moodle.

    So which Perl HTML parsing module to use? TreeBuilder::XPath was the most recent I’ve used. But I’m doing jquery a bit recently, so Mojo::DOM is interesting.

    Yep that worked. Script is now producing an EDIT.html file that I’ll use to make changes.

  5. Import the broken up HTML files into another book
    The aim here is to

    1. extract all the book sections from the EDIT.html file
    2. create a collection of separate HTML files containing the contents of each book section
    3. zip up all those separate HTML files ready for importation
    4. remove the files

    Done. Fairly simply. Tried import into the book and it’s sort of worked. The problems to solve are

    1. The inclusion of “.html” in the chapter name.
    2. The inclusion of “_sub” in the chapter name.
      These first two problems appear to be down to how the Moodle book import function works. i.e. it doesn’t remove these, which is somewhat surprising. Have made some initial changes to my local Moodle installation (about line 83 of mod/book/tool/importhtml/locallib.php), but which won’t work on all uses of the module – e.g sub-directories, HTML files with .htm extensions etc.
      [code lang=”php”]
      # DJ’s changes
      if ( preg_match( "/.html$/", $chapter->title ) ) {
      $chapter->title = preg_replace( "/.html$/", "", $chapter->title );
      } # end DJ’s changes

      if (preg_match(‘/_sub(/|.htm)/i’, $chapter->importsrc)) { // If filename or directory ends with *_sub treat as subchapters
      # DJ’s changes
      // remove _sub from title, should be last given above replacement
      if ( preg_match( "/_sub$/", $chapter->title ) ) {
      $chapter->title = preg_replace( "/_sub$/", "", $chapter->title );
      } # end DJ’s changes

    3. The inclusion of #39; (i.e. html entities) in the chapter name.
      This appears to be due to the process I’m using to save and process the exported book files. I need to modify it to decode HTML entities. Easy enough in Perl using HTML::Entities. But I also have to update the heading back in the HTML. Done.
    4. Chapters having no content.
      My immediate guess is that the HTML files being imported still have some of the Moodle book divs etc and that this is clashing. So remove those and test. Nope, that didn’t work. Time to look at the code
      [code lang=”php”]
      if (preg_match(‘/<body[^>]*>(.+)</body>/is’, $html, $matches)) {
      return $matches[1];
      Oh dear, regular expression matching. That’s the problem. It requires a body tag around the outside. Have to love open source projects where you can look at the code. That’s fixed.
    5. Duplicate headings.
      The import file needs to have the heading title and the other book chapter remnants removed to prevent issues. Done.
    6. The chapter numbers still present.
      The Moodle book import processes the collection of files in the order it sees them in the zip file. To make sure that the order is what I want, the filenames start with numbers. The problem is that the import process doesn’t remove the numbers, so you end up with stuff like 2 2 Diigo where the first 2 is from the Moodle book module and the 2nd 2 is from the file name.
      I can’t change the Moodle book module code quickly enough to help me.
      Can’t remove the numbers in my export script as this would change the order of the files imported.
      Leaving exploring the zip function to see if I can specify the order the files should be zipped in the script, without relying on numbers in the file system. Can do this with zip, however, the book module doesn’t play nicely. It looks like it just unzips the file, forgets about any order in the zip file and relies on the order from the file system.
  6. Additional problems
    Of course it’s not going to be as simple as this. A major problem will be that via this process I will lose the capability to correctly link between pages in a book. The import process back into the Moodle book will either actively change links to a Moodle book, or it will ignore them.
    It will also play silly buggers with links to/from other Moodle books. i.e. modifying a book this way will break all other links to the original version of the book.

    Some possible solutions

    1. Have the import script look for and announce links to Moodle books.
      Thereby allowing for manual intervention.
    2. Run the institutional “check course” function to check for broken links
    3. Modify the book module so that the import function supports some sort of variable for pages.
      i.e. the ability to use {TITLE_OF_PAGE} as a link to a page within the current book. Where TITLE_OF_PAGE is the chapter title.

Export all Moodle books

This will have to wait until another day.

A structure that works

Looks like being something like

  • Week folder
    • Book folder
      • ALL.html – the version imported from Moodle.
      • EDIT.html – output of “ ALL.html” ready to edit.
      • – output of A zip file ready to import into Moodle that contains ALL.html split up into the appropriate separate HTML files.


Wait for another day. But I assume the aim would be to have EDIT.html in git with the surrounding structure.

Planned process

  1. Create a folder for each week.
  2. In that create a folder for each book using 001 etc to get order correct
  3. Save a HTML version of the book from Moodle into EXPORT.html in that directory
  4. Run the script which will produce an EDIT.html file in that directory
  5. Make the changes in the EDIT.html file
  6. The EDIT.html file can be kept in github?
  7. Run the script to produce the import version.

To do

  • Look into how to suggest/contribute the following changes to the Moodle book
    • Modify the chapter titles imported to remove the _sub and the .html.
    • Import chapters in the order they are contained in the zip file (if possible)
      The zip stuff is done by lib/filestorage/zip_packer.php. ATM, the book module is simply extracting files to storage. Hence the problem with out of order. zip_packer does have a list_files method that might just provide the list of in order file names that we’re after. This actually works and the book module does use this initially to get the filenames. But it loses the order when it creates a hash with the pathName as the key.

      That’s fixed.

    • Have an option to remove all existing chapters prior to import.
  • Think about the implications of integrating SFW .

Concrete lounge #1 – Helping learners find correct, up-to-date course information

The following is (hopefully) the first in a growing list of concrete lounges that I’ve faced in institutional e-learning. The concrete lounge metaphor is my attempt to explore the reality of university e-learning, to illustrate some possible reasons why it continues to be so wrong, and see what can be done to address those reasons.

The other main reason for sharing what I’m doing. Perhaps some of this might be useful to other, but more importantly I’m hoping to find out what others have done/think and thereby discover better ways to live with the concrete lounges that institutions are providing for learning and teaching.

The following covers

  1. Task – what learning/teaching task am I struggling with.
  2. Context – within which I’m struggling.
  3. Concrete lounge – a list of the tools provided by the institution to fulfill this task – including:
    • No search engine
    • Topic-based sites and course-wide information
    • Scroll of death
    • Keeping information up to date
  4. Bricolage – the tinkering and kludges I’ve put in place to live with the concrete lounges.
  5. Factors – some random, incomplete thoughts about what is behind all this.


The task this post focuses on is

Helping learners find correct, up-to-date course information

Information such as what they should be doing each week, what is the assesment, when is it due etc. Both learning and administrative information. If students can’t find this information it impacts their learning.

There are suggestions that finding such information at my current institution is a concern that has driven some institutional practices.


I have complete this task in the following context.

A 3rd year course taken by all Bachelor of Education students. A course that is offered twice a year. S1 offering with around 300 students both on-campus and online (150+). The S2 offering with around 100 students all online.

The course breaks the semester up into four modules. Each module consisting of a number of weeks as shown by the study schedule below.


Moodle as the LMS. Each topic on the course home page equates to a week of semester. Each week consists of a “learning path”. i.e. a list of basic activities and resources that are designed to get the students started in their learning. The following image shows the learning path for week 1.


Each learning path makes use of the Moodle book plugin (look for the green book like icons next to elements in the above image) to guide students through the learning path. Each Moodle book tends to be focused on a specific task and generally is wrapped around external resources. For example, the “Toolbelt Theory” book in the above prepares the students to read this post and engage in a number of activities. Including the use of Diigo to share thoughts on the post with others in the course).

Concrete Lounge

The following identifies the limitations and problems that arise from the technologies provided by the institution. Some of these problems are huge barriers, some require a bit of creative tinkering that may or may not be immediately visible to many folk.

There is no search engine

Even though I don’t provide a lot of information in the Moodle books mentioned above. There still remains a fair bit of information that is provided on the course.

Moodle – as installed at my institution – does not provide a search engine!!!

This is the standard mechanism for finding information on the web. Students can’t use it on a course site.

Topic-based Moodle course sites and general information

A Moodle course home page can only use a given list of formats. The most common formats are to structure the course either by topic or week. Essentially a sequence of topics/weeks each containing a collection of activities/resources related to that topic/week.

This raises the question of where to put activities/resources that are important to the course, but are not specific to a particular topic/week. In my course such information includes: the study schedule overview, assessment information, information about the teaching team, a link to register/track blog contributions and a couple other.

This is information that the students will need multiple times throughout the semester and should be able to find it quickly. The following image shows off a remnant of my initial solution – look at the “Course Content” block in the middle of the page and the links it includes.

Home page

You may also see from the above image that there is also a quite prominent menu in the left-hand column. A menu that appears to point to some of the same information (e.g. study schedule, assessment). This is a new feature of the institutional theme for Moodle that has been rolled out by my university.

It does help address this problem. But amongst other problems I’ve discussed earlier this particular prominent menu provides no scope to add course specific general information. For example, I can’t add a “Register blog – check posts” link.

Scroll of death

The scroll of death is a rather well-known problem with Moodle course sites. If you’re using the topic/week course format and your course has 10+ topics/weeks and each of those topics/weeks have a list of activities/resources, then your course home page is going to be quite long. This requires students to scroll on and on down the page to find where they are and what they should be doing next.

Keeping information up to date – problem

My course is offered twice a year. Institutional policy means that we’re unable to make major changes to the course (especially the assessment) within a calendar year. Workload implications (such as dealing with concrete lounges) mean that even when I do make changes, those changes tend to be evolutionary, rather than revolutionary. Tweaking what’s already there, rather than a holus bolus replacement.

Which means my first step in preparing for a new semester (like many, many other academics) is to migrate the last course site across to the new semester’s course site.

The problem is that littered throughout all of the course information is a range of information that I

  1. have to change; and,
    e.g. assessment due dates, the dates associated with each week of semester.
  2. some that I might like to change.
    e.g. The title for a week. The name and email address of the person in charge of the course. etc.

The problem is that this information is not located in one place. It is littered throughout the course site. For example, the due date for an assignment can be found on the: study schedule, the assessment overview, the assignment page for that assignment, and an ad hoc collection of pages in Moodle books designed to help students prepare the assignment.

As it stands, I need to manually find (remember, no search engine) and replace all occurrences of this information.


Here’s an overview of the various workarounds I’ve employed to address the limitations of this concrete lounge.

No search engine

In the past – as explained in this post – I have manually imported most of the course content into Evernote and made it open to the public. This allows the use of the simple search engine provided by Evernote.

I won’t be doing this in the future. It’s too much work and difficult to keep the information in Evernote aligned with what’s in the course site. I believe it’s also somewhat difficult for students to connect this search result with what’s in the course site.

Topic-based moodle sites and general information

The image below shows the original solution I used (which is echoed in the image above).

A hand-coded bit of HTML is placed in the general section at the top of the course site. The HTML points students to the general information. The HTML is styled to align with the institutional look and feel. As you can see, it also takes up more vertical space contributing somewhat to the scroll of death.

edc3100 2014

As noted above, the institution has rolled out a new look and feel that includes a menu designed to help students find general information. In a perfect world, I’d make use of that menu to point students to the course specific information. Especially the study schedule and assessment information.

Whilst the institutional implementation doesn’t support this type of customisation. It is possible through the use of jQuery (a part of the new institutional look and feel). However, the use of this approach is apparently seen as a potential breech of policy.

Time will tell.

Scroll of death – implementation

The following shot of the next course site shows the addition of “skip navigation” for the weekly learning paths. Near the top of the page the students see an overview of the weeks of semester and can jump directly to the learning path for that week. Each of the links within the skip navigation has a tooltip that tells the student the topic for that week and the dates for that week (the dates are new and are possible due to the tinkering described in the next section). An attempt to help figure out where they were or should be up to.


Keeping information up to date – solution

The skip navigation in the previous screen shot, the study schedule shown above, and the week 1 learning path (also shown above) all display the title given to a week of semester and the dates for that week of semester. Traditionally, I’ve had to manually change all of this information. No longer.

I’ve now implemented a simple “macro” facility. This has been done by

  1. Create a small jQuery/javascript file that
    1. Defines a range of variables and their values.
      [code lang=”javascript”]
      var VARIABLES = {
      // Teaching staff
      CE_NAME: "David Jones", CE_EMAIL: "",

      // Weeks
      W0_PERIOD:"Before 2 Mar",
      W0_TITLE: "Orientation and getting ready",

      W1_PERIOD:"2-6 Mar", W1_LABEL: "Week 1",
      W1_TITLE: "ICT, PLNs and You",

    2. Will perform a search on a web page once it has loaded into a browser, and replace any occurrence of a variable (e.g. W0_PERIOD) with the value (e.g. Before 2 Mar).
  2. Include that file in any Moodle page that contains this type of information.
  3. Replace the “hard-coded” information with an appropriate variable.
    [code lang=”html”]
    <!– this –>
    Jump to: Week: <a href="#1" title="ICT, PLNs and You">1</a> |
    <!– becomes –>;
    Jump to: Week: <a href="#1" title="{{{W1_TITLE}}} – {{{W1_PERIOD}}}" class="dj_title">1</a> |
    Note: Due to the pain in making these modifications each semester the period for a given week was never included in the skip navigation. It was too much work to manually update each link in the skip navigation. However, with this functionality I only need to enter the variable once.

Next semester, all I’ll need do is create a new version of the VARIABLES containing the new semesters values. Changing this one file will then automatically ensure that it is change on all the pages that use this.

Two interesting issues I’m waiting for

  1. Will this use of jQuery generate any backlash from institutional management?
    The very fact that this is my first question says something about the context.
  2. What problems will this kludge generate in terms of students browsers?
    Will all browsers support this use of jQuery. Seems to work on iPads and modern computer browsers. But 300+ students will almost certainly create an issue.


This is just an initial stab. Needs more work.

The argument we made in this paper was that the reason why this concrete lounge exists (and also the reason why I’m able to make these changes) is that university e-learning at the institutional level is informed by a SET mindset whereas my practice is more informed by a BAD mindset.

The institutional practice is driven by strategic aims. Important institutional projects (such as the new institutional look and feel for Moodle) are the focus. It’s what everyone is meant to work toward. Anything that doesn’t fit within the strategic aims is seen as bad or below notice. A strategic project has to work at the level of the entire organisation, and not a the level of an individual course.

I’m not sure that the “keeping information up to date” is a problem that many of those involved in the strategic projects are aware of. If they aren’t aware of it, they can’t solve it.

But even if they are aware of it, it has to be seen as a problem for everyone and as a problem that can be solved within the available resource constraints.

The solution I’ve adopted for the “keeping information up to date” is – as it stands – an solution that just anyone could adopt. Transforming that solution into something that could be used across the institution would require a significant mindshift on a number of fronts from those involved centrally.

Page 2 of 6

Powered by WordPress & Theme by Anders Norén