Building a Course Management System
graham__fawcett at hotmail.com
Fri Jan 30 20:46:55 CET 2004
My employer (University of Windsor, Canada) has given me the go-ahead
to prototype a CMS (Course Management System, not Content
Management), written in Python, to be released under an open-source
license (choice of license is TBA).
Course Management is a rather broad domain, covering content
management, communications tools (e.g., announcements, mail, chat,
discussion), assessment (quizzes, surveys, assignments, gradebook),
activity tracking, etc. Ideally a good CMS will be portal-based, to
aid in managing information- and work-flow.
Open-source is finally making headways into the course-management
domain, one that has been predominantly commercial for some time.
There are a few open-source CMS initiatives out there: Moodle and
LogiCampus (both of which are written in PHP) come to mind. We've
played with the PHP projects, and though they have some fine features,
they also have some drawbacks (PHP as a language choice being among
them, but also a number of less-than-ideal design choices, IMO).
Needless to say, I'm very excited at the prospect of designing and
building such a prototype, and even more excited about the opportunity
to open-source it. But for my employer's sake, I must be diligent and
survey existing projects, and community interest in such a project.
-- Are there other Python-based CMS (Course management systems) that
I've overlooked? (Zope4Edu came to mind, but it's commerical, I think;
at least, there's no public CVS that I can find.)
-- Is there anyone out there who would like to collaborate on a new
Python-based CMS? (We do have some specific requirements, and so I
might be somewhat inflexible about early design decisions, but there
is plenty of room at the party for other designers, programmers,
artists and writers.) We're especially interested in partnerships with
other academic institutions, though that's not a constraint.
Although a formal timeline hasn't been set, I expect that the
prototype will be about an eight-week project, starting some time
within the next month. At the end of the project, we must produce a
useable system with enough functionality to allow for experimentation
and beta-testing. In the release-early-release-often spirit, I would
hope to publish an early-alpha version within the first week or two of
development. Some features will be specific to our needs, but I hope to
keep it largely generic.
(For those wondering why Python was specified, when little else has
been formalized yet: simply put, I get to choose the tools for the
prototype, and I choose Python. If I had twice as much time, I'd write
it in Java.)
I'd encourage any interested people to contact me by e-mail at
<fawcett AT uwindsor DOT ca>. (I respect if no one gets excited over
a vapourware announcement, but I'd love to have a list of people
to contact when the alpha is out.)
-- Graham <fawcett AT uwindsor DOT ca>
More information about the Python-list