Drupal

Do You Want To Help Eliminate Blackboard?

The Summer of Code application process is underway. Along with some good folks at The Oregon State Open Source Labs, we have put together a proposal to share content between Moodle and Drupal.

In combination with the recently developed functionality to author and export content from Drupal in IMS LOM format, you could author courses in Drupal or Moodle, and use those courses interchangeably in Drupal, Moodle, or any other LMS that imported IMS LOM.

The IMS code, and a detailed writeup, is freely available.

The Summer of Code is open to all college students. If you're interested, apply.

Summer of Code 2008

The planning for the Summer of Code is well underway.

This summer, we're working within the Drupal community, and with the Open Source Labs.

If you're a student, and want to get involved, read over the project lists (linked to above), and submit a proposal. Students receive 5,000.00 for their work.

So, if you're a college or university student anywhere on the planet itching to expand the amount of freely available code in this world, sign up and make a proposal.

Building a Student Portal -- Response to a Question from Miguel Guhlin

Over on his blog, Miguel Guhlin asks:

Anyone have suggestions on how to respond to this question? I welcome all brainstorming ideas...

We are ready to implement a student portal (with teacher and parent portals to follow) for our 1:1 campuses. We would like for this portal to be a web-based, searchable, "pretty"

While "pretty" is subjective, this is one place where spending a little time with either an ID or a graphic designer, or both, will benefit your site. "Pretty" has a frequently overlooked cousin, "Usability" -- sorting out your navigational structures (done in Drupal using the core block and menu items), and making sure your theme enhances these architectural decisions, will often get you both Pretty and Usable, which is a winning combination. Starting with a solid base theme, like Zen, helps you theme your site in a time-efficient way, particularly if you and your team are learning how to design/theme in Drupal. Drupal can be themed pretty effectively via css alone; if you have someone on staff who can work in php, there really isn't much you can't do. Also, if there is one element you decide to outsource, the theme is a pretty good choice.

container for all of the learning materials that we've purchased and/or created for students, including audio books, legal MP3 music files,

The Audio module -- it can generate iTunes compliant feeds, has an embedded flash player, and can be used to create playlists.

clip art, videos and animations,

The Embedded Media Field module (used along with Content Construction Kit, or CCK) allows you to embed and play media from within your site, and embed videos from external sites, such as the Internet Archives/etc. If you want more robust video handling (ie, something that will convert various formats into flv video) use the Media Mover or the FlashVideo modules. In very general terms, Media Mover is designed to work as a media processor with a full harvest --> process --> store workflow; FlashVideo works in a similar way, but has scaled down flexibility for storing media on external locations. Either FlashVideo or Media Mover will get you a site that, to the end user, feels like a YouTube clone.

For most cases, Embedded Media Field does all that's needed.

documents, presentations, and such.

For images, use ImageField (along with CCK), Imagecache (for on the fly scaling of images) and Lightbox2 (for a clean image gallery functionality). This combination will let you store full size originals while generating thumbnails and scaled down versions of the image, and displaying the images inside a clean gallery, all from one upload.

For documents, the easiest thing is probably a content type where you upload files. If you are uploading pdfs/word docs/ppts/etc you can create a text description to simplify finding the doc via searching. If you want to get into coding, there are ways you can extract text from various other formats and expose that to the search index, but that is an added level of complexity that, depending on your goals, may or may not be worth it.

Edit, March 29, 2008
For Drupal 6, it looks like there is now a module for this -- the Search Files module "allows searching through the text of PDF, MS Word, plain text, and other types of files in given directories of the server."
End Edit

We have all of these now on a shared server on our Windows network and the students can access them fine. However, it is not easily searchable and does not provide a way to include a description of each resource, along with other pertinent information (thumbnail sketch, Lexile reading level, etc.).

For each of the resources listed above, you can include full text descriptions, alongside controlled keywords (for things like lexile level, etc), alongside freetag folksonomies (a la delicious). Additionally, using CCK, you can create custom forms/storage mechanisms via the web browser, without writing a single line of code.

