Search Engine Powered Courses…

How can we use customised search engines to support uncourses, or the course models used to support MOOC style offerings?

To set the scene, here’s what Stephen Downes wrote recently on the topic of How to partcipate in a MOOC:

You will notice quickly that there is far too much information being posted in the course for any one person to consume. We tried to start slowly with just a few resources, but it quickly turns into a deluge.

You will be provided with summaries and links to dozens, maybe hundreds, maybe even thousands of web posts, articles from journals and magazines, videos and lectures, audio recordings, live online sessions, discussion groups, and more. Very quickly, you may feel overwhelmed.

Don’t let it intimidate you. Think of it as being like a grocery store or marketplace. Nobody is expected to sample and try everything. Rather, the purpose is to provide a wide selection to allow you to pick and choose what’s of interest to you.

This is an important part of the connectivist model being used in this course. The idea is that there is no one central curriculum that every person follows. The learning takes place through the interaction with resources and course participants, not through memorizing content. By selecting your own materials, you create your own unique perspective on the subject matter.

It is the interaction between these unique perspectives that makes a connectivist course interesting. Each person brings something new to the conversation. So you learn by interacting rather than by mertely consuming.

When I put together the the OU course T151, the original vision revolved around a couple of principles:

1) the course would be built in part around materials produced in public as part of the Digital Worlds uncourse;

2) each week’s offering would follow a similar model: one or two topic explorations, plus an activity and forum discussion time.

In addition, the topic explorations would have a standard format: scene setting, and maybe a teaser question with answer reveal or call to action in the forums; a set of topic exploration questions to frame the topic exploration; a set of resources related to the topic at hand, organised by type (academic readings (via a libezproxy link for subscription content so no downstream logins are required to access the content), Digital Worlds resources, weblinks (industry or well informed blogs, news sites etc), audio and video resources); and a reflective essay by the instructor exploring some of the themes raised in the questions and referring to some of the resources. The aim of the reflective essay was to model the sort of exploration or investigation the student might engage in.

(I’d probably just have a mixed bag of resources listed now, along with a faceting option to focus in on readings, videos, etc.)

The idea behind designing the course in this way was that it would be componentised as much as possible, to allow flexibility in swapping resources or even topics in and out, as well as (though we never managed this), allowing the freedom to study the topics in an arbitrary order. Note: I realised today that to make the materials more easily maintainable, a set of ‘Recent links’ might be identified that weren’t referred to in the ‘My Reflections’ response. That is, they could be completely free standing, and would have no side effects if replaced.

As far as the provision of linked resources went, the original model was that the links should be fed into the course materials from an instructor maintained bookmark collection (for an early take on this, see Managing Bookmarks, with a proof of concept demo at CourseLinks Demo (Hmmm, everything except the dynamic link injection appears to have rotted:-().

The design of the questions/resources page was intended to have the scoping questions at the top of the page, and then the suggested resources presented in a style reminiscent of a search engine results listing, the idea being that we would present the students with too many resources for them to comfortably read in the allocated time, so that they would have to explore the resources from their own perspective (eg given their current level of understanding/knowledge, their personal interests, and so on). In one of my more radical moments, I suggested that the resources would actually be pulled in from a curated/custom search engine ‘live’, according to search terms specially selected around the current topic and framing questions, but I was overruled on that. However, the course does have a Google custom search engine associated with it which searches over materials that are linked to from the course.

So that’s the context…

Where I’m at now is pondering how we can use an enhanced custom search engine as a delivery platform for a resource based uncourse. So here’s my first thought: using a Google Custom Search Engine populated with curated resources in a particular area, can we use Google CSE Promotions to help scaffold a topic exploration?

Here’s my first promotions file:

   <Promotion id="t151_1a" 
        queries="topic 1a, Topic 1A, topic exploration 1a, topic exploration 1A, topic 1A, what is a game, game definition" 
        title="T151 Topic Exploration 1A - So what is a game?" 
        description="The aim of this topic is to think about what makes a game a game. Spend a minute or two to come up with your own definition. If you're stuck, read through the Digital Worlds post 'So what is a game?'"
        image_url="" />

It’s running on the Digital Worlds Search Engine, so if you want to try it out, try entering the search phrase what is a game or game definition.

T151 CSE promotion - game definition

(This example suggests to me that it would also make sense to use result boosting to boost the key readings/suggested resources I proposed in the topic materials so that they appear nearer the top of the results (that’ll be the focus of a future post;-))

The promotion displays at the top of the results listing if the specified queries match the search terms the user enters. My initial feeling is that to bootstrap the process, we need to handle:

– queries that allow a user to call on a starting point for a topic exploration by specifically identifying that topic;
– “naive queries”: one reason for using the resource-search model is to try to help students develop effective information skills relating to search. Promotions (and result boosting) allow us to pick up on anticipated naive queries (or popular queries identified from search logs), and suggest a starting point for a sensible way in to the topic. Alternatively, they could be used to offer suggestions for improved or refined searches, or search strategy hints. (I’m reminded of Dave Pattern’s work with guided searches/keyword refinements in the University of Huddersfield Library catalogue in this context).

Here’s another example using the same promotion, but on a different search term:

T151 CSE - topic 1a

Of course, we could also start to turn the search engine into something like an adventure game engine. So for example, if we type: start or about, we might get something like:

T151 CSE - start

(The link I associated with start should really point to the course introduction page in the VLE…)

We can also use the search context to provide pastoral or study skills support:

T151 CSE - pastoral

These sort of promotions/enhancements might be produced centrally and rolled out across course search engines, leaving the course and discipline related customisations to the course team and associated subject librarians.

Just a final note: ignoring resource limitations on Google CSEs for a moment, we might imagine the following scenarios for their role out:

1) course wide: bespoke CSEs are commissioned for each course, although they may be supplemented by generic enhancements (eg relating to study skills);

2) qualification based: the CSE is defined at the qualification level, and students call on particular course enhancements by prefacing the search with the course code; it might be that students also see a personalised view of the qualification CSE that is tuned to their current year of study.

