As a small business turns into a large business, its knowledge becomes its most valuable asset. Surely, “time to market” is essential, but information must get out of the corner office just as quickly.
Learning management systems are nothing new, having been an integral part of big business for decades. But with the advent of corporate intranets, learning management systems (also called course management systems) have become more powerful, easier to deploy, and more accessible, easily extended to all employees. However, before open source options became available, learning management tools were proprietary, clumsy to use, and very expensive.
This month, let’s tour one of the best open source learning management systems available: Moodle
Go to the Head of Your Class
When looking for solid learning management system for your organization, there are a number of variables to look for. Outside of the standard questions you need to ask, such as “What are its unique features?”, “What platforms does it support?”, “Who provides support, integration, and upgrades?”, and “How is it extensible?”, you should also review the demonstration installation on the vendor’s web site. Moodle smartly uses itself to demonstrate its features. Moodle is based on the LAMP framework, though it supports for every major database vendor, has a modular and secure construction, and even has the ability to automatically upgrade its own libraries.
One of the advanced features of Moodle is “pluggable” authentication, which lets lets you integrate your own existing security method. Logins, for example, can be checked against an LDAP service. There is also an advanced access control system that allows one account per user, with multiple roles. For example, there are rule sets available for the site administrator, course creator, teachers and students. Additionally, teachers can create a course “key” to refuse access to anyone but actual students. The concept here is that the teacher can distribute the key to the students in person or email.
For course management, Moodle offers unparalleled features among open source solutions. The course creator can organize curricula in several formats, and course activities can include workshops, chats, assignments, quizzes, forums, and journals. There is also extensive logging and reporting of all activity performed by students, making grading easy. Teachers can also define custom scales for grading course activities.
Getting Started with Moodle
Moodle is a well-planned and executed learning management system that not only subscribes to well-established development standards, but also delivers a full-featured, professional product deserving of severe consideration.
Moodle is written in PHP and made available under the GNU General Public License.
Development on Moodle is on-going. The latest stable version, 1.45,
dated May 7 2005, is available on the Moodle site at http://download.moodle.org/
Before getting started, it is important to review the installation requirements. Moodle requires a web server that supports PHP, such as Apache 1.3 or greater. It also requires PHP 4.1 or greater and a working database server, such as MySQL 4.0 with INNODB support. The sample installation included Linux kernel 2.4.21, Apache 1.3.31, PHP 5.0.4, Mod_SSL 2.8.15-1.3.28 supported by OpenSSL 0.9.7g, and MySQL 4.1.12-standard. SSL is strongly recommended if you’re offering courses outside your company intranet. (In some extreme cases, SSL may even be a requirement within your company.)
Download the latest stable release of Moodle and extract the tarball within the DocumentRoot of your Apache installation. Next, create your MySQL database by executing mysqladmin create moodle from the shell. The database tables and data are populated by the installer, which is discussed momentarily. Next, create a special database user for the application to use. Enter the MySQL shell and execute
GRANT SELECT, INSERT, UPDATE, DELETE,
CREATE, DROP, INDEX, ALTER
ON moodle.* TO moodleuser@localhost
IDENTIFIED BY ’h@ckm3’;
At this point, you’re ready to run the installation application and begin configuration of Moodle online. If your install is on localhost
and you’ve placed Moodle directly in your DocumentRoot
, enter the http://localhost/moodle/install.php
into your browser. If you see the “Choose a language” page, then at the very least PHP and Apache are working.
Select a language and continue. On the next screen, Moodle tests your environment. If you encounter any errors here, stop what you’re doing and correct the problems before proceeding with installation. On the next page, Moodle tries to guess your web address and local paths. Do not keep your data directory in your DocumentRoot. If the Moodle installation application cannot automatically create this directory, do it yourself and make sure it’s writable by the user Apache is running as (typically apache or nobody).
Enter your database information on the next screen, making sure to specify the Moodle MySQL user and password that you set up previously. This concludes the initial installation.
Continue on to configuring Moodle on the next screen by reading and accepting the GPL. On the next screens, the database tables are created and populated. Look for permission errors here and correct them before continuing.
If there are no errors, you can specify various configuration options, such as default country, language, and tuning parameters. The default selections here should generally be satisfactory. You might want to change the “noreplyemailaddress” option to suit your system’s requirements. The default option for SSL is off, so be sure to enable it if you want to secure logins with a HTTPS connection. The maximum upload size is determined by the upload_max_filesize variable in your php.ini file. If you need to change this, edit your php.ini file and restart Apache. Click continue to save your changes and proceed to the following series of automatic module configuration tasks and release notes.
The site settings screen is the next area to customize. Here, you can set your title, description, and other customization options. Save your changes and proceed next to the administrator user profile screen. Make sure to enter your correct email address and city.
And with that, you are done! But wait! You need to set up some cron
jobs to send out important Moodle emails automatically. You can test the cron
script by running http://localhost/moodle/admin/cron.php
in Mozilla. If it works, start a shell as root
and run crontab –e
to edit the system-wide cron
*/5 * * * * wget –q –O /dev/null http://localhost/moodle/admin/cron.php
Much like Deep Thought, Moodle is now ready to divulge the secrets of the universe.
Moodle In Action
If all proceeded well, you should now be looking at the homepage for your Moodle installation and should be logged in as administrator. As the administrator, you have access to the configuration menu where you can update site settings, customize the look and behavior of your site and modules, and schedule recurring backups. Take a good look at that backup module. It is quite a powerful and well-integrated means to secure your site, and should be seen as a model for other widely-used open source applications.
To create a course, select the Courses link within the” Administration” block. Courses are organized into categories and the Miscellaneous category is created by default by the installation procedure. Proceed to Add a New Course and edit the settings on screen. Pay special attention to the access controls presented, including guest access, grade, and activity report displays.
Once you create a course, you must assign a teacher. If you haven’t created a teacher yet, you can assign yourself (the administrator) as the teacher. Click the Add Teacher link next to your name to assign yourself. Remember, the assigned teacher can make changes to this course at anytime after creation.
Browse to your newly created course to view the course homepage. Logged in as either the administrator or teacher, you can click on the Turn Editing On button to lay out your curriculum. Within the weekly outline, you can add resources such as text or web pages, along with activities such as assignments, forum, or journal.
There’s also an activity called SCORM. SCORM is a package that subscribes to the SCORM standard for learning objects. Google for” SCORM” to find vendors that create these types of interchangeable learning packages.
The Students link in the administration block allows you to assign the appropriate students to your course. Students can self-create their profile by browsing to your Moodle installation’s main page. Depending on the settings you defined for the course, students may be able to self-enroll into your course. The administrator can also create student profiles or bulk-load students from a comma-separated values (CSV) file. Enrollments can also be handled in many ways, including by the application itself, or even by charging for courses via PayPal. All of these options are available within Moodle’s central administration system.
Each activity that you assign within your course can be indiviually configured for grading and usability. For example, if you want to start your course off with a pop quiz, select the Quiz activity under the “Activity” menu, provide some descriptive details, and make sure to give your students more than five minutes to complete the task with the open/close quiz data range and time limit options. On the next page, start constructing your quiz by selecting a category and subsequent question formats. Keep in mind you can specify different types of questions for each task within your quiz, including the option to bulk load previously created questions from standard vendor formats and XML.
After you create your first activity, such as a quiz, make sure to set up a student user for you to QA your course. Proceed through a few activities as a student, then switch back to the administrator account and test the grading, feedback, and reporting objects. It’s a good idea to include a colleague to test the course. Ask for feedback.
Most learning management systems are bulky, hard to use, and rely on client/server 32-bit Windows clients for administration and student access. What’s great about Moodle is its logical presentation format, teaching philosophy, and overall speedy response and system integration. There isn’t a proprietary platform that matches Moodle’s price and satisfies all major and minor nuances of a professional learning management system.
Take a look under the hood. You’ll see a well-constructed application that adheres to common development standards and supports formats from other vendors. With Moodle, small and large business alike can develop courses for their employees while also delivering a robust experience for paying customers.
Michael Bordash is Linux Magazine’s LAMP Post columnist. Michael is the founder of InternetDJ.com and also provides Open Source IT and media consulting for Fortune 1000 companies. You can reach Michael at