And, using the Views module (bascially a web-based query builder/display tool) you can choose how/to whom/where/when you display your data, and filter on keywords.

We have looked at several "document management" solutions, but I don't really feel like they are as broad as what we would like to use. We've also looked at Microsoft SharePoint

Ahh, Sharepoint. Recoil from the functionality; run screaming from the expense :)

, but are frightened by how expensive it is on both a one-time and a recurring basis. We have a Moodle server already, but this doesn't seem to really fit well there as we are not interested in running "classes" right now.

Within Drupal, you could also allow specific users (as defined by role) to create informal working groups using Organic Groups. These groups can be fully public (both in content and enrollment), fully private, or some mixture in between.

Drupal also gives you tools for flagging inappropriate content, setting up publishing workflows (allowing, for example, a submission --> review --> edit --> publish workflow for a newspaper/magazine), setting up private content between users, setting up social networking, online portfolios, etc, etc, etc.

Since some of these materials are purchased and so have user limits, we would also need for this system to use Active Directory to authenticate our users.

LDAP Integration module.

What are you using to run your student learning portals? How is it working? How much did you have to spend up front?

Everything I have listed here is freely available on drupal.org.

  • Combined cost, Purchase and Licensing: 0
  • License Renewal Fees: 0
  • Pricing structure based on number of users: none -- as many users as you want.

I could go on...

Like any system, Drupal has a learning curve, and this is also an area where getting outside help to streamline building internal capacity can save you person-hours, and therefore money. When working with an outside person, always make sure there is a mechanism for archiving the content of these trainings, so that the process of training also jumpstarts the process of creating a body of documentation about your system.

How much maintenance is required?

Server maintenance is pretty standard, and I'd recommend a LAMP stack. For the Drupal codebase, I'd plan on 1-2 hours a month for module upgrades. These can generally be scheduled, and the upgrade process can be made fairly painless by setting up three sites: your production site (the one where everybody is working); your QA site (the one where you experiment); and your backup verification site (where you make sure that your backups work). The QA and the backup site can be run on the LAN, on a pretty anemic machine.

Feel free to ping back with any questions.

More Good Things

A few more things to look into:

It looks like RDF is coming to Drupal. This has some interesting implications for learning spaces, and doing things that you just can't do in Blackboard.

And here, some very interesting thoughts on using OpenID and FOAF as anti-spam tools. Looks like you and your friends can get together and whup up on the spammers after all.

OER's: Publishing is the Easy Part; Now, Let's Make Them More Usable

Introductory Notes

These are some thoughts in progress -- I’ve been thinking these things through for probably the last few years, but things have been getting more interesting of late.

Some of the blog posts that have helped shape my thinking here include:
http://bavatuesdays.com/proud-spammer-of-open-university-courses/
http://weblogs.elearning.ubc.ca/brian/archives/044998.php
http://opencontent.org/blog/archives/464
http://www.chrislott.org/2008/02/17/confused-about-the-blog-uproar/
http://weblogs.elearning.ubc.ca/brian/archives/044813.php
http://www.funnymonkey.com/mini-edu-rss
http://www.darcynorman.net/2008/02/16/on-eduglu-part-1-background/
http://blogs.open.ac.uk/Maths/ajh59/010236.html -- this is from Tony Hirst, who has an almost overwhelming amount of great information regarding remixing content on his blog.
I've also been thinking about the work Scott Wilson has been doing with FeedForward.

Toward the end of this post, I fall short of the needed conversation when I talk about the Course and Learner sections. There’s more to be said here -- a lot more -- but the poor souls who actually persevere to that point in the post will probably agree that I’ve said enough by then already.

An Open Content and Open Learning environment

External Repository -- in this context, an external repository is a place where content is stored. In many ways, the external repository is an artificial construct that doesn’t need to exist. The single most important argument in favor of the external repository is that the external repo can provide a level of credibility that less “official” sources of information lack. For example, a piece of information coming from the MIT’s OpenCourseware will have more credibility than a YouTube video.