3) university wide: the CSE is defined at the university level, and students students call on particular course or qualification level enhancements by prefacing the search with the course or qualification code.

Tags Associated With Other Tags on Delicious Bookmarked Resources

If you’re using a particular tag to aggregate content around a particular course or event, what do the other tags used to bookmark those resource tell you about that course or event?

In a series of recent posts, I’ve started exploring again some of the structure inherent in socially bookmarked and tagged resource collections (Visualising Delicious Tag Communities Using Gephi, Social Networks on Delicious, Dominant Tags in My Delicious Network). In this post, I’m going to look at the tags that co-occur with a particular tag that may be used to bookmark resources relating to an event or course, for example.

Here are a few examples, starting with cck11, using the most recent bookmarks tagged with ‘cck11’:

The nodes are sized according to degree; the edges represent that the two tags were both applied by an individual user person to the same resource (so if three (N) tags were applied to a resource (A, B, C), there are N!/(K!(N-K)!) pairwise (K=2) combinations (AB, AC, BC; that is, three combinations in this case.).

Here are the tags for lak11 – can you tell what this online course is about from them?

Finally, here are tags for the OU course T151; again, can you tell what the course is most likely to be about?

Here’s the Python code I used to generate the gdf network definition files used to generate the diagrams shown above in Gephi:

import simplejson, urllib

def getDeliciousTagURL(tag,typ='json', num=100):
  #need to add a pager to get data when more than 1 page
  return ""+tag+"?count=100"

def getDeliciousTaggedURLTagCombos(tag):
  data = simplejson.load(urllib.urlopen(durl))
  for i in data:
    for t in tags:
      if t not in uniqTags:
    if len(tags)>1:
      for i,j in combinations(tags,2):
        print i,j
  header='nodedef> name VARCHAR,label VARCHAR, type VARCHAR'
  for t in uniqTags:
  f.write('edgedef> tag1 VARCHAR,tag2 VARCHAR\n')
  for i,j in tagCombos:

def combinations(iterable, r):
    # combinations('ABCD', 2) --> AB AC AD BC BD CD
    # combinations(range(4), 3) --> 012 013 023 123
    pool = tuple(iterable)
    n = len(pool)
    if r > n:
    indices = range(r)
    yield tuple(pool[i] for i in indices)
    while True:
        for i in reversed(range(r)):
            if indices[i] != i + n - r:
        indices[i] += 1
        for j in range(i+1, r):
            indices[j] = indices[j-1] + 1
        yield tuple(pool[i] for i in indices)

Next up? I’m wondering whether a visualisation of the explicit fan/network (i.e. follower/friend) delicious network for users of a given tag might be interesting, to see how it compares to the ad hoc/informal networks that grow up around a tag?

Appreciating Games Through Learning How To Make Them

When I was undergrad, I learned to juggle; ever since then, I’ve taken far more enjoyment in watching good juggling because I have an appreciation of just what’s involved.

And going by the evidence of student feedback from the the last presentation of our Digital Worlds course, the same appears to be true of students who are also game players. That is, they have learned to see more in the games they play – and appreciate them far more – from studying how games are designed and developed, as well as marketed and sold.

Anyway, last week I gave a talk about some of the student activities in T151, which is how the course is referred to in OU-land… As ever, the slides don’t make a lot of sense without me there to talk over them, but for anyone who was at the presentation, they may serve as a reminder of some of the key points…

(Hmm – slideshare does appear to be having trouble with my title slides at the moment… There were also video clips of games created by some of the students as part of the course assessment, but I’ve removed those from the slideshare presentation.)

One of the things that seemed to go down particularly well was a video I showed of the interactive Freemind mindmap view of the course:

If you’re interested in what the course covers, peer closely at the above image! The course also includes a weekly activity session where students build their own arcade games, starting with a maze game and moving on to a platform game. The end of course assessment includes the required production of a game design document, and optionally the submission of screenshots and programming documentation for an implementation of the game. Students are also introduced to a variety of quick-to-get-started online tools, such as Xtranormal.

Long time readers may remember I’ve posted on the use of mindmaps for navigating online content before (e.g. MindMap Navigation for Online Courses) but from the talk I got the impression this idea was new to many, which is why I’m re-mentioning it now.

Another innovative characteristic of the course is the way it is structured. Each week is based around one or two topic explorations, plus a practical activity. The Topic Explorations have a regular structure based around resources that are linked to on the public web. This includes content from the Digital Worlds uncourse blog. I’ve been arguing for well over two years now that the uncourse structure is a very powerful one, but most people don’t see it (Canadians seem to be the exception!;-) Anyway, there was a good example of how the uncourse structure supports reuse over the last couple of days, inspired by a post on the Guardian Technology Games blog by Charles Arthur about tax breaks for game developers: OK, so you get tax breaks for video games – now define ‘video game’.

Hmmm, I thought… Hmmm…. There are some posts about that on Digital Worlds, tagged “what is a game”… and lo, a micro-course was born: What is a Game? microcourse, generated as a thread of posts tagged in a particular way.

(WordPress geeks will see the URL includes the WordPress trick I posted recently.)

This idea of a micro-course – a brief intro to a particular or topic, or overview of an area, drawn from OU course content and activities is one I first used years and years ago (Robotics minicourse), so it was nice to rediscover it as an idea. I also think that with a minor bit of tweaking, it could sit very nicely as a model for demonstrating how we might be able to make use of OERs in a really practical way?

Anyway, anyway, the fully blown T51 Digital Worlds course is presenting again for 10 weeks from the start of May, so if you;re interested, there’s still time to register…

Reversible, Reverse History and Side-by-Side Storytelling

Although I tend to live very much in the flow of the web, I also have a memory of (some of) what’s gone before. So for example, there’s a viral video doing the rounds at the moment about the Future of the publishing industry – feel free to watch it, but before you’re tempted to share it, please read on…

Very nice, and maybe not surprising that Penguin Books are behind it, as they were with a whole host of other innovative storytelling techniques two or three years ago (

But when I saw the video I thought: okay, but not that original (and I’m guessing originality was partly the reason why this video has gone viral…?) Because I’d seen exactly the same form and presentation last year in what is arguably a far more powerful story:

Thanks to @cogdog has for finding the original link, as well as an earlier political video it was based on:

This idea of reversible time requires a cleverly constructed narrative of course. On several occasions over the last year, I’ve pondered how to go about constructing such a narrative – the videos shown above give a host of structural clues and cribs to get you started – but I feel that an easy way in might to to take a familiar story and tell it backwards. That is, tell a reverse narrative.

I’m sure this conceit must be a well used one in science fiction, but the first time I (remember) coming across it was in the novel Time’s Arrow by Martin Amis which tells the story of a life, told backwards.

A couple of years ago, Brian Kelly used this trick as a tool for helping out with the creation of risk assessments – The History Of The Web Backwards, who “suggested idea of ‘History of Web backwards to @daveyp in pub in Glasgow on 2 May 06, after a Radio 4 prog which used this idea.” (I wonder if it was this programme, on international datelines, that spurred the idea? Shifting meridians: a tale of time ?)

Another playful take on time is the replay. I’ve posted about this before (Relative Time Replay: History, In Real Time) but the main idea is that we take the real time events from one epoch and replay them at another time. So for example, last year saw a replay of the first moon landing using Twitter, amongst other things, to replay the landing as if in real time. The idea of replay is also behind the idea of the Twitter video captions hack too, of course.

Finally, although not strictly a time based device, I think that here might be a good place to mention side-by-side video storytelling. A great example of this is Duelity which counters creationist claims with an evolutionary perspective, told side by side:

(This resembles the reversible device in the videos above in the sense that each separate video is coherent in its own right, as well as when the videos are played side by side; just like the forward and the reverse narratives in the other videos both work as narratives.)

Digital Storytelling – a whole lotta fun:-)

PS Hmm, maybe I should try to weave some of this into the “Narrative” Topic Exploration in the Digital Worlds course? (Delivered wholly online, now taking registrations for a May 2010 start;-)