Educational Technology, the Users’s Perspective

Last week I spoke at ETUG 2010. My talk was entitled “Educational Technology, the Users’s Perspective”. In the talk I made a case for user-centered design and then explained the perspective of over 96% of the users of educational technology. Below is the video of my presentation (only starts about 1:50 into the video) and read on for a short summary.
Continue reading “Educational Technology, the Users’s Perspective”

WordPress Pro Tip: Getting a per-post Feed in WordPress

For some reason this information is really hard to find through Google. Often in my work at OLT we are trying to reuse remix and redistribute a bunch static content from WordPress sites around our campus. In order to do so we need to find feeds for those sites that are just for one post or page, instead of the updating stream. Here is how to get them:

Simply append /?feed=rss&p=111 to the end of your URL. The 111 in the example should be the ID of the post that you want the feed for.

dev.wpmued is live! Calling all WordPress in education developers to contribute.

At OpenEd09 I was part of a very necessary conversation. We were talking about different ways in which our respective universities use WordPress MU. The consensus was that in order for us to be truly successful we need to be sharing much more. Sharing our frameworks, sharing our plugins and sharing our hacks. Boone Gorges frames the conversation nicely here and talks about what is needed from developers. Enej and others responded by reviving the OLT Dev blog. However, Matthew Gold rightly said this:

But we need to build more lasting channels of communication soon, lest we miss some important connections

So here is my attempt to provide those connections:

WPMU For Education blog

The basic idea is an aggregation blog for “WPMU for education” developers. Jim Groom provided a blog from his WPMUEd domain so that a new channel, dev.wpmued could be created. I used the Add Link Widget with FeedWordPress to turn this blog into an aggregation of content from developers who are working on developing WPMU in education using the method that Jim and I came up with. I seeded it with a few of my often read WordPress MU in education blogs (myself, Jim, D’Arcy, Boone, OLT and CUNY Dev). Continue reading “dev.wpmued is live! Calling all WordPress in education developers to contribute.”

Social Media Classroom – Training wheels that don’t come off.

The Social Media Classroom is a web service created by Howard Rheingold that provides a space for students to engage in many of the most popular social networking activities out there. It includes blogs, wikis, forums, social bookmarks, user profiles and chat. The goal is to provide a very low threshold environment for students and faculty to learn about and to use social media as a way of augmenting the media classroom

Scott Leslie set up an installation of Social Media Classroom the other day and offered for others to take it for a spin. I gave it a try and here is what I think.

The Social Media Classroom does exactly what it says that it will do. The user interface is quite impressive, making thing really easy to jump into.  Sarah Perez on ReadWriteWeb said that “its ease-of-use and educational slant make its introduction an impressive and potentially game-changing move for the educational system as we know it”. I think she would be right, if it were not for some big obstacles that the platform faces. These are:

  1. It seems to be closed off and private by default (although this may have just been the system I used). If outsiders can participate (as has been shown by Jon Beasley-Murray, Jim Groom and D’Arcy Norman) magic can happen. We need to let the world see what students are doing in university.
  2. The “Social Media Classroom” is missing one little word in the title. A game changer would rather be a “Social Network Media Classroom”. Although students can edit their own profiles in the Social Media Classroom, there is no way to form groups or to add people to their network. The network is often the most powerful part of any social media applications and it is a terrible oversight to not include it.
  3. The training wheels don’t come off. This application is great for students who do not know of, or use social media tools. However, it sucks for those that do. They are not able to use their current networks or applications. Most people who have blogs would want to use their own blogs for a class. Or use their own social bookmarking service. These people (the ones who would be very useful in this environment as they could guide their peers and instructors in the use of social media) will feel alienated and resent having to use the Social Media Classroom. If an education-based social media application is ever to be successful it has to provide an easy way for experienced students to show others the tricks of the trade and for novice students to take the wheels off of the bicycle and use real tools when they are ready for it.

The bright side is that these are relatively easy things for the social media classroom to fix. Jim Groom is already taking care of the training wheel problem at UMW blogs with his BuddyPress, FeedWordPress, WordPress and mediaWiki experiments.  UBC’s OLT also has some of this in the works. I’m sure that Drupal is powerful enough to do the same for the Social Media Classroom. The network part simply takes adding some features and making it open… well that should be just flicking a switch.

The Social Media Classroom is a good service and I really wish that more people had taken Scott Leslie up on his offer of trying it out on his hosted server. If you are in education, check out Social Media Classroom. Despite all of my complaints above, I would still far rather use it than any course website that I have ever used (Blackboard or otherwise).  With a few simple, yet fundamental changes, it could just be a game changer yet.

