Category Archives: English

Thinking out loud: Generating social graphs from RSS in an Open Course

Well, this "thinking out loud" thing is something I'm not really used to (I'm trying to learn), so please bear with me.  I'm not even sure if I'll be able to say what I'm thinking, for that matter...   That said...

Last year I offered my first open course ever, called e-Learning (ELRN).  It was supposed to be an exploration of the present and future (at a local level) of technology in education.  And I decided I wanted it to be open, and also that I wouldn't use a LMS.  I wanted to do something similar to the things Stephen and George did with CCK08, but I didn't have the infrastructure to make that happen.

Following David, Alec, George and Stephen, I chose a wiki as the platform to publish the weekly activities of the course, and blogs as the main reflective tool for students.  The decision didn't have to do with the technology, but with the reflexive processes that it allows, based on my own experience.  Blogs would be the publishing platform of choice.  The discussion wouldn't happen in centralized discussion fora, but in each participant's blog. It would be decentralized.

Also, given the characteristics of my own context (Colombia), where there are not that many education blogs online, and most of us are not power users, I wanted to make access to the info produced in the course as easy as possible.  Participants would be able to get info by e-mail, and those who felt comfortable with it, by RSS.  To participate in the course would not require to login in a specific platform to access content, and it should be a real possibility to send and get information by e-mail.

So all these intentions led me to find ways to collect all the info generated in the blogs, and distribute it by e-mail.  That led me to work a bit with Pipes, something I hadn't done before.   The first product of that work looked like this, and I talked about it in another post:

At the end of that post, I noticed some limitations that I was still trying to figure out:

  • How do I analyze all the data coming out of the course? If I wanted to see the progress/evolution of different participants, what kind of tools should I use? Is it possible to do it with the pipe I have now?
  • Feedburner is not flexible enough with the mail subscriptions. I'd like every participant to decide whether she gets a daily or real time notification.

As I went through ELRN, something else proved difficult: How could I (as a facilitator) keep tabs on the comments of formal students?  Monitoring every comment in every post was, clearly, a daunting task...

At the end of the course I tried to generate, by hand, some sort of analysis of what happened, including posts frequency and the blog comment network generated along the course, which was possible thanks to the small number of participants.  That network looked like this:

So I realized that such a graph could be very useful to monitor the participation in the course, and to detect (and maybe do something about) people who were not being part of the conversation.  It could be used as a "lurker detector", so to speak.  Nevertheless, I told myself, in order to be useful you would have to get this kind of info not at the end of the course, but along the road.  And, doing that by hand would be very time consuming.  And that leads me, finally, to this post.

So, What if you could generate such a graph (described as a GraphML file) from a RSS feed?  How could you do that?

Last year I started another open course about groups, networks and communities (called GRYC in Spanish), which for several reasons was postponed for this year.  That gave me some time to think about the problem (but not to solve it).  Here's where I am right now:

