I recently wrote about the HSCC class that I teach and posted a link to the course's website.  While thinking the other day, it occurred to me that I have yet to write about my experience using Moodle, which powers that website.  Since its such an awesome piece of OSS, I figured that it was worth some space in my blog.  Here we go!

Bottom line up front:  I like Moodle.  I think it can stand to improve, but I think it's pretty far ahead of Blackboard.

What's to Like?

Where do I start?  I spend most of my time teaching courses, so I guess I'll start talking about what an instructor sees.  The first really cool thing is the topic outline -- you can choose how many topics/weeks are in your course and prepopulate them.  You can hide and reveal them as you see fit, which makes it easy to recycle material from course to course.

The lessons are pretty cool little bits -- within a lesson, you can make a sort of blog post.  You can then attach several objects to that blog post, such as a quiz, assignment, document, poll, and so on.  The tools to add these items to your lesson are pretty easy and intuitive.  You can even add wikis and forums

The "forums" (Moodle-speak for message boards) are pretty neat, too.  The front page by default is a message board.  So, what makes it more like a message board than a blog post?  For one, you can have the post emailed out to everyone that's subscribed to that forum.  By default, all registered users are enrolled to the front page and each student is enrolled to the News Forum within each course that they're taking.  There's even an "oops" feature.  By default, the forum will wait for 30 minutes before mailing out your post, which gives you a chance to fix anything that you might have slipped by you until after clicking the "submit" button.  The recipients of this email get a neatly formatted HTML message that gives them a copy of the post.  The user can then reply directly to the poster via email or on the forum.  Unlike (some) blog posts, these forums support threading -- they can easily carry multiple questions or discussions per post.

The quiz feature quickly became one of my favorite.  Each course has a pool of questions.  These questions could be multiple choice (with multiple answers or partial credit), true/false, free-response, matching, calculated (like a math or physics problem), and a few other types.  For the numeric, calculated, multiple choice, and true/false, the quizzes auto-grade themselves.  They can even leave specific feedback for students based on their answer.  You can give them multiple attempts, each one resulting in a different amount of partial credit.  When giving the quiz, Moodle can even time the student and mix up the questions for you, helping to cut down on cheating.  The free response question types are pretty cool, too.  An instructor gets to leave some piece of feedback (which is displayed on the student's grade report) along with the grade.  You can delegate grading to another instructor (such as a TA).

Assignments are the last of my favorite features.  Some of my assignments require students to write free responses or to create HTML or Java files.  The assignments activity (these objects are all called activities in Moodle-speak) allows me to easily receive text or files from a student.  I can do things like set hard or soft limits on the due dates.  Once I've received the assignment, I can grade it, leave feedback, select a grade, and have Moodle notify the student.  Slick!

What's to Hate?

Most of what I hate lives on the administrative back end.  The biggest of these is the plugin system.  CMSs like WordPress and Drupal allow you to upload packages that it can unzip and install. You can't do that with Moodle yet -- you have to unzip your own packages and carefully place each component in the appropriate folder.  What a pain!  You need SSH or FTP access to the server to add any functionality.  I hope this changes soon -- this really puts me off.  There are so many good plugins that I'm hesitant to install, such as Facebook integration, tag cloud generators, and many others.  I'd rather wait for an improvement in the plugin system rather than attempt an iffy operation.

The default roles that exist work well, but I would like to see some others.  I and many others teach high school kids.  It'd be nice if there were an easy way to link parents and students so that the parent gets all (or some) of the same notifications that the students gets.  Its a bit of a pain to set things up so that parents can see their student's grade.  I understand that plugins exist to do this type of thing -- see my first complaint.

Themes -- there's a bit of a sore point.  Moodle comes with a few default themes.  Most of them are pretty horrendous.  There are a few that look nice, but they're not very customizable.  Drupal and WordPress (especially with the 3.0 release) allows themes that offer options to the user, such as certain colors or the ability to set a header image.  No one wants to go hack some code or have to use (S)FTP to upload a new header image -- yuck!  I'd rather just leave my site with the default looks than to go through that.

Conclusion

Despite Moodle's weaknesses, I still think that Moodle is a great piece of software.  Its fairly (some menus get confusing) easy for an instructor to use and still manages to maintain its power.  Its served me well this year, and I'm sure it'll continue to serve me well.  I like it more than Blackboard and was happy that it came with most of the functionality that I wanted.  The last thing I wanted to do was try to use WordPress, Drupal, or Joomla with plugins to provide the additional functionality -- I want it all in one place and out-of-the-box.  Moodle did that for me.  Great job, Moodle devs!

- bstempi