These external repositories, however, need to expose their content via rss/atom, or web services, something that many of them do not do. With that said, it would also be nice to see the major OCW repositories use less pdf’s to allow for easier modification.

On a technical note, Tony Hirst pointed to a Mediawiki plugin that exposes full Mediawiki articles as rss feeds. This extends Mediawiki’s flexibility by allowing Mediawiki content to be imported via rss feeds.

Planning Repository -- the planning repos are the staging grounds of course preparation. Planning repositories will import selected courses from a variety of external repositories. While a limited number of people might have access to an external repository, more people can have access to a planning repository. Within the planning repository, users can edit existing courses, add links, text, images, etc. Then, users can select individual pieces of different courses, and re-organize them into a new course. By definition, planning repositories should be messy. They are workspaces, and should be viewed as a place where people go from draft versions to more polished versions of course materials.

For example: a history department creates an departmental planning repository. Initially, they import a variety of courses from different external repositories. Then, instructors add content as needed. Once they have finished adding content, they select the lessons/material they want for their course. So, an instructor teaching a course on the Rise of Modernism could incorporate material from a course on WWI. Once the instructors have selected and organized their lessons, they export them into their courses.

On the technical side, the planning repository could be a Drupal site built using the FeedAPI. I described how to do this here, and revisited the idea here. Alan Levine (in the comments here) and Jared Stein and Patrick Gosetti-Murrayjohn (in the comments here ) ask about how to select individual pieces of content for inclusion in a course. Once you have imported content into a Drupal site, you can use Views Bookmarks, Nodequeue, or node references (part of CCK) for doing exactly that.

Once the individual lessons have been selected and organized into a course, they can be exposed via an rss feed.

Mediawiki would also make an excellent planning repository by using XFeed to aggregate external content and the WikiArticle Feeds Extension (linked to above) to generate rss feeds for curriculum.

However, here is another wrinkle: every school is already producing curriculum. Teachers generate curriculum for all of their classes. If a school used a planning repository to coordinate curriculum planning, they could export the polished curriculum to a web site that could become an external repository. In this way, schools generate their curriculum maps and provide open content as part of their ongoing course planning and development process.These planning repositories becoming external repositories would have one enormous advantage over existing content repositories: they would be fully open, with all content within them accessible via rss feeds. For all schools currently undergoing accreditation reviews, how much time are you spending collecting up curricular materials? If you build your curriculum as described in this post, you have all your curriculum ready to hand, and categorized via tags.

It’s worth noting that the technology to do this exists now, and can be built entirely using open source tools.

It’s also worth noting that, using Drupal, you can clone an entire site -- configuration, content, and even user accounts -- and move that site with minimal effort. It’s what we’ve been doing with DrupalEd for nearly a year, and with less sophisticated class sites since September of 2005.

Courses -- In this context, courses are blog based tools, and could be delivered via a tool like Wordpressor Drupal. Curricular material could be imported; Jim has shown how to do this, D’Arcy has shown how to do this , and the aggregation examples I linked to earlier show how to do this.

The feeds of learners taking the course could be added to a blogroll, or, in the case of Drupal, could be imported directly into the site. With OpenID becoming more prevalent, students could either be site members, or be granted access via their OpenID. This flexibility would allow learners to interact with the course using their preferred tools, and, if they wanted, using their pre-established online identity.

Learners -- In this context, learners are just about anyone. You don’t need to be a student to be a learner, although, for obvious reasons, most schools probably wouldn’t allow open enrollment in their courses.

For me, the interesting piece of this has to with the potential for a true PLE. While I’m not particularly enamored of the whole notion of the PLE (I see it as more of a construct than a piece of technology, and something that is better achieved via innate curiosity than lines of code, but that’s another conversation), this system of open learning solves one of the main problems inherent in most PLE implementations: how to get course content out of the course and into the PLE. In this situation, that’s not an issue, as learners use their chosen tools to contribute in their courses. As they are doing the work from their platform, they retain control of their work in a way that just isn’t possible using proprietary LMS’s, or even open source LMS’s like Moodle.

Next Steps