(Side note:  I used some of Tony Hirst ideas to generate a map from the GDocs form I'm using as registration for the course.  Here's the pipe and here's the map.  Very cool indeed!)

If we go back to the first diagram, we see that I have a pipe compiling feeds from different blogs.  So I wondered how could I get comments from those blogs, given that there were many people using an already existing blog for the course and tagging their posts, and there were many different platforms being used at the same time, each one with its own approach to comments (WP doesn't have specific feeds for comments in a category, while Blogger does.  Some people use Feedburner for their feeds, which makes impossible to discover a comment feed, and so on).

What I did was to create a new pipe (the second one in the sequence), which takes the first one as input and extracts the comment feed associated to each post, and then gets the items included in each one of those feeds.   Also, I'm getting (using YQL) Twitter messages and comments made in the wiki.  Everything is put together and at the end I have a feed including who said what, and where that was said (blogs, twitter, wiki).  It's quite easy to extend this and include other sources (Google Groups, Moodle fora, or anything that can imported into Pipes).  Now, maybe there's a more simple way to do this but, well, I'm still learning to use Pipes  (for example, can all this be parameterized?).. :D

There is a "dark side" to this.  I still have to do a lot of "maintenance" in the original data, and I have to consider specific cases that made the pipes not as simple as I'd like them to be.  Let's say, someone is using Disqus for the comments, and someone else uses different display names for the posts and the comments in different platforms.  Some comment feeds are not being discovered by Pipes...  It's not nice.  It's not 'clean'...

My basic graph, as shown above, includes people as nodes and comments as edges.  So I still need to know who said what to whom.  I could do this in the second pipe, but I don't want to add any more complexity (that is, processing time) to that pipe.  So, in a third pipe I get results from the second pipe, I process each item, and at the end I have what I need:  I'm putting in each item's title the source and target of the comment (that is, their names) and the date.  Each item still contains the link to the comment, also.

But, where do I go from here?  Some ideas and issues related to the first (blue) bubble:

  • I could write some PHP code to get the RSS feed and process each item, generating a GraphML text file on the fly.   Of course, it could be Java as well.  After all, a framework such as Jung includes a lot of utilities now, even to generate the visual representation of a graph...  But I'm not sure if it processes RSS...
  • Um, but what happens when I do the same process the next day?  Would it make sense, then, to put all the RSS info inside a DB, so I can have even more flexibility later?
  • Maybe having things in a DB will let me include more info in the graph.  Let's say, what if the size of the nodes is tied to the amount of posts generated?  That could be useful too...
  • In the end, having a DB will allow me to split tasks.  One thing is to add info from the feed (a daily process, let's say), another one is to generate a GraphML file from that info.  This could be done on demand, and cached for later use.

But what about the second (green) bubble?  The idea here is to go from the text file to a useful visualization.  We could even thing about creating (automatically) animations showing the daily progress of a course, discovering when new nodes (this is, new people posting) appear, and showing new edges as they emerge.

  • The weapon of choice would be Jung, clearly (I still don't know if something as Cyclone has anything to do with this problem).  With that we can get from GraphML to images, I think.  Now, if we want to create PNG animations, well, I still have no idea how to do it.
  • In any case, I'd have to go back to Java (long time no see!) and learn a lot about a lot of things.  And time seems to be a quite scarce resource...

So, where does that leave us?   You get to extract info from the pipes in "real-time" and generate GraphML files from it (or whatever you want) to show the status of the graph at any given time.  This could help to see who's being left behind in the community (because they're not writing nor commenting, for example) in an easy way, which would help in massive courses.  Actually, you could even send specific e-mail messages based on the configuration of the graph (nice!).

And, where do we go from here?  Well, what if you applied the logic of an Open Course to a whole academic program?  What if participating in a course means just tagging your blog posts with a code for that course?  What if we aggregate everything in something such as Elgg, and keep using pipes to distribute content around (as we see fit)?  Would that look like a more decentralized approach to a LMS? With new monitoring tools, more focused on the interactions? With students having more control of their info?

I just don't know.  What I do know is that this approach, as much as I like it, is not scalable.  And if we want to get more serious about being open we will need, eventually, to provide alternative solutions easy to use for administrators, teachers and students, and analytical tools focused on the kind of things we'd like to observe and foster in our students.

Anyway, keep in mind that I'm thinking out loud here.  This is the second time I'm trying this architecture, so there are a lot of things to improve and many others that make no sense at all.  I'm just trying to figure out if it makes sense to work more on this.  So thanks in advance for your thoughts!   :)

Creative Commons License: Attribution, Share-AlikeA excepción de que se indique lo contrario, este contenido está publicado bajo una licencia Creative Commons.

On the relevance of education

This week, we’ll have our Annual National Forum on Education, organized by the Colombian Ministry of Education. This year, the main theme is the pertinence of education, given that 2009 was declared the year of education for innovation and competitiveness.

As part of my small contribution to this event, I wanted to collect some ideas from people attending the Open Education Conference, and in fact, going around with a camera asking a few questions was one of my purposes there. It was a great opportunity to get some thoughts about a couple of questions: First, is education relevant? Second: If so, how can we make it more relevant?

Clearly, those were ambiguous questions, but that was the idea: To try and get some insight on the views of different people about this, starting with an ill-formed question :D.
The short time allowed for just eight people to answer this question in OpenEd. Here are those eight answers. As you will see, there are very different approaches to the same thing, but I’d say the whole picture gives a great view of a challenging issue. So, there you go (in the order they were recorded):

Brian Lamb

Sylvia Currie

Gardner Campbell

Leigh Blackall

D'arcy Norman

David Wiley

Stephen Downes

Tony Bates

I have to say there are a lot of people I didn’t get to talk with (the first names in my head are Scott Leslie, Chris Lott, Alec Couros, Dave Cormier, George Siemens, for example), but I would be glad to include here any new ideas about this, and about where that lead us.

Right now I'm in the middle of translating all of this (via DotSub) to Spanish, but I'm having a hard time to get what Leigh says at 1:23-1:28. Any help will be appreciated. UPDATE: Thanks to Gardner for helping with "rhetoric"! :D

Thanks to each and every one of you, who accepted to answer this question out of the blue!

Technorati:

My first Open Course: e-Learning’09 (ELRN09)

Like always, I'm having a hard time making myself to write in English, even though I know how important it is, especially after OpenEd.

This post is meant to talk about the first Spanish Open Course that I get to offer (actually it's the first one, no matter the language :D ), which came from an invitation by University of La Sabana, in Bogotá. They contacted me a few months ago, inviting me to do a course on their master on educational informatics program. I accepted on one condition: It would have to be open.

So here I am, a few months later, after thinking a lot about its design and discussing it with a few people (I *really* need to learn about creating/designing in public), and obviously getting ideas from the work of people like David Wiley, Alec Couros, George Siemens & Stephen Downes and Leigh Blackall.

The course already have 14 for-credit participants, and about 20 more participants taking it without certification. We have people from Spain, El Salvador, Mexico, Peru and, obviously, most of the participants are from Colombia.

For now, I'll talk about the technology I'm using, because I think maybe it could be useful to someone, and also it would be great to get feedback on it. There are two things I wanted to achieve with technology: First, I wanted to do something that could be replicated by each participant (which means only non-paid tools and no hosting); second, I wanted to facilitate access to people who are heavy e-mail users. Also, no walled gardens but a public approach (bye bye Moodle), trying to get participants to work on their own personal learning environments throughout the course.

So this is a view of the things I'm using. Detailed info below:

Participants are asked to create a blog on any available service. It is suggested to find for ways to do e-mail publishing, so they don't have to go to any website or use any additional tool.

Once the participant has a blog, she has to register it in the course wiki, which has a Google Docs form embedded. They have to include in their registration the RSS feed for their blog.

The GDocs document is then plugged into Yahoo Pipes via a CSV output. The pipe gets all the feeds and create one single feed, which I'm sending to Feedburner. I'm using Feedburner, actually, to create the possibility of an e-mail subscription, and obviously, to get a little control over subscription statistics.

This way, participants think about RSS aggregators only if they want to. They can have an e-mail subscription, which sends a daily message with a compilation of the posts compiled by the pipe during the previous day.

I'm getting the final RSS feed and I send it to twitter via twitterfeed. There's an user (elrn09) which publishes this feed and also the things compiled in a Diigo group created for the course.

There's also a Google group created, which is not being very popular at the time. I kind of understand this, because participants are not necessarily heavy Internet users, so even creating a blog can seem a daunting task for some of them.

Some interesting thing about this:

  • The pipe (a very simple one, actually) can get input from any set of RSS feeds (For example, I thought at some point about asking people to get Google Reader accounts and then sharing the posts they found interesting. I could get all the RSS feeds from those Shared items pages, and change the pipe to find the "most read" items in the course. Of course, this faces the problem of getting valuable items lost if they are not shared enough times. In the end, I decided it would be a new layer of complexity for most participants, so I forgot about it)
  • After setting up their blog and subscribing to the feedburner feed, people can go back to use the tools they're used to (I'm guessing e-mail is a weapon of choice for most of the participants), both to publish and consume information from the course.
  • I "cloned" the whole set-up for another course I was starting, and it was a reasonably quick process. So it is easily replicable.

Some limitations, and things that I'm still trying to figure out:

  • How do I analyze all the data coming out of the course? If I wanted to see the progress/evolution of different participants, what kind of tools should I use? Is it possible to do it with the pipe I have now?
  • Feedburner is not flexible enough with the mail subscriptions. I'd like every participant to decide whether she gets a daily or real time notification.
  • I can't do something like the CCK09 Daily, where some items get to be commented before reaching the participants. That would be nice.

So far, so good. During the first week, I had to keep looking at the feeds that were registered, because some participants would write their blog URL, not the feed URL. Also, some of them registered feeds from existing blogs, so I had to suggest them to label their posts, in order to retrieve just those entries. To "keep clean" the feed, I had to go every now and then and update the source for the pipe, extending the cell range to include the URLs that had been verified already. Some maintenance work that can't be avoided, I guess.

But after that, everything works perfectly. I guess a OPML file could be generated (and it would help later with analytics, definitely), but so far is something I don't think participants are really needing...

Anyway, I have to confess that I still need to understand much better the way Pipes works. I feel that I'm missing a lot of interesting things that could be done, because of my limited knowledge. However, I'm happy because it looks like it works!

Later, some thoughts about the way the course goes. Definitely, there are a lot of limitations created by our context, and the level of actual use of several technologies that seem common-place in other countries. I'll get to learn a lot about what's possible and what kind of things can be done to make these kind of experiences good learning opportunities.

We'll see how it goes! :D

Technorati:

What will I do at Open Education 2009?

The Open Education Conference sponsors made available three travel scholarships for people attending this year's conference. The requirement to apply is to write a blog post answering two questions, so I guess that's a very good excuse to write again in this blog, that has been a little abandoned in the last semester (mostly because I do prefer writing in Spanish, obviously).
 
Anyway, these are the questions:
 

  1. What you would “bring” to the conference? What can you contribute?
     
    Well, I have an already accepted proposal, so based on that I'll say that my contribution is the story of an experiment that we have done with about 700 higher education teachers, that has started to go mildly viral ;). The interesting thing about this experience is that it goes beyond the mere discourse about Learning Objects or OER, exposing participants to a connected/connective learning experience. I'd say it can be a valuable demonstration (that, of course, we expect to improve with the feedback from the attendees) of how can we 'walk the talk' regarding the use of technology in our daily practice.
     
    Something else: In the past, I've had some experience reporting events like this in Spanish, so that's something else I will do during the conference. You can expect me to provide information related to OpenEd to the Spanish-speaking community, both via Twitter and my blog. I also expect to be around with a video camera, asking participants about their thoughts on the pertinence of education. That's the general subject of a national forum that the Colombian Ministry of Education will have in October, so I intend to collect and publish online the ideas and thoughts of people around the world, to enrich our own perspective on this critical issue.
     
    I think of myself as sort of a "bridge builder"... I'm convinced of the importance of helping non-English speakers to get access to many current discussions that have a huge impact on the way we think about learning and the role of education, so I think that attending OpenEd will be, for me, a good opportunity to help bringing a lot of different and interesting ideas to an educational community that can make good use of them.  
  2.  
  3. What you see as the most critical issue facing you in your efforts around Open Education, and how you think the conference can help you address it?
     
    This has to do with something else that I'll definitely bring to the conference: lots of questions. The OER / Open Education movement is just starting in my country, and there are a lot of issues that we'll be able to address through the participation in this conference. For example, since 2006, we have a national work in progress around LO (that I helped to design), so we are facing the usual problems related to sharing resources among institutions, and how to use them in an effective way in teacher's practices. I think OpenEd will a good opportunity to enrich our current approach to this subject.

    Now, on the other hand, I think Open Education (in general) has a huge potential to improve the way we think about both teaching and formal education. I believe that the possibility of getting first-hand knowledge about the issues faced by institutions and new initiatives around the world could be useful to build a strong case for Open Education in a country like Colombia, helping us to go beyond the mere content approach, to explore the political and economical issues involved.

    Finally, it won't be fair to end this without saying that going to OpenEd is, clearly, a fantastic opportunity to meet a lot of people that I have read over the years, who have helped me change the way I see the world. I'll be really honored to be there.

So, that's it. That's my reflection about the things I can bring to OpenEd, and the things I expect to learn about. I hope it makes some sense…! :)