Related from around the web:

UBC WordPress development out in the open

Creative Commons License photo credit: bionicteaching

At OLT we have decided to make our steps to develop the WordPress Multi-user platform into a university content publishing platform more prominent, so as to encourage sharing and collaboration. Before this we were all writing about our development on different blogs dispursed around the internet, but now we will all be putting our thoughts, ideas and code in one place. OLT WordPress Development  now lives on the UBC Blogs site at It is sparse at the moment, but once all of the developers are contributing their work it should fill out quite quickly.

Now if only would get back to us on allowing us to put our plugins in the WordPress repository so they will all be on the main WordPress plugins page…

WordPress as a CMS… Advanced Navigation

Creative Commons License photo credit: drustar

One of the things that is starting to happen at OLT is that we are creating an increasing number of WordPress based websites. Using WordPress as a content management system is not a new idea at all, there are a ton of examples out there of WordPress blogs out there that have been turned into sites. There is however, a dearth of information out there on how to do it (there are some out there… including some in amazing detail from Alan Levine).

One of the things that I couldn’t find was a stable way to create a second level navigation that stays constant for every top level section. The problem with most of the solutions on the forums and sites around is that as soon as you drill down to the third level of navigation the second level disappears. As you can see at I was able to come up with a way to keep the navigation constant. Here is the loop that I had to create:

$secondAncestor = count($post->ancestors) -1; //figure out what level of navigation we are on, subtract one because we don't want to consider the top-level
if($post->post_parent!=0) //if the page is not a top-level category
echo '<h2 class="widgettitle">In this section:</h2><li class="sidebarlist">';
//the following lists children of second level ancestor of the current page.
wp_list_pages("title_li=&child_of=".$post->ancestors[$secondAncestor]."&    sort_column=menu_order&echo=1");
echo '</li>';
else //if the page is a top-level category
//listing only the child pages of the current section
$children= wp_list_pages("title_li=&child_of=".$post->ID."&  sort_column=menu_order&echo=0");
if($children) //this will stop it from displaying a section heading if there are   no elements in the section (for example on the home page)
echo '<h2 class="widgettitle">In this section:</h2><li>';
echo $children;

echo '</li>';


