My talk was titled “Will it Blend” and the slides are available on Slideshare, as a PDF ( 4.9MB) and below (no audio unfortunately). If you have any questions about these slides, don’t hesitate to ask them in the comments.
On Friday (14:30-16:00 in room Lincke) I will talk about the use of open source software in corporations. My talk is titled “Open Source: Getting Failure for Free (and Why That Is a Good Thing)” and is part of the “The Added Value of Open Source Solutions in Times of Crisis” session.
Arjen Vrielink and I write a monthly series titled: Parallax. We both agree on a title for the post and on some other arbitrary restrictions to induce our creative process. For this post we agreed to create a design concept for a mobile Moodle application. The concept should include screen mockups. You can read Arjen’s post with the same title here. This month we are delighted to have two guest writers writing about the same topic. Marcel de Leeuwe (read his post here) and Job Bilsen (his post can be found here).
Mobile applications have taken off. This is largely due to the trailblazing work that Apple has done with the iPhone and the App Store. If you have been watching my Delicious feed, you will have noticed that I too have succumbed and will be part of the iPhone-toting crowd (I will write more about me losing my principles later).
Nearly every web service that I use has a mobile application. Examples are Last.fm, Flickr, WordPress, Dropbox, NY times, Paypal and more, the list is endless. Moodle, the web application that I use most often, does not have a mobile app yet. There have been a couple attempts at creating themes that display well on a mobile (such as here). These mobile themes usually try to deliver all of Moodle’s functionality, which often limits their phone specific interaction and their user friendliness. Other applications use JAVA applications that gives people access to specific Moodle functionality (examples here and here).
It would be great to have a true mobile Moodle application. Here are some initial thoughts for a design.
Audience
The audience for this Moodle application would mainly be students/participants. I want the functionality to focus on things that are easily delivered on a mobile platform. I don’t think grading and reporting interfaces lend themselves well to a smaller screen. The things that people like to do with a mobile device are usually: seeing what has happened/is happening, plan and communicate. This Moodle application will enable the users of a Moodle installation to do exactly those things.
Getting rid of the courseparadigm
Moodle is extremely course centric. I have always thought that this has some great advantages, mainly that all the learning is very contextual. Students, however, often have to “multi-course” (doing multiple courses at the same time). A mobile application should make the most urgent or current events, actions and resources bubble to the top. This requires the application to get rid of the course paradigm and show a personal page per user.
People that have used Moodle for a while might know of the “My Moodle” page. This page also tried to pull up the most relevant information for a particular user, but would still display this information on a course by course basis.
This application will consist of four main screens. Each screen has its own icon at the bottom of the screen that stays available at all times. Each screen could of course lead to other screens that take you deeper into the Moodle installation.
1. Recent activity stream
Facebook and Twitter have really taught us the use of activity streams. These pages display short status messages about what is happening in reverse chronological order. Moodle has had an activity stream since its inception: the recent activity block. This block shows what has been happening in a particular course. Examples are forum posts, work being handed in or materials being added by the teacher.
This screen will work in a similar way, but will include all the courses a user is participating in. I would imagine that each update on the screen would include a date and a time, would link to an extended version of the update and would include a user image if the update concerns another user, or an activity icon if it concerns a particular activity. The newest updates would be at the top of the screen and the user would be able to scroll down to see older entries (very similar to Twitter). See below for an example:
You would have to think about each Moodle module and decide what a status update would look like for that particular module. Some examples of events that could trigger a status update:
A forum post is added to a course of which the user is a member.
An activity becomes available (either because it was added or because it had certain time that it would become available, like the choice or assignment activity) or a deadline has passed.
An entry is added to a database activity or a glossary that the user has access to.
A topic or week has been made current by the teacher/facilitator.
A message has been sent to the user.
The user hands in work for an assignment, fills in a choice, starts a lesson, gets the results for a quiz or starts a SCORM object.
A change is made to a wiki page that the user has access to.
These status updates could announce themselves on the home screen in a similar way to how the mobile platform shows that you have new email messages: by showing how many new updates are available.
2. Upcoming events
This screen is also an extension of existing Moodle functionality made course independent. Conceptually it is what you would see if you would scroll up on the recent activity screen. Upcoming events that can be displayed are:
Anything that is in the user’s calendar.
Activities that will become available or that have a deadline.
Courses that will start and that the user is enrolled in.
This screen would look very similar to the “Recent Activity” screen as shown above.
3. Social: contacts, interests and messaging
A mobile device is used for communications and a mobile Moodle application should facilitate that. This screen is an alphabetical list of all the users that a student/participant shares a course with, combined with an alphabetical list of all the interests that a user has put in their profile and all the courses the user is enrolled in. See example:
Selecting a user will take you their profile page. This page will focus on the ways that the user can be contacted. You can message the user from here, call (or Skype) them, send them an email and click on the links to their external websites (a blog, Twitter, Facebook, etc.). See this example:
Selecting an interest or a course will apply a filter to the alphabetical list. It will now only show users that share this interest or this course. It might allow the user to contact all these users in one go (if this role has been given the permission for this capability).
4. Browsing courses, activities and resources
I really like a side scrolling drill down navigation (examples are the way that email works on the iPhone or the “Slider view” on Grazr). A mobile Moodle application should allow the user to navigate to activities and resources in their course by constantly drilling down. This can be done it two ways: course centric or activity-type centric. The application should probably support both.
The first screen shows a list of all the courses the user is participating in and below that a list of all the activity types that exist in Moodle.
Clicking on a course will make the previous screen slide to the left and display a new screen. The first option on this screen will be called “Course overview”. If you click on this you will see all the section/topic summaries, all the activities and resources and all the labels in their correct order (blocks are completely ignored in this mobile application). Below the course overview are links to the overview pages of each activity type. Clicking these will display all the instances of a particular activity or resource.
If you click on an individual activity or resource you will be shown that activity (again by making the screen slide to the left). What is shown here and what interactions are possible is dependent on the activity module. The minimum it would show is the title and the description. This would probably be the case for SCORM modules for example or for “upload a file” assignments. You would not implement a mobile SCORM player, nor will people likely have files for upload on their phone. The one activity that would benefit from being a bit richer would be the forum activity. It should be possible to follow and contribute to a forum discussion from the mobile Moodle application.
Technical considerations
The (start of a) functional design that I describe above will certainly have technical consequences (not to write obstacles). Below some of my first thoughts:
What platform? The nice thing about web applications is that you only have to develop them for one single platform: the platform that the server is using. Of course it would be possible to create a mobile version of a Moodle site, but this would negate some of the great things that a native application can do. We are now in the unfortunate situation that we have multiple mobile development platforms. The two obvious choices for mobile development would be an iPhone app and an app for Android. But what about people who use a Blackberry, or a Symbian or Maemo phone? I have no knowledge of how easy it is to port an Android app to the iPhone, but I do know that multiple platforms will be a reality in the next couple of years. You better write portable code!
Where does the code live? It is easy for Facebook to create an iPhone application. They run a single installation and can have server-side code and client-side code to make it all work. Moodle’s install base is completely decentralised. That means that Moodle installations will have to get some code that will allow a client to talk to it. In the client you will then need to be able to say what Moodle installation you want to connect to. This poses a couple of questions. Will a mobile Moodle app require a special server module? Will Moodle 2.0 expose enough of itself to an external API to make a client like I describe above possible? Should one client be able to plug into multiple Moodle installations at the same time? I am not a software architect, so I would not have any answers to these questions, but they will need to be resolved.
Performance? Moodle’s data structure is course-centric and not user-centric. Moodle currently does not have internal functions that deliver the data in a format that the Moodle client can use. I think that the query to deliver a recent activity feed that is cross-course and has the perspective of a single user is very complex and will create a huge performance hit on the server. Again, I am not an architect, but I would imagine that this requires a special solution. Maybe more push and less pull? More database tables? Server-side pre-caching? Who knows? I certainly don’t!
Roles/permissions/capabilities? Any new Moodle client that uses existing Moodle data (as opposed to new modules) needs to be very aware of any existing capabilities. All of these need to be checked before information can be shown to the user. I am sure this has further performance implications.
Online/offline? A lot of mobile applications cache their information so that a user can continue to use the application even if an Internet connection is not available (e.g. the New York Times app). Even though it might be useful for a Moodle application too, I wouldn’t put any initial effort into solving that problem. Smartphones that have decent application support function well in a context where there is persistent mobile broadband. It is therefore okay for the first version of mobile Moodle application to assume that it is online.
A note on prototyping/mockups
I used the excellent Balsamiq to create the mockups that go with this post. This easy tool delivers quick static results, although it lacks a bit of precision that I would like to have added. Moodle has Balsamiq integrated into the Moodle Tracker, making it trivial for anybody to add a user interface mockup to any issue. There are other tools that could be used to do iPhone prototyping. This blog post gives a good overview.
Continuing the dialogue
I would really like an application like this (or something similar) to come into existence. I look forward to working with other people with a similar interest (bored developers? Google Summer of Code students?). Let’s make this happen! Any and all comments are welcome…
As I write this I am participating in two exciting courses. Each course is an example of how new paradigms for course delivery are coming to the fore in this online world. I will probably write more about both of them in the near future, but will kick off today with just a simple explanation of both courses.
Rapid eLearning Development LearningAge Solutions has developed an online course about Rapid eLearning Development. I am a participant in the pilot group: I don’t have a course fee to pay, but have committed myself to giving weekly feedback so that the course can be fine-tuned.
Part 3D computer game, part social network, part collaborative learning, the ReD course will teach you how to build effective elearning and informal media using leading elearning author tools.
Designed by Rob Hubbard of LearningAge Solutions with input from some of the smartest people in the elearning industry including Clive Shepherd, Jane Hart and Patrick Dunn. This is a course unlike any other, designed to show how great elearning can be and built using tools that you too can master.
The way that this course is created/structured is smart and inspiring (regardless of the content which is good too). The course is made from a loosely coupled set of (mostly) free online web applications.
The core of the course is a private Ning network which has links to all the other parts of the course. This is the place where participants do reflective blogging and where people hand in their assignments and comment on other people’s assignments.
Mindmeister is used for mindmaps that contain the learning objectives for each module, ClassMarker contains a couple of knowledge checks/assessments, Dimdim delivers the web conferencing functionality and there is a 3D game made with the gaming technology from Thinking Worlds.
To me this type of course design shows that it is not necessary to assume that one single tool should deliver the full learner experience. It is perfectly viable to use a collection of tools and use each for its strengths. Once I have finished the course I will post a bit more about my experiences.
Connectivism and Connective Knowledge
This is the second year that George Siemens and Stephen Downes (actually my two favourite learning gurus) organise the “rather large open online course” Connectivism and Connective Knowledge. It is their attempt to destabilise the concept of a course.
The course is open to anyone. You attend freely if you do not need any university course credits, or you pay if you do. The course is decentralised (or maybe “loosely federated” is a better word): the two facilitators set out reading materials and organise a couple of webcasts every week, but the meat of the course is to be found in the discussions that participants have (online in Moodle forums) and the reflections that participants post on their blogs.
A single tag, CCK09, is used by all participants for their posts. This pulls the all the course activity together and makes it easy to find course related postings (e.g. on Twitter or in the blogosphere). By connecting to people with similar interests, it is possible to go on a tangent and explore the things that you want to work on in relation to connectivism and connective knowledge.
A daily newsletter is sent out. This is an edited version of the aggregated posts and discussions and includes commentary by Stephen Downes. Just reading the newsletter is already incredibly valuable.
I tried to actively participate in this course last year, but was not able to keep up with it. It requires a lot of discipline to study this way: there is no passive consumption of information. Instead it requires a lot of effort to select what you want to read and post your reflections. I hope I will be able to do better this year (although things are already not looking good right for that to be the case)!
Jane Hart does the educational technology community a big favour by compiling top 10 lists of learning tools which are send to her by educational professionals from around the world. She creates a top 100 list that is an interesting reflection of current (and past) popular technology in education and learning.
Each year you get a chance to update your own list. I haven’t done that this year, so here goes:
Moodle – This open source course management system is my bread and butter and has led me into the free software world. Its community of teachers and its enlightened leadership is second to none.
Google Reader – The only way that I am able to keep up with the things that I want to read. Outsourcing my subscriptions and read/unread statusses to Google makes it possible for me to use my laptop, my cellphone or any random computer and see the same information. I just wish there was an open source project that would do the same and could run on my own server.
Moodle – This open source course management system is still very much my bread and butter and has led me into the free software world. Its community of teachers and its enlightened leadership is second to none.
Google Reader – The only way that I am able to keep up with the things that I want to read. Outsourcing my subscriptions and read/unread statusses to Google makes it possible for me to use my laptop, my cellphone or any random computer and see the same information.
Ubuntu – My operating system of choice. Not only does it give me the freedom to use it how I want, it is also the source of much learning about how computers work. I see it as a critical enabler.
Google Search – Still the best search technology around. I have a couple of stock queries that I do all the time like “better than x” if I want to find an alternative to x and I can usually find what I need in one or two queries.
Wikipedia – More and more the easiest way to find a piece of factual information. I use a lot of materials from the Wikimedia Commons in most things that I create. Wikipedia has been decisive in many kitchen table arguments.
WordPress – I have been blogging for over a year now and the process of writing for an audience has forced me to think deeper about my profession. Writing blogs could a central part of many courses. It really is a heavily underutilised pedagogical tool. I have to admit I don’t run my own installation, but trust the excellent WordPress.com service.
Chromium – Most of the work that on do on my computer is done in a browser window. Google’s open source effort is now my default browser. This is mainly because of it’s amazing speed and the Omnibox. Read this blog post for more of my reasons.
LAMP = Apache, MySQL, PHP – This technology makes it trivial for a non-programmer like me to create my own tools that do what I need them do. Using the APIs of the different web services I can create my own mashups.
Youtube – This has become an indispensable resource. Stuck in a level on a Nintendo DS game? Type the games name and a level to see a walk through. There are endless tutorials on anything that you might want to learn.
Delicious – The social bookmarking site not only remembers all I have seen that is interesting on the net, but it is also an excellent way of finding many good sites on a topic. My slowly expanding network of del.icio.us friend tag interesting pages for me to look at.
It wasn’t intentional, but I now notice that the only things that are not web applications are an operating and a browser (the bare essentials). That must be of some significance!
Arjen Vrielink and I write a monthly series titled: Parallax. We both agree on a title for the post and on some other arbitrary restrictions to induce our creative process. For this post we agreed to write about a new technology using Linux Format‘s “What on Earth is …?” style (see example on Android). We did not agree on a particular technology and we would get bonus points for a nice pixellated image to accompany the post. You can read Arjen’s post with the same title here.
RSS Cloud? I am getting a bit tired of this cloud computing trend. Yes, I also think that cloud computing is slightly over hyped. However RSS Cloud is not about cloud computing. It is about bringing real-time updates to the RSS protocol.
I have only just grasped what RSS is. Only the technorati seem to use it, normal computer users have no idea. Indeed: most people have no idea what RSS is or how they can use it. They still visit all their favourite news sites one after the other to check whether something new has been posted. However even people that don’t understand it often use it. If you download podcasts through iTunes you are using RSS technology. Furthermore RSS is the technological glue for many of the popular mashup sites. You don’t need to understand a technology for it to be useful to you.
Fair enough, so how would you explain RSS Cloud to a lay person?
Sites that have content that changes often (think blogs or news sites) publish an RSS feed on their server. Whenever a new item is posted it will be added to the feed, usually dropping the oldest item from the list at the same time. If you are interested in those news items you can use a news reader (also called an aggregator) and tell this news reader to check whether new items are added to the feed, if there is an update, then the news reader can retrieve it. A news reader typically does this every fifteen minutes or so. This means the news can be 15 minutes old when you get it. RSS Cloud makes it possible for news readers to subscribe to the updates of a feed. Whenever something new is added the feed, the RSS Cloud server notifies all subscribers so that they can pick up the content immediately: in real-time.
Another buzz word! What is the benefit of real-time? Can’t people just wait a couple of minutes before they get their news? People listen to the radio so that they can hear the sports results in real-time. Weren’t you upset when all your friends knew about Michael Jackson’s death earlier than you, because they heard it on Twitter? The success of Twitter search and trending topics shows that people want to know about stuff as it happens and not fifteen minutes later.
Now that you mention it: Twitter indeed works in real-time. Why do we need something else, what’s wrong with Twitter? Twitter actually also uses a “polling” model for its content. Each single Twitter client will have to access the Twitter API to see whether something new has been posted by the people you are following. This is a huge waste of computer resources. All these clients asking for new information even if there is none. It is a model that does not scale well. A “push” model actually works much better in this respect.
Oh, so it is a bit like the difference between getting your email once every couple of minutes and getting it immediately on your Blackberry? Yes, that is a nice analogy. The Blackberry uses push email. You get the email as soon as it hits the server, because it is pushed to your phone. Traditional email clients, like Outlook, go to the server once every couple of minutes to see whether something new is there.
So what large company is trying to push this idea?
This time it is not a big company trying to establish a standard or protocol. The RSS Cloud protocol is designed by Dave Winer who also drafted the original RSS specification.
Dave Winer, isn’t that the guy that loves to rub people the wrong way? He is a controversial character and is certainly very vocal and opinionated. At the same time, he is a true pioneer and one of those people that embody the values of the Internet. His vision for Cloud RSS is not about blogging. Instead, he wants to provide a decentralised architecture for microblog messages. To him the fact that Twitter centralises all the microblogging activity is a real vulnerability. His goal is to create a network that can work alongside Twitter without being in the control of a single company.
Talking about companies. I suddenly remember hearing about a similar technology. One of these cute names with many vowels? You probably mean PubSubHubbub. This is a Google sponsored protocol that has already been implemented in Google Reader.
Great: another standards war. VHS versus Betamax, RSS versus Atom, Britney versus Whitney. Will we never learn? This shouldn’t become a problem. RSS and Atom for example live happily next to each other now. It is easy to implement both. PubSubHubbub has a slightly different goal in comparison to Cloud RSS. It focuses mainly on blogging and associates itself with Feed Burner. The two technologies should be able to live next to each other, at least that is what Dave says.
Well, let’s hope he and you are right. By the way, isn’t this Cloud RSS just another sneaky way to measure subscribers, generate some statistics and store information about where they are from and what they are doing? It is true that an RSS reader will have to register itself with the the RSS cloud for the protocol to work. However the RSS cloud forgets about the RSS reader if the registration isn’t renewed every 24 hours. You also have to remember that many people will use readers that do not support RSS Cloud. There are much better ways to get statistics.
Aren’t you a learning technology person? What does this have to do with learning?
I am very interested in Cloud RSS because I am a learning technologist! Like all new Internet based technologies it will only be a matter of time before some smart developer finds a way of using this in some unexpected fashion. Remember: technology creates feasibility spaces for social practice! Just think of what kind of course delivery models RSS has made possible: the Connectivism and Connective Knowledge course could not run without it for example.
You are a Moodle evangelist. Does Moodle support RSS Cloud yet? I haven’t checked, but I doubt it. It is very new and the Moodle developers are focusing on getting Moodle 2.0 to a beta release. However, I am sure that in the future, parts of Moodle will move towards real-time. Imagine how Cloud RSS could be used to create activity streams or notify people of comments on their work. It could effectively bridge the gap between asynchronous activities like discussion forums and assignments and synchronous activities like web conferencing.
Ok, you have managed to pique my interested. Where can I go if I want to start using it? There are two ways of using it. First, you can make your own feeds RSS Cloud enabled. If you have blog at WordPress.com this is automatically the case. You can opt-in if you host your own WordPress blog. The other way of using it would be to have an RSS reader that supports the protocol. Currently only River2 supports it and Lazyfeed has announced that it will support it too. Only web based readers can support it, as the RSS Cloud server needs to be able to ping the reader with the update.
Are there any sites that can tell me a bit more?
The current home of the protocol is http://www.rsscloud.org. Here you will find news about the protocol and an implementation guide. The Wikipedia entry could be better. Why don’t you help fixing it?