The next steps could include any/all of the following:

  • A school, or a group of teachers, banding together to create course materials in a planning repository. Dan Meyer has called for something along these lines a while back.
  • More teachers using a blog-based approach to delivering content. The WPMU work that Jim helped spearhead shows one way of doing this; and the folks at BYU have illustrated another way of doing this.
  • Existing Open Content repositories could actually expose their content via rss feeds. If this happened, one of the enornous barriers to actually using the open content that has been published to date would be removed.

These thoughts are incomplete -- what's missing? What needs closer examination? What else needs to be considered here?

RSS Redux

9:30 -- Re-read Brian Lamb's blog post.

9:33 -- Poked around Stephen Downes' site, reading over some of the documentation on Edu_Rss. Really, I'm hoping to find an OPML file. Bingo.

9:40 -- Create a database on educon20.org.

9:42 -- Go to Drupal.org -- grap a copy of the 5.7 codebase, and the following modules: FeedAPI, FeedElement Mapper, Views, Views Bonus, Tagadelic, and CCK. At a later point, if nothing blows up, I'll probably add in Similar Content.

9:50 -- untar code. Realize I'm curious how long this will actually take, and resign myself to getting less sleep than I originally hoped. So it goes.

9:59 -- upload code to the server. Crack a beer. A good one.

10:04 -- bring site live.

10:08 -- in the process of installing the modules, realize I have forgotten to download the SimplePie parser. Oy.

10:16 -- create settings for the imported feeds, and create taxonomy categories the individual posts.

10:23 -- test import with a test feed. It looks good.

10:30 -- import opml file

10:35 -- first attempt at opml import bombs. Time to increase the memory allotted to php scripts in the settings.php file. Bumping it up to 40M ought to do it. If that doesn't work, I'll break up the opml file into multiple parts. At this point, I congratulate myself on the wise choice made at 9:59. A lesser beer would offer less solace during these times of peril.

10:42 -- second attempt bombs again. Time to try a third attempt, and see if it bombs in the same place. Don't know if I'm running into a php timeout, or a malformed xml file.

10:45 -- third attempt. Fingers crossed.

10:46 -- bombs out at close to the same place. In all likelihood, a php timeout issue. Small curses.

10:57 -- finished editing the original opml file into 4 smaller opml files. The first one imports with no issues -- 100 feeds down. Now trying the second opml file, which is larger than the first.

Note: I'm doing all this via a wireless connection, which is rather silly. When I am uploading files, I prefer to use a wired connection, as there is less chance of a transfer getting munged.

11:06 -- the second opml file bombed -- edited it into two smaller opml files. Trying again now.

11:13 -- the first two opml files have imported cleanly. The third is importing now. After this, two more to go.

11:22 -- opml import complete. Now, to begin the process of importing the feeds.

11:23 -- first cron run begun. In Drupal, there are many wonderful things that occur during a cron run. It is a sign of my general disintegration that I now have an active interest in things that occur during a cron run. During the first cron run, nearly 1000 posts were imported from the various feeds.

11:26 -- second cron run begun. An additional 2000 posts imported

11:30 -- third cron run begun.

11:37 -- fourth cron run begun.

11:45 -- create default views for imported feeds, and keyword directory.

12:06 -- install Similar Terms module -- this is a lightweight content recommendation engine.

12:25 -- for the last 20 minutes or so, I've been lost reading content.

12:40 -- set up a cron job to run automatically. This will serve two main purposes: import new posts, and index the site so that the search actually works. It will probably take about half a day for the site to get fully indexed; after that point, the full text search will work pretty well.

1:00 -- clean up this post. Wonder why I didn't go to bed earlier.

As of this writing, a little over 3.5 hours from when I started, there are nearly 7500 posts imported from around 500 different feeds.

Interesting Happenings at BYU

I saw this earlier today over at groups.drupal.org --