This is the first time I’ve blogged code, I’m not even sure if it is readable… but here’s hoping. Basically I figure out what level of navigation the user is on and then list the pages of the current page’s ancestor… that many levels up (subtracting one for the top level navigation.

I am currently doing a lot of work on using WordPress as a content management system including coming up with plugins and modifications for using WordPress MU as a multi-site manager used purely for websites and not for blogs. Will blog it all once everything is stable and working.

Zemanta Pixie

My Vision for a Semantic UBC

This is my vision as for what we can do at UBC to create an expandable eduglu solution.

Most content will be stored in a wiki. Our wiki will be extended so that we can lock more sensetive pages for certain users.
In order to make our content semantic and to allow it to be remixed in ways that make sense we would use the SemanticMediaWiki plugin for our MediaWiki. A working example of this kind of wiki can be found here.This plugin allows users to define relationships between the article and its content. This data is then Collected and can be navigated in a semantic way. Lists are then also generated and dynamically maintained. For instance in Chemistry someone could define the property “has boiling point” for a certain element. The page for “is metal” will then contain all the elements that have a boiling point (like this example).

Once we have the Semantic MediaWiki the next step is to republish content from the wiki into other contexts. We are still working on exactly how to do this (what tools to use etc) but the basic concept is simple: Use some kind of feed to publish the content in another context (we will probably use WordPress as the new context for most of our services). Then periodically check the feed to see if it has been updated. If it has been updated, then update the republished content. This ensures that not only is content dynamic (like it should be) but it also means that it is searchable and that the server-breaking parsing of hundreds of feeds doesn’t happen all the time. Another step would be to build in a system whereby people who take feeds from the wiki are notified when the content changes (I know the watch page function does that already, but one time users that just wanted to quickly grab and republish some content would need to be informed of major changes to their content). This would create communities of watchdogs around more used content to ensure that vandalism is quickly curbed.

So that is the start. Content is dynamic and open on the wiki. It will be easy to grab content and republish it in other places. It will also have meta data that can used in the immediate term to navigate data and in the long term to drive applications like those created by the MIT simile project.

Examples of course blog possibilities and plans for the future

So here they are, examples of the three kinds of blogs that I outlined in this post, as well as explanations for how to create them within WordPress MU. Jon has kindly let me use his Spanish 312 class as and example, so some of my examples are actually fully populated and active courses. (click on the headings to see the actual blogs)

Ghost Course Blog

This blog uses BDPRSS to output the content of an aggregated feed of the class. I created a widget to add to the list in BDPRSS so students can auto-populate themselves into the course. The other feature that I developed for this blog is an auto-populating class list (with the heading our class). The class list is the reason that I took so long to get these examples up and running. I spent a good chunk of this week working on an “add to blogroll” widget so that students could add links to their blogs in the sidebar. I tried many methods, but just couldn’t get the plugin to work. Gardner Campbell was paying a visit to UBC and while he was showing me some of the successes and issues that he has been having with his course blog Rock soul Progressive I saw that he was using the BDP RSS widget to display comments. A light bulb went on and I realized that I could simply tweak the widget to show a list of blogs in the course. Here is what you have to do:

  1. Create and output format in BDP RSS that contains the same blogs as the one that is being used to display entries in the course.
  2. In the “output format types” section select the radio button that says “list by sites alphabetically”
  3. In “about the items” set “maximum items per site” to 1, check “print site names” and “only display item’s title”. Uncheck “print the item’s age”
  4. in the “XHTML formatting” section, add list tags around “title for each site” and comment tags around “each item’s title”. (see picture )

If you add the BDP RSS widget for the output to the sidebar then you create a class list.

Spam Course Blog

This blog uses a spamblogger (I’m using feedWordPress because it actually updates posts if they are changed in the original feed) combined with BDP RSS to quickly create the course. Basically what happens is a feed aggregated by BDP RSS is fed into the spamblogger and feedWordPress republishes it. I have three reasons why I run the feeds through BDP RSS before I feed them to the feedWordPress:

  1. I’ve already created my Add to BDPRSS widget to add feeds to BDPRSS. If I wanted students to add their own feeds to the spamblogger I would have to create another widget (and the widget would have to be specific to the spamblogger).
  2. BDP works really well with a large range of feeds as well as with a large number of feeds. It acts as a kind of normalizing process, ensuring that each entry is parsed in the same way.
  3. It allows for the auto-generation of a class list as described for the ghost course blog.

Communal Course Blog

This Blog is the simplest to set up and is probably closer to what most faculty members will imagine when they think of a course blog. I simply use the sidebar add user widget to add authors and the Wp-Authors widget to display the class list. Quick and simple. My example isn’t as good as the others simply because all of the content had to be written from scratch (or copy pasted from Wikipedia). K1, one of the work study students at OLT was kind enough to post a few items under different authors to show how this kind of course blog would look.

A fourth option is of course mashing the Spam Course Blog and the Communal Course blog together, thus giving students the option over whether or not they want to have their own course.

If there is anything that I am missing in my thinking here, please let me know.

Some notes on policy and where I’m going from here: As I have been making these ways for students to self-populate a course, the question keeps on coming up “what if people who don’t belong to the course add themselves”? At the moment the sidebar add to BDP widget gives three levels of permission, global (anyone), system (on the same MU system) and blog (subscribers to the blog). I will be working on changing the “add user” plugin to accept a list of people (I’m thinking student numbers or emails?) and check those against people who are trying to add themselves to a blog. This would mean that a professor could just paste a list in the control of the widget and not have to worry about people who are not in the class adding themselves. Then to close off the spam and ghost course blogs one would set the sidebar add to bdp widget permissions to “blog” and display the add user widget forcing students to add themselves as subscribers to the blog first so that they can be checked off against the class list before adding their feed.

Add to BDP RSS WordPress plugin

Here is my first WordPress plugin. It is meant to extend the excellent BDP-RSS plugin by Bryan Palmer. This plugin allows users who are logged in to a WordPress MU system to add feeds to the BDP-RSS feed aggregator from the sidebar. It is primarily designed to allow students to add the feed of their own blog to a class aggregate blog.

Please let me know what you think.


Just download, unzip, then drop the plugin into your plugins->BDPRSS folder and activate in the plugins menu.

Update: For some reason the control is not saving the options properly. I’ll fix it on Saturday morning.

Update: Version 1.2 released.

Changed the way that permissions work.

  • Simplified things by only allowing registers users of the community to add their feeds.
  • Gave admin the option of password protecting a blog so that only users who know the password can add feeds

Download V1.2

As always, let me know what you think of the changed.

Update: Version 1.1 released.

  • Fixed subtitle bug
  • Added control over what type of user can add feeds.
    • Global: Anyone can add a feed
    • System: Anyone on the Mu System can add a feed.
    • Blog: Only a subscriber to the specific blog that the widget is on can add a feed.
  • Made it so that if a user cannot add a feed, they don’t even see the text box.

Download V1.1

Zemanta Pixie