Herding cats and losing weight: the vimeo video

Posted in PsFramework, elearning, herding cats, icddu, innovation, presentations, reflectivealignment on December 23, 2009 by davidtjones

This is in part a test of WordPress.com’s new support for Vimeo video. The video below is of a presentation I gave at CQU this year. The abstract is below. The slides are on slideshare.

Abstract

The environment within which Universities operate has changed significantly over recent years. Two of the biggest changes have been a reduction in state funding for universities and, at the same time, an increased need for universities to demonstrate the quality and appropriateness of their services, especially learning and teaching.

Consequently, most universities have developed a range of strategies, policies, structures and systems with the intent of improving and demonstrating the quality of their learning and teaching. This presentation will draw on the metaphors of herding cats and losing weight to examine the underlying assumptions of these attempts, the resulting outcomes, question whether or not they are the best we can hope for, and present some alternatives.

The video

Shaking up e-learning “design” – little help?

Posted in bim, elearning, icddu on December 23, 2009 by davidtjones

This is a plea for pointers, suggestions and direct assistance.

It arises from the confluence of at least three separate threads over the last couple of days:

  1. Some talk on Cloudworks about motivating teachers to use technologies;
  2. A blog post and associated presentation about bringing aspects of game design to boring tasks; and
  3. My current task on developing BIM, particularly the interface.

The premise

It’s moderately difficult to motivate students and staff to engage with e-learning technology. Most e-learning technology has boring, if not actively complex and disheartening, interfaces. Insights from game design and other areas offer an opportunity to make some improvements which may in turn help make it more likely for people to use and enjoy e-learning technology.

The difficulty

Most e-learning technology is designed by techno-nerds (e.g. myself). Most nerds suck at interface/experience design.

My current designs for BIM illustrate this quite effectively. But then so do most of the interface/experience designs that I see with Moodle activities/modules. Let’s not get started on some of the commercial LMS/VLEs.

One of the reasons BIM is designed to allow students to use external blogs (like WordPress) is that the interface/experience design is just so much better.

The desire

There’s a definite experience gap between the students/staff using an external blog service like WordPress and then having to come back to occasionally use BAM/BIM. It would be great to try and make the design of BIM engaging, different, fun, interesting….More like WordPress.com and vimeo, perhaps even better.

The first iteration won’t achieve this goal. Timelines too short. But playing with re-designs that draw on these principles would be an interesting, and hopefully fun, little project.

Little help?

Given that I currently suck at this type of interface/experience design, I need a little help in the shape of books, blogs, websites, interested folk and general advice on what principles might guide such a project.

Please make suggestions below. Feel free to volunteer.

Resources I’m already aware of:

BIM – cron and view student details screen

Posted in bim, icddu on December 22, 2009 by davidtjones

In the last bit of BIM work I’d successfully created some test data and laid out some rough plans for what is next.

The aim of this post is to document the bit of work done on the show details screen up and going. The initial work on the screen was documented here. This post draws on the test data, adds some support functions to manipulate it and improves the screen.

Should be fairly simple.

What’s to be done – testing the test data

First, things first. There’s an error when I view a BIM as the old student I was using for testing. Perhaps it is time to test out one of the new students.

Choose one of the students enrolled in one of the courses, use the dummy password and we’re away. Get into the course, click on the bim activity and get an “error getting feed for” error.

This error comes about because the feeds aren’t getting automatically updated/mirrored yet. So the attempt to look at the local RSS file fails.

At this stage, I could probably kludge this up and/or write the section of BIM that should do the updating – i.e. run from cron. That’s what we’ll do.

Moodle, activity modules and cron

So now begins the trawl through the Moodle resources to find out how to run/define cron activity from an activity.

The version.php file in each activity defines a cron value, which appears to identify how regularly to do something. The question is what?

This appears to be answered here with the details being that this value specifies how regularly (in seconds) to run the modulename_cron method defined in the lib.php file.

What to do?

The bim_cron function basically has to check all the current bim activities that are being mirrored, for all registered student feeds, it has to attempt to do a mirror on the feed URL and the copy of the feed on disk. Some pseudo-code

$mirrored = get_mirrored_bims()
foreach ( $mirrored as $bim )
{
  $students = get_registered_feeds( $bim );
  foreach ( $students as $student )
  {
    mirror the feed;
  }
}

One of the problems in writing this is the testing of the code for the above. Running from cron complicates the testing, so I’m going to run it from the show student details screen while under development.

Most of that is all working. Just working on the question of doing the mirroring process.

Implications

Looking into this has led me down the path of using the SimplePie caching mechanism for maintaining the local versions of the RSS files, rather than the original method. This has resulted in a few other changes in how the rss is retrieved, but it’s all working.

As a result some of the necessary changes to the show details screen happen automatically.

What’s next