Kyle Matthews and Clint Rogers built a Drupal site in suppport of a web analytics class. The site aggregates student blogs and expert blogs; this way, everyone blogs from their chosen blogging platform, and their feed gets imported into the course site. In other words, people use whatever blogging tool they are currently using, and the software running the course (in this case, Drupal) adapts to the participant. This is a nice contrast to the usual approach, where all participants must adapt to the structure required by the LMS.

The site was built using the FeedAPI and the Feed Element Mapper. We have talked about organizing classes and building Open Educational Repositories like this in the past, and our main proof of concept site has been humming along for the last few months with no issues at all.

There has been some great development behind the FeedAPI; just last week, the folks over at Development Seed put out another screencast showing how they are extending the functionality even further.

DrupalEd 5.6-0

Earlier today, Drupal core was upgraded to version 5.6. This is a security release, and all users should upgrade.

For users with existing DrupalEd installs, you only need to upgrade core Drupal -- you do not need to use this specific package.

For new users to DrupalEd, this is the package for you.

Download it here to get started!

Thoughts on Sharing Lessons

I’m writing these ideas out quickly -- there are sure to be holes in this, and gaps in this reasoning -- please point them out in the comments.

For some context on this post, see these two threads on Dan Meyer's blog.

Users working with online lessons will generally fall into at least one of the following categories:

  1. People searching for lesson ideas (probably the majority)
  2. People already creating content on their own blogs (a growing number of folks, but still a very small percentage, compared to people in category 1, or even teacher-bloggers)
  3. People looking for a place to create content (people who want to create blogs, etc -- I have no idea how many people fall into this category, but I’d imagine that if people, particularly younger teachers, saw the benefit they would have some amazing things to contribute)
  4. People who will find lessons on another site, edit/revise those lessons for use in their class, and republish the updated content on their own site
  5. People who will edit/revise content on someone else’s site (ie, wiki-style) -- the majority of these people would probably be very committed to the ideals of Open Educational Resources (OERs), have part of their professional responsibilities include curriculum development, or have some other type of immediate personal connection to a learning community. These people would probably be the ones to make the greatest use of any social networking features within the site

Produce --> Share --> Reuse --> Remix -- where does influence fit in? The influence of shared lessons, and the role that influence can have in helping a teacher develop and revise their existing materials, should not be overlooked.

Most working teachers do not have the time to collaborate online with other teachers to create freely available resources. Most of the teachers I talk to barely have time to engage in that type of collaboration within their own schools, let alone within an online/social networking context. Most teachers, even the ones currently blogging their lessons, do not have the free time to join another site and learn another system, even if there are long-term benefits. Teacher time needs to be respected, which is why any system that mandates a teacher use a new tool to participate will lose a good number of potential contributors due to that barrier to entry.

Here is what I propose -- and what I have partially built, here: http://threeclicks.org/lessons

  1. A site that aggregates lessons already being published online. This way, any teacher currently blogging lessons doesn’t need to change a single thing about how they work. If they want to make it easier, they can choose to tag any lessons with a unique keyword, like “lesson” -- this would allow us (in most cases, anyways) to aggregate posts in that specific keyword.
  2. All imported lessons are full-text searchable, and, when possible, tagged with keywords that describe the lessons
  3. Organize the lessons by content area
  4. Possibly, add in rating mechanisms to allow site members to rate content
  5. All posts imported into the site can be printed via a print-friendly page, and exported via rss.
  6. As a further development, possibly create a mechanism where site users could clone and revise imported content, or create new lessons to be published within the site. This lesson development would leverage content already created and imported into the site, or could be used by interested people to develop learning resources from scratch. For this type of curricular planning, we could incorporate wiki-type functionality.
  7. As noted by David Rothstein here, we could incorporate a “request a lesson” feature

What is missing? Please add any necessary details/suggestions in the comments.

Drupaled 5.4-0

DrupalEd 5.4 is now out.

This new release incorporates a security upgrade. Although DrupalEd was not affected by the specific conditions that triggered this upgrade, upgrading core is strongly recommended.

This release also incorporates some recent module upgrades. For the full details, read the upgrade_notes.txt file available in the download.

Download DrupalEd here.

Topics: Drupal | DrupalEd
Syndicate content