Some minor tasks related to the show details screen to do:

  • Do something about the link between the question ID and the question name in both Marked answers and All posts sections.
  • Double check the display of the “All posts”.
  • Add in the link to posts for Marked Answers.
  • Re-do the interface to be Moodle like.

BIM – Creating the test data, completing dbase design

Posted in bim, icddu on December 22, 2009 by davidtjones

The last bit of BIM work resulted in getting the show student details screen up and going, mostly. Any more of these screens will draw on, at least in part, other data from other tables. Time to get those populated. This will be done using data from BAM currently being used.

Creating the table

Dummy data

Will need some good data for testing. So the plan is to convert some existing data from BAM into the BIM format. Here are the steps.

Get the BAM data

Need to update local versions of the BAM data as a first step. Getting some recent data likely to be most useful.

Complete the creation of all BIM database tables

Need to have these set up before I can convert all the data. Due to the linkages between tables, the conversion process will have to know something about these tables. Last one to be converted is bim_questions. Back to the XMLDB editor. bim_questions will have the following fields (initially)

  • id bigint(10)
  • bim bigint(10)
  • title varchar(255)
  • body text
  • min_mark int(5)
  • max_mark int(5)

Done.

However, Marker allocations: is still a problem. BAM relies on a Webfuse database to track which markers are responsible for marking which students. My current institution is still figuring out/potentially changing how they do this. I could figure out how Moodle does this currently, however, not sure if that will change + it will take more work.

At this stage, the plan is:

  • Convert the existing Webfuse MARKERS_STUDS database into a Moodle/BIM table.
  • Write a support function or two that allows BIM to use (but not manipulate) the data in that table in a way that is independent of representation/format.
  • Use those functions in BIM to get the data.
  • At a later date, modify the support function(s) to work with whatever is decided.

So, bim_markers_students will have the fields:

  • id bigint(10)
    ID for the table.
  • course bigint(10)
    The course ID for uniquely identifying the Moodle course for which the marker allocations hold.
  • marker bigint(10)
    The user id for the marker.
  • student bigint(10)
    The user id for the student.

To populate bim_markers_students with the data from MARKERS_STUDS will require the need to read MARKERS_STUDS, expand out the place markers (ALL, campus names etc), get user ids from Moodle, combine the two into SQL. DONE

This will require the entry of student and staff information into Moodle for the staff/students associated with the courses being tested. This has been done with a bulk upload of a CSV file generated from Webfuse code.

Convert BAM into BIM data

Due to the various connections between the different data, this is probably not going to be straight forward. Here’s a first attempt at the process I think I’ll need to follow:

  • Select the course offerings to bring over. I’m thinking at least 2 courses, currently only have permissions for 1 (but two different offerings of it).
  • Create Moodle courses for those offerings.
    I’m only talking about 2 to start with, so manual creation will do. Done.
  • Create accounts for both the students and the markers.
    This will involve a couple of hundred students. So will have to do the bulk upload thing. So, need to create a CSV file from local data. Here’s an example from the help screen
    username, password, firstname, lastname, email, lang, idnumber, maildisplay, course1, group1, type1
    jonest, verysecret, Tom, Jones, jonest@someplace.edu, en, 3663737, 1, Intro101, Section 1, 1
    reznort, somesecret, Trent, Reznor, reznort@someplace.edu, en_us, 6736733, 0, Advanced202, Section 3, 3

    Need to extract all student accounts from local data and have username=student number, contact data and populate the course information (DONE). Staff will be much the same but different username.(DONE).

  • Enrol the accounts in the courses.
    DONE as part of the bulk upload.
  • Convert the BAM_CONFIGURE (bim) data for the offerings I’m going to include. — Actually, this will be creating bim activities in the courses.
    DONE
  • Convert the BAM_QUESTIONS (bim_questions) table.
    DONE
  • Convert the BAM_BLOG_STATISTICS (bim_student_feeds) table.
    DONE
  • Convert the BAM_BLOG_MARKING (bim_marking) table.
    Need to know the question ID for a given question in Moodle. i.e. translation from what question ID is currently in Webfuse and what has been created in Moodle. Hard code a hash will probably be the quickest way. Webfuse doesn’t use ID, it uses the title of the question. So, somewhat of change there. DONE

Where to now

So, I think that means I now have a good collection of test data on which to build the rest of the screens. The task now is to start working my way through those screens and getting them implemented/tested with the current data. Thinking the order should probably be:

  • Get the show student details screen working as much as possible.
  • Get the show posts and show details screens working for staff.
  • Get the marking screen done.
  • Get the re-allocation screen done.
  • Get the configuration screen for coordinator done.

That should get BIM very close to completion.

Supporting curriculum mapping?

Posted in icddu with tags , , on December 21, 2009 by davidtjones

The following was initially written as a report for my current institution. I’ve removed the name of the institution here. It is my perception that most universities suffer from the problems described below.

I am particularly interested in answers to the following questions:

  • Is there any university that has done curriculum mapping well, broadly (i.e. at least one program, perhaps multiple) and consistently over time? Who are they?
  • What methods/tools have been used for curriculum mapping?
  • Is curriculum mapping really worth it? What’s the evidence?
  • What other theories, tools and practices might help increase the success of curriculum mapping?
  • What other barriers and hurdles get in the way?

Summary

The absence of any standards or support for the act of curriculum mapping is a flaw in the practice of learning and teaching at this university. It creates risk in a number of practices, including but not limited to: the accreditation of programs; implementation of generic attributes; understanding the student experience; and, the collegial discussion of an improvement to the curriculum of programs.

In 2006 the Australian Universities Quality Agency (AUQA – http://www.auqa.edu.au) released a report of its quality audit of the university, which included a number of recommendations. The implementation of curriculum mapping with support from appropriate processes, resources and systems is a key component of any institutional response to recommendations #6, #8, #12 and makes important contributions to recommendation #5 of the institution’s 2006 AUQA report.

It is suggested that:

  1. The institution should prioritise the implementation curriculum mapping through the provision of appropriate resources, processes and systems.
  2. The aim should be to embed the production and use of curriculum maps into the everyday practice of learning and teaching, rather than simply adding yet another process or system to be used by academics.

The rest of this document covers the following topics:

  • What is the problem?
  • What is curriculum mapping?
  • How might it be done?

What is the problem?

Few, if any, of the programs (a collection of courses/units that make up a degree, e.g. Bachelor of Science) at the university have an up to date overview of their program that shows how students are prepared for and assessed in terms of the program’s learning outcomes, the course learning outcomes and associated graduate/generic attributes or skills.

Those programs that do have an up to date overview almost certainly have an impending visit from an accreditation agency. That looming visit has almost certainly required a frantic, and likely fruitless, search for the documentation produced for the last accreditation visit followed by a process of asking current academics for up to date information on the courses they teach and the resources, activities and assessments they use in those courses. Those individual reports are then collated by a central person or group and presented to the accreditation body. This process is to be repeated at the next visit.

The problems associated with current practice includes, but is not limited to:

  • loss of knowledge;
  • duplication of work;
  • little or no knowledge of how one course relates to another;
  • almost certain development of duplication and holes in the curriculum;
  • no ability for people teaching within a program and those charged to help to understand the overall picture;
  • no ability to provide the overall view to students; and
  • many more.

What is curriculum mapping?

Curriculum can be defined as

a sophisticated blend of educational strategies, course content, learning outcomes, educational experiences, assessment, the educational environment and the individual students’ learning style, personal timetable and programme of work (Harden 2001).

The curriculum represents the expression of educational ideas in practice (Prideaux 2003).

Curriculum mapping is a representation of the different components of the curriculum in order that the whole picture and the relationships between the components of the curriculum can be easily understood (Harden 2001). Curriculum mapping displays the essential features of the curriculum in a clear and succinct manner (Prideaux 2003) and provides a context for planning and discussing the curriculum (Holycross 2006).

Curriculum maps ensure that decisions about the curriculum are not made in a vacuum. Curriculum maps are a key requirement for curriculum development, which includes identifying professional development needs of academic staff, as curriculum maps provide the necessary information to identify the requirements of a particular course and program. Curriculum mapping provides an object that can help academic and other staff communicate about the curriculum of a course (Holycross 2006). Mapping is a remarkable tool for communication among teachers (Jacobs 2003).

Recommendation #8 in AUQA’s audit report of the university (AUQA 2006) is

AUQA recommends that the university encourage a more collegial approach to curriculum development, which will both stimulate and incorporate scholarship and research and philosophical discussions about quality education

Curriculum mapping is most prevalent within the primary and secondary education sector. However, curriculum mapping within tertiary education has been advocated and driven by the generic skills movement (Sumsion and Goodfellow 2004). Curriculum mapping is also quite common within medical education (Romkey and Bradbury 2007). The entries (The University of New England 2004; University of Queensland 2004; Murdoch University 2007) in AUQA’s good practice database that mention mapping are generally associated with mapping of graduate attributes – a small component of curriculum mapping.

Recommendation #6 in AUQA’s audit report of the university (AUQA 2006) is

AUQA recommends that the university develop strategies to systematically embed its generic skills and attributes into the curriculum, teaching and assessment practices of the University such that the CQU experience is of a consistent quality and is comparable with universities nationally

How might it be done?

Although the generic skills literature provides examples of final products of curriculum mapping, there is surprisingly little guidance concerning the practicalities of the processes involved (Sumsion and Goodfellow 2004).

This section describes how to do curriculum mapping by looking at:

  • process;
    The basic steps involved in curriculum mapping.
  • difficulties; and
    Some of the factors that complicate and reduce the effectiveness of curriculum mapping.
  • systems.
    The tools and approaches used to implement curriculum mapping.

Process

While there is not a standard process, a curriculum mapping exercise will normally include some or all of the following steps:

  • data entry;
    Typically the course designer or coordinator will provide information about the course including: its resources, activities and assessment and how those link with outcomes and attributes. Some work has been done where students complete the curriculum maps (Romkey and Bradbury 2007).
  • confirmation or triangulation;
    In some, but not all, mapping exercises this information is then confirmed either through an independent check by a third party or through triangulation with other data sources such as students.
  • synthesis, comparison and analysis;
    The resulting course maps are then brought together to enable comparison and analysis of the overall curriculum.
  • sharing; and
    Curriculum maps and the results of analysis are shared with a wide array of interested parties including accreditation bodies, staff teaching within the program, support staff, students and management. Within the school sector such maps are also available on the web to parents.
  • response.
    Some form of action is undertaken as a result of the analysis.

These steps should be embedded directly into the standard teaching practice within the organisation and this is, at least theoretically, what happens in schools. It appears that in higher education this is typically a one-off process. A long term commitment to mapping can only come by infusing the process into the culture of the program (Holycross 2006).

Difficulties

This is perhaps because developing and implementing a curriculum map is not an easy task (Holycross 2006). It is not the straightforward, unproblematic task so often portrayed in the generic skills literature (Sumsion and Goodfellow 2004). Driven by government requirements, university initiatives around graduate attributes remain patchy with the best outcomes being the production of “curriculum maps” which have the potential to foster superficial and ineffective approaches to the development of graduate attributes (Green, Hammer et al. 2009).

Some of the difficulties arise due to:

  • tensions between accountability and autonomy;
    Curriculum mapping promotes accountability (Daniels 2005) and can be seen as a top-down attempt at control that can give rise to staff resentment (De La Harpe and Radloff 2000). A commitment to a collegial approach within a climate of facilitation, trust, autonomy and transparency is necessary for effective curriculum mapping (Sumsion and Goodfellow 2004).
  • workload issues.
    If curriculum mapping is to be undertaken effectively, recognition of the time demands on all involved is necessary (Sumsion and Goodfellow 2004). Failure to recognise extra workload is the main problematic institutional influence reported by staff (Gonzalez 2009).

The potential impact of audit instruments and processes, like curriculum mapping, can achieve the opposite of their intended effect (Power 1994). It will be especially difficult in an institutional context where, despite rhetorical changes, promotional and payment systems have yet to convincingly reward teaching equally to research performance (Green, Hammer et al. 2009).

Systems

The majority of curriculum mapping at CQUniversity has been performed with traditional tools such as pen and paper and basic software applications such as Word and Excel. In terms of mapping graduate attributes – a subset of curriculum mapping – Sumsion and Goodfellow (2004) report on the use of Excel spreadsheets at Macquarie University, Murdoch University developed a web-based tool called GAMP (Murdoch University 2007), and the University of Queensland appeared to use word processor documents (University of Queensland 2004).

The much higher level of use of curriculum mapping within schools has resulted in a number of commercial curriculum mapping systems including: http://www.curriculummapper.com, http://www.techpaths.com/, and http://www.rubiconatlas.com/.

Choice of an information system for curriculum mapping must consider the time it takes to develop and maintain the database, it must not impose an unnecessary burden on academics (Holycross 2006).

References

AUQA (2006). Report of an Audit of the University. Melbourne, Vic, Australian Universities Quality Agency: 72.

Daniels, L. (2005). Integrating technology into teacher education through curriculum mapping: Year three and sustainability. Society for Information Technology and Teacher Education International Conference 2005, Phoenix, AZ, USA, AACE.

De La Harpe, B. and A. Radloff (2000). Helping academic staff to integrate professional skills. Integrating key skills in higher education: Employability, transferable skills and learning for life. S. Fallows and C. Steven. London, Kogan Page. 165-174.

Gonzalez, C. (2009). "Conceptions of, and approaches to, teaching online: a study of lecturers teaching postgraduate distance courses." Higher Education 57(3): 299-314.

Green, W., S. Hammer, et al. (2009). "Facing up to the challenge: why is it so hard to develop graduate attributes." Higher Education Research & Development 28(1): 17-29.

Harden, R. M. (2001). "AMEE Guide No. 21: Curriculum mapping: a tool for transparent and authentic teaching and learning." Medical Teacher 23(2): 123-137.

Holycross, J. (2006). "Curriculum Mapping – An essential tool for curriculum development." The Journal of Physician Assistant Education 17(4): 61-64.

Jacobs, H. H. (2003). "Connecting curriculum mapping and technology." Curriculum Technology 12(3).

Murdoch University. (2007). "Embedding graduate attributes in a course curricula."   Retrieved 3 September, 2009, from http://www.auqa.edu.au/gp/search/detail.php?gp_id=2795.

Power, M. (1994). The audit explosion. London, White Dove Press.

Prideaux, D. (2003). "Curriculum Design." British Medical Journal 326: 268-270.

Romkey, L. and L. Bradbury (2007). Student curriculum mapping: A more authentic way of examining and evaluating curriculum. 2007 American Society for Engineering Education Southeastern Section. Louisville, Kentucky.

Sumsion, J. and J. Goodfellow (2004). "Identifying generic skills through curriculum mapping: a critical evaluation." Higher Education Research & Development 23(3): 329-346.

The University of New England. (2004). "Integrating graduate attributes into UNE courses."   Retrieved 3 September, 2009, from http://www.auqa.edu.au/gp/search/detail.php?gp_id=1608.

University of Queensland. (2004). "Graduate attribute mapping in programs."   Retrieved 3 September, 2009, from http://www.auqa.edu.au/gp/search/detail.php?gp_id=1102.

BIM – Saving/manipulating RSS files

Posted in bim, icddu on December 20, 2009 by davidtjones

In the last post I’d gotten started having the show student details screen actually getting data from the database. One data source this screen needs is not in the database, it’s in the RSS file from the student’s blog that is mirrored on the Moodle site. This post talks about the process about how BIM will be saving, reading and using that RSS file in its operation.

There will be at least two parts:

  1. Identifying the location for the RSS file (and putting some dummy ones there).
  2. Manipulating the RSS files.

Location

As discovered in the last post Moodle works with a directory referred to as moodledata as the file system store. Each course has its own area in a sub-directory based on the course id.

So, the obvious plan would be to put a bim directory in the course sub-directory. Since there may be the case that more than one BIM activity could be added to a course, I’ll put another layer of sub-directories in place based on the bim id. At that stage, we can use the userid, actually, I’m going to go with username (I’m still of the opinion that a support person may still look at the file structure and that the username – which @ my institution is the student number – will be more meaningful than the uid) as the filename and put a .xml extension on the end.

So, the path for my test user (username=david) on my test course (cid=4) and my test BIM activity (bim id=1) would be

$CFG->dataroot/4/1/david.xml

Which means I can put some test data into the file.

Manipulating RSS

Sadly, at this stage, the RAW book I’ve been using only has information about using a Moodle API for constructing RSS files from scratch. For BIM, we need to be able to use existing RSS files (also ATOM and other type of feeds) from existing blogs. So I don’t think this is appropriate. Need to find what alternatives exist within the Moodle community.

I had originally found the magpie rss library. However, it now appears that Magpie is deprecated and SimplePie is preferred. So, looks like I’ll use that.

This won’t be the only place I’ll have to manipulate a student’s feed. So I should abstract this out. Straight procedural and into a library? Or, go object oriented? All my recent experience has been OO, but new to PHP. Might stick with procedural for now.

Next problem is getting SimplePie to parse the feed for this blog as a test. It appears that SimplePie doesn’t like control characters in a feed. The problem here. Remove those and it works fine. To do: Figure out how to handle these cleanly. Need to make this robust.

The SimplePie API is documented online. It has a get_feed_tags function that should fulfill one of the needs for the registration process.

Current status

The show student details screen is now almost fully working – sans any of the normal sanity checking and a few bits to tidy up. Some progress being made.

BIM – Getting “show student details” working

Posted in bim, icddu on December 17, 2009 by davidtjones

This post summarises the work necessary to take the next step in BIM development. As summarised in the last post the plan is to implement the remaining screens roughly complete so that potential users can interact and give feedback. This included the need to start designing and populating remaining database tables.

This post focuses on the implementation of the Show student details screen. This screen is used by students to show what BIM knows about their blog. This includes # of posts, blog url, allocation of posts to questions and any marks/formal comments from academic staff. Two steps:

  1. Create and populate database tables.
  2. Code up the display function.

The question of saving data into the local file system also comes up at the end.

Create and populate database tables

Let’s start with the tables BAM uses:

  • BAM_CONFIGUREHas been replaced with the table bim in BIM
    The table is used to hold details about which course is using BAM.
    ID,COURSE,PERIOD,YEAR,REGISTRATION,MIRROR,STUDENTS_PER_BLOG,REGISTER_DATE,A_TITLE,COURSE_BLOG_PAGE
  • BAM_BLOG_STATISTICSHas been replaced by bim_student_feeds
    Holds details about individual student blogs. The URLs for blog and feed, number of entries etc.
    ID,COURSE,PERIOD,YEAR,STUD,NUM_ENTRIES,LAST_POST,BLOG_URL,FEED_URL,A_TITLE
  • BAM_BLOG_MARKING Suggest replacement with bim_marking
    Holds information about individual student posts that have been allocated to a particular question and eventually marked and formally commented on by a marker.
    ID,COURSE,PERIOD,YEAR,STUD,USERNAME(marker),QUESTION,MARK,STATUS,DATE_PUB,DATE_MARKED,LINK,MARKERS_COMMENT,ANSWER,A_TITLE
  • BAM_QUESTIONS Suggest replacement with bim_questions
    The idea is that the student will have to respond to some specific questions through blog posts. This table holds the detail about those questions. The title, a textual description and some details about how they can be marked (not currently used).
    ID,COURSE,PERIOD,YEAR,QUESTION,MAX_MARK,MIN_MARK,INT_MARK,DESCRIPTION
  • BAM_UNALLOCATED Will probably replace with bim_unallocated_posts
    This summarises the list of posts from the student that have not been allocated to a question. Used in the management process (can’t remember exactly how/why)
    ID,COURSE,PERIOD,YEAR,STUD,LINK

COURSE,PERIOD,YEAR (and A_TITLE) in all of the above is replaced by the bim field/identifier that links back to the bim table. i.e. this is how each course/bim activity relationship is tracked.

STUD is replaced with userid

bim_marking

Looking at the following fields:

  • id bigint(10)
  • bim bigint(10)
  • userid bigint(10) – ID into user table for student/author
  • marker bigint(10) – ID into user table
  • question bigint(10) – ID into bim_questions
  • mark double
  • status (Submitted, Marked, Released) – what about Unallocated?
  • timepublished bigint(10)
  • timemarked bigint(10) – seems to be a Moodle trend to use time as bigint(10)
  • link varchar(255)
  • post text
  • comments text

At this stage, for the show student details screen. This is the only table needed. So let’s create it and do some coding.

Oh, the joys of the XMLDB editor. enum values are defined using quoted (single quotes), comma separate values.

There’s still the question of how to get it to create the tables in the database after adding them in XMLDB. Will need to follow up on that. Kludged it with the SQL generated by XMLDB.

Time to put in some dummy data so that the show student details screen will work. Will use my own blog as the dummy for this case.

Code up the display function

The current hard-coded show student details screen looks like this. This is what I need to code up.

All fairly basic stuff:

  • Identify and retrieve the necessary data from the database.
  • Perform any calculations to generate new data.
  • Display the output.

Only problems getting used to the PHP way.

Saving data in the file system

BIM keeps a local RSS file that mirrors the students’ blog RSS. BAM worked by saving a copy of the RSS file into the file system. I plan for BIM to work the same. So, need to find out how to save data properly into the Moodle file system. Details:

  • Called “moodledata” or the Moodle data directory, outside DOCROOT.
  • Each course will have a sub-directory within that area.
  • Each course sub-directory has 2 sub-directories: backupdata and moddata.
  • moddata is for files associated with activities.
  • moddata contains a sub-directory named for the activity module that is saving the data.

There’s much more being saved there. But this is what I’m interested in.

Seems there is a Moodle library file /lib/rsslib.php that includes functions that allow for the creation of an RSS file from scratch, including giving the file name. Not sure this is exactly what I want here. But close. (More discussion page 189 of the Extension development book)

There are a few other examples to use. Back to that later.

BIM – getting student registration working

Posted in bim, icddu on December 17, 2009 by davidtjones

So, getting back into BIM development. The last post reminded me where I’m up to. The following is an attempt to plan, implement and document some code. Am starting where I left off, with the registration process for students. As part of this process I am finally starting to use the to do list for what it was meant to be used for.

Properly creating the form

The registration screen is being shown for student users. But it’s not with 100% “proper” Moodle code. i.e. it’s not using the forms library. The process is meant to be something like this:

  • Create a separate PHP class that has the detail for the form.
  • Work the code for normal usage/processing of the form into the appropriate PHP file.

I believe, for my needs, this translates into:

  • Create a PHP file in the module directory that follows the template.
  • Use that form in the view.php file.

Create the form

Found a slight difference. The template uses a form where it extends the class moodleform. The example I am using from the quiz module extends the class moodleform_mod. The _mod seems to suggest a special class for use in modules?

According to the xref docs on the forms stuff the moodleform class is a

Moodle specific wrapper that separates quickforms syntax from moodle code. You won’t directly use this class you should write a class definition which extends this class or a more specific subclass such a moodleform_mod for each form you want to display and/or process with formslib.

So it looks like some of the older docs are a bit out of date/wrong. But then docs in the same file suggest otherwise.

A page on moodleform_mod

At this stage, I’m again suffering my standard problem with Moodle. There seems to be no one place or one approach that helps you get an overview of how things fit together. This shouldn’t be this hard.

Moving forward

It was at this stage that I discovered a book that promises to give a more coherent overview of the task of creating an activity module. Initial impressions are okay. The true test will be in the work I describe below.

Using the moodleform class. I’ve been able to get the form being displayed. So, the next steps are:

  • Get it displaying what is required.
    The textual part of this is reasonably easy (I currently believe). Just using the addElement( 'html', $unregistered ) method to add some HTML in a variable. IMPORTANT: The HTML should not be hard coded in a variable. Needs to go in the lang files.

    All this “extra” work/abstraction in terms of form is necessary because of the nice way Moodle handles forms and auto puts it into the database (generally). This requires that the names of form elements match the field names in the database. Will also need to identify what other information needs to be held within the form in order update the database.

    The database table that holds the student registration is called bim_student_feeds and has the following fields

    • id – set automatically when values inserted NOT NEEDED
    • bim – the id of the particular instance of bim being referred to. Will need to use this when inserting. Already have this in view.php
    • userid – should be able to get this from existing structures, no need to be in the form.
    • numentries and lastpost – both can be null/0 initially.
    • blogurl – from the form
    • feedurl – needs to be calculated from the blog url
  • Figure out how to process that information.
    This seems to be quite straight forward. In the view.php there are a couple of if statements to control what is done if the user presses the save or cancel buttons. Have this control flow going already. Just need to add in a bit of checking and the code to check the student’s blog URL and extract the feed URL from the blog and consequently show appropriate error messages and/or insert the data.
  • Get the data entered in the form into the database.
    Quite straight forward using the Moodle database API calls. The biggest question here (and not a real big on) was to double check the “ids” that are being inserted/checked in the database.

Check IDs

The details about where each students’ blog is located, along with some additional information, is stored in the bim_student_feeds table. The fields of this table are listed above. There are three “ids” in the table:

  1. id – the unique id for each entry in table.
  2. bim – id for the specific bim activity, link back into the bim table. At the moment, I believe the assumption is that there can only be one bim activity per course. Will need to check this, probably no reason that there can’t be more than one (from a code perspective).
  3. userid – the id of the user/student for the feed.

To display the register form for students, there is a bim_feed_exists function that returns true if there is already a feed for the student. If there isn’t, display the register form, else display the details of the students form.

Obviously, the registration form code has to insert the appropriate data into the table. At the moment, there is a bit of a discrepancy about how that is working. Due mainly to the ad hoc way the data has been added. Time to fix that.

What should happen:

  • bim_feed_exists should be checking to see if there is already a combination of bim and userid in the table. id doesn't matter, as for duplicate feeds, it will be different. Must change that.
  • view.php needs to insert the right data. And here's the problem. Still hard-coded to 0.

What's done

At this stage the student registration process is working. If by working the definition is that the student without any registered blog URL will see the registration form. They can enter their URL and it will be inserted into the database. There is a list of tasks outstanding here:

  • Blog URL needs to be validated as correct.
  • Feed URL needs to be extracted from the blog url.
  • Some logging of registration needs to be added.
  • Appropriate error checking and reporting needs to happen with the process.
  • .. many more..

Where to now

Again I come up to the question of depth (complete all the necessary detail for registration to work properly) versus breadth (get all of the screens done so I can show folk).

At this stage, I'm leaning towards the breadth approach. I need to show the users of BIM what things are going to look like, even with the chance of seeing it in action. I face this question previously and chose depth, however, now that I've got database/form processing working I'm thinking the breadth approach might work better.

So, the plan is:

  • Design, create and populate the rest of the database tables for bim.
    This will allow some of the "show details" screens to have real data to draw upon. The data will be modified/anonymised versions of real data from BAM.
  • Work through the remaining screens so that they appear to be working but without many of the additional/real working they will need in the end.
  • Release these iteratively to the folk thinking of using BIM next year.

BIM and Moodle development – a more coherent overview found?

Posted in bim, icddu with tags on December 15, 2009 by davidtjones

Today has been a fairly frustrating today with a mixture of organisational “stuff” and an increasing level of annoyance at the state of the public documentation around Moodle development slowing down BIM development. That state is essentially with stuff all over the place, no coherent path through it and regularly discrepancies between advice from different sources, or sometimes the same. But that’s the nature of documentation and open source projects.

The one bright spot today has been stumbling over this book which appears to fill the hole. Even if it is commercial. Having said that, the realease as writing nature of the book and some other aspects (donations to moodle) seems to indicate an enlightened company. On first skim the book looks good. Time will tell. Though, I am guessing that due to the nature of the type of book, complexity of the task and that it’s still being written there will be some rough edges (already submitted my first errata), or areas not covered.

Bugger, small problem. The one aspect I’m currently struggling with (use of moodleform_mod within a Module to create a new form – i.e. not in mod_form.php) is covered in their example. However, the authors have used moodleform and not moodleform_mod as the base/abstract class. I thought that was a no no?

Well, if I take their approach and use moodleform. It appears to get past the syntax errors being caused by my lack of understanding. Perhaps I just need to progress with that until future enlightenment.

So some progress today.

Here come the indicators, wait for the task corruption

Posted in elearning, icddu with tags on December 15, 2009 by davidtjones

Over the weekend it was reported in various media outlets that the Australian government has a new plan for higher education. A plan that includes words like “results-based funding”, performance, targets, quality and “readily available”. They cynical tone that I hope you are hearing, is not solely – or even mainly – due to some opposition to the idea of universities being accountable or effective. It’s mainly due to the belief that I think for the majority of teaching at universities this move will encourage more task corruption than it will actual real improvement in the quality of teaching.

This post argues for that perception. A bit further down (and in the comments), there is an argument against the practice of requiring new university teaching staff to complete teaching qualifications.

Do you agree? Disagree? Do you know of literature, blog posts or people that have argued otherwise? Are there strategies/advice that can be adopted to limit this sort of stuff (beyond what I’ve suggested at the end?)

Results-based funding: some detail

As outlined in this article there will be four broad areas:

  1. Student participation and inclusion.
  2. Student experience.
  3. Student achievement.
  4. Quality of learning outcomes.

The associated discussion paper goes into more detail.

Section 6 of the discussion paper lists the principles “developed to guide the choice of indicators for performance funding arrangements”. The list includes this one (my emphasis added)

be derived from high quality, objective data sources, and where possible collected at ‘arms length’ by an independent body, as well as not easily manipulated;

Part A of the discussion paper then offers more detail on each of the four measures/indicators. Including the provision of exact information about how the measure will be evaluated. The following information is given on page 14 for the Student Experience measure

  • Goal – improve student engagement and satisfaction.
  • Engagement
    • Target population – 1st year domestic under-graduate students.
    • How target will be articulated – Percentage point improvement in retention rate.
  • See the bit in bold in the above list? Yep, Percentage point improvement in retention rate. i.e. if you pass more first year students, you’ll do better. Retention is also used in the “Student achievement” indicator.

    Obviously pass rate is not a measure that can be “easily manipulated”?

    One perspective on pass rate

    A number of years ago, I was told that one part of one university was seriously considering paying casual teaching staff based on the number of their students who passed. It is my understanding that most people could see the problem with this. If people were paid based on students passing, then most – if not all – of the students would pass. Surely, this is an extreme example?

    Trouble is that it isn’t. Lot’s of evidence of this. The following is taken from Tutty et al (2008)

    More insidiously, there was evidence that rather than just inhibiting change, these
    ‘‘quality measures’’ may actually encourage inferior teaching approaches……The solution to the high failure rate was to change the assessment to satisfy the institutional requirements of satisfied students and reasonable pass rates rather than explore an alternative learning and teaching approach – an effective solution in the current higher education environment that encourages the academic to prioritise other areas, such as research.

    Even if it is not as straight forward as connecting payment to passing, the message in the above is that growing importance of certain quality measures will influence the behaviour of individuals. I believe this is essentially what Goodhart’s law suggestions

    any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes

    Oh dear, teaching qualifications again

    It’s with great sadness that I see the following included as a target for the “Quality of Learning Outcomes” indicator

    Agreed increase (n) in proportion of teaching only and teaching and research staff in academic organisation units with a Graduate Certificate in Higher Education or equivalent.

    The obvious assumption here is that if you have a graduate certificate in higher education (or equivalent) you will be a better teacher and your students will have better learning outcomes.

    The trouble with this is two-fold:

    1. The evidence for support of this causal linkage is weak (e.g. Stes et al, 2009).
    2. It ignores the impact of task corruption and Goodhart’s law.

    The first is more difficult to talk about giving perceived limitations in the research. Let’s assume that the connection does exist. What happens when institutions are being encouraged/required to increase the percentage of staff with Graduate Certificates in Higher Education? Goodhart’s law would seem to suggest that the causal connection/statistical regularity will collapse.

    i.e. the staff being forced to complete the Grad Cert will engage in compliance behaviours. They will do enough to get the Grad Cert with the likely outcome that they will not undergo any serious change in their understandings of L&T or in the behaviours. Consequently, student learning outcomes won’t change.

    Better solutions

    This section is included here because some folk complain that I am quick to point the flaws and slow to point to solutions.

    The broadest solution I’ve suggested is given in this presentation. It requires quite a significant mind shift from the current simplistic, quasi-corporate decision making being adopted around learning and teaching to an approach more informed by what we know about complex systems and the motivations and cognition of human beings.

    The simplest solution is embedded in this suggestion on how to improve outcomes on course experience questionnaires. An approach that essentially requires the identification of the smallest changes that can be made to bring courses into line with what we know about student preferences and ensuring that appropriate resources are allocated.

    Another solution I’ve suggested is the REACT process, especially if it were resources the right way. Done correctly, I think it can fulfill one of the main findings from a recent OECD report on teaching quality. i.e.

    Encouraging bottom-up initiatives from the faculty members, setting them in a propitious learning and teaching environment, providing effective support and stimulating reflection on the role of teaching in the learning process all contribute to the quality of teaching.

    References

    Tutty, J., J. Sheard, et al. (2008). “Teaching in the current higher education environment: perceptions of IT academics.” Computer Science Education 18(3): 171-185.