Recently in courseware Category

why does university supported courseware have to suck so badly?

As I prepare to return to RIT this fall, I'm having to take a look at the new university courseware that they implemented while I was away. We used to use a system called Prometheus, which I wrote about in 2003 in an entry that was one of my most linked-to and commented on. We now use a system called Desire2Learn, and when I went to the main page of the site today, I saw this:

Screen shot of system requirements, which explicitly exclude Firefox

WTF? I can't use Safari. I can't use Firefox. They want me to download a third browser onto my system so that I can use this ridiculous piece of bloatware?

I don't think so.

This is exactly why I created my Movable Type courseware way back when, and I guess I'll be spending part of my summer getting it updated to run more smoothly with the current version of MT...or possibly porting it over to WordPress.


the long road home

We left the beach this morning. The condo's owner had told us before our trip that the day you leave is always the prettiest day, and it's so sad. Not so for us. We left in a torrential downpour, so bad we could barely see the road. It made it a lot easier to bid farewell to the beach.

First stop on the drive home was the family farm, which I've abandoned for the evening after discovering Eclipse Coffee a charming coffeeshop and bookstore in Montevallo with free wifi! It seems to have a primarily collegiate clientele (University of Montevallo), and it's pretty entertaining listening to the students complain about homework loads while I work on my syllabi for next week.

Now that MT 3.1 has been released, I'm preparing to put out a 3.1 compatible version of the courseware. If you'd like to use it, you should install 3.1 (the educational license is quite reasonably priced for unlimited sites, or you can do the free version for one site), and then the TypeMover plugin. I'll distribute the courseware as a single file that can be installed using TypeMover in one easy step, rather than as a bunch of separate template files and instructions for configuration. Yay!

I've got a couple of classes running under 3.1 already for this quarter. No big changes in operation just yet, but I expect to release another version later this fall that incorporates more of the nifty features of 3.1, like dynamic templates and subcategories.

As we head north I'll be posting more pictures, and trying to shift my head back into a more professional and research-focused space. Blogging should pick up by next week. In the meantime, I'll be seeking out connectivity on the road and checking mail as we go.

TypeMover rocks!

On Anil's recommendation, I just installed Sebastian Delmont's MT3 plugin TypeMover.

Oh. My. God.

Sebastian, you rock!

This is exactly what I've been wishing for...a way to selectively clone an existing MT blog. The biggest problem with my courseware has been the need to recreate all the customization for each new class (or section of a class).

TypeMover makes it easy to create a new blog including just the components you need. So I can create a new instance of a class and include all the configuration, template, category, and entry data...but leave out the comments and trackbacks! w00t!!

typemover options screen

I can also distribute the courseware as an archived backup without entries or comments of any kind, greatly reducing the installation burden for new users. All they'll have to do is import the single file that I distribute, then make minor editing changes to reflect their content.

typemover import screen

The only downside of TypeMover is that it requires an FTP server to be running on the server where your weblog resides. But I can live with that. It's only an issue for my localhost installation.

So, between TypeMover for cloning blogs, and MultiBlog for coordinating content (announcements and calendars for multiple sections, for example), the courseware should see some nice improvements by the end of the month. I'm glad I stuck with MT through the upgrade storm...these are the kind of improvements that I really hoped we'd see with a new version, and that weren't immediately apparent when the pricing was first announced.

mt courseware 3.1 is coming

The announcement about new features in the upcoming MT3.1 release has gotten me excited about revising my courseware for this fall. In particular, the multi-blog option ("A plugin which allows you to include template content from one weblog in any other weblog in your Movable Type install"), the post scheduling, and the improved php/dynamic capability will all make it much easier to create a more robust courseware implementation that doesn't require nearly so much by-hand duplication of content when creating multiple sections of a course, or new course instances from one quarter/semester to another.

I'm hoping to be able to make the changes during August, and get the new courseware instructions out soon after 3.1 is released on 8/31. For those of us who start teaching after Labor Day, that works...I know there are others for whom it will be too late for this semester. :(

BTW, if you haven't checked recently, the new pricing for MT 3.x for educators is quite reasonable...I bought a $39.95 license that will cover all of my personal and class blogs.

I haven't given up on the idea of a WordPress version, but I'm holding off until WordPress officially supports multiple blogs, since most of us teach more than one course.

courseware button

By popular request, here's a button for my mt courseware:

Elizabeth Lawley's Movable Type Courseware

If you use the courseware, I'd be grateful if you'd add the button (right/ctrl-click and save it to your own computer, s'il vous plait, rather than linking to the one on my site), and use it to link back to the step by step instructions page.

mt courseware, step-by-step

I've had a lot of requests for the templates being used in my newer courseware. And after helping a couple of colleagues through the process of setting it up, I've decided to take a stab at writing step-by-step directions for setting it all up. So if you want to give it a try, download the zipped archive of template files, and give these instructions a shot.

Caveat: this is not intended for total newbies. It assumes a solid understanding of MT templates and HTML, and, ideally, basic knowledge of PHP as well.

new courseware templates

Templates and instructions have been posted.

A number of people have mentioned interest in my revised MT course templates, so here they are. (It's a zipped archive.)

I'm working on some detailed documentation to accompany them, which I expect to post tomorrow or Wednesday.

new quarter, new courseware

Am working on version 0.2 of my MT Courseware for next quarter. The drop-down "QuickLinks" menu didn't work from an interface standpoint, so I decided to add tabbed navigation elements at the top of the content area. Since I'm teaching web design next quarter, and one of the goals of the class is to get them to renounce table-based and non-standards-compliant authoring, I figured putting in a table-based, Fireworks-generated DHTML menu would be a bad example.

So instead I turned to the wonderful A List Apart, which has great articles on CSS-based navigation--and a great example in their own new design.

After a lot of css and xhtml tweaking, I finally got the effect that I wanted, which can be seen on the new course site. (Again, since it's a production course site, please don't leave comments there...)

The most frustrating part was getting it to work perfectly in Mozilla and Safari, only to find that in IE5/Mac instead of a horizontal navigation bar I suddenly had a vertical bar. I don't even want to tell you how many hours it took for me to discover that the problem was carriage returns in the html for my unordered list. Aaargh.

At the moment, I think it works cross-browser, cross-platform; I tested it in IE6/WinXP via Virtual PC, as well as my Mac browsers. If it's not working your configuration, let me know in the comments here.

Once I'm sure I've squashed the bugs, and cleaned up the categories and css a bit, I'll post the new templates.

mt courseware documentation and templates

Okay, I think I've "gone about as fur as ah c'n go" for this first version of the courseware. I'm ready to call it version 1.0, I guess, with all the caveats that go along with that.

You can see it in action on my fall course site, though I'd respectfully ask that you not post comments related to the courseware itself there--it's a production class site. This post would be a better place to discuss process.

mt courseware project nears completion

Well, of course, completion is a relative term. It will soon be "done enough," I think, for use this fall.

Today's changes:

  • Dropped the "topical archives" for now--I decided they didn't add much, since most materials will be available in the appropriate daily archives.
  • Added a "course outline" item that includes the date and title of each day's topic, and links to the daily archive for that class (much like the calendar, but with the addition of the topic so you can scan for a topic of interest and look at that day's materials).
  • Entered the class topic post and the readings post for the first four class meetings (two weeks' worth of classes), and things seem to be working the way I'd like.

I'm realizing as I do this that I probably shouldn't have used the date format for individual archives, since when I create the entry MT automatically saves it for the current day. I can then edit the date and time, and the entry is then saved in the "right" location...but the original "wrong" file is not deleted automatically. And if I've got trackback pings being sent (to a weblog reading, for example), readers following the trackback will be directed to either the "wrong" file (thus missing up to date comments), or to a 404 (if I've deleted it). I suppose I could leave redirects behind, but that would be a serious pain to do by hand each time. If I'd left the individual archives in their standard non-date-delimited locations, I wouldn't have had this problem. :( (Another solution would be to have MT let me enter the publication date when I first create the entry, but I don't know if that's doable. Is there a plug-in to facilitate that?)

By the weekend I'll post templates and instructions on how to replicate the structure, as well as some caveats on what doesn't work smoothly, and where I had to cut corners because I couldn't wrestle MT into doing what I wanted. (One big one was the fact that I couldn't specify multiple categories for selection in the calendar, and so had to add an extra category to items that needed to be displayed in the sidebar calendar.)

Update, 9pm
Since the site wasn't "in production" yet, I decided not to worry about broken permalinks. So I changed the individual entry archives to non-date-delimited structures. Now they're all stored in the archives directory (archives/file_name.php), rather than in archives/year/mo/day/file_name.php.

Daily and monthly archives are still in the year/mo/day directories, however.

mt courseware update

I'm chugging along on the MT as courseware project. It's forcing me to brush off my rusty SQL skills, learn more about MT plugins, and really think about organization of information. All good things.

I struggled for a while with the calendars, because I wanted them to link not to a specific entry (which is the default in the provided templates), but rather to a daily archive. That way all important entries for a given day--due dates, class topics/readings, in-class exercises--would be displayed together on that date. I finally found the solution on Sillybean's blog, in a post entitled "Various tricks with archive calendars" (caution to Safari users; I have to reload the pages on that blog several times in Safari to get the right style sheet. not sure why).

My next problem with the calendar was that there's no way to limit a calendar to a group of categories--you can have it find entries in one category, or in all categories, but that's it. I wanted the calendar dates to be linked to an archive if anything in the due dates, class topics, class readings, or in-class assignments showed up on that day. The solution I ended up with here was to create an "extra" category of "calendar," and assign that as a secondary category to anything that fell into the above categories. Kind of a kudge, but it works.

The main page of the course site is now showing only current entries with categories of "news," "due dates," "in-class exercises," or "discussion questions"--the things I want students to see first when they go to the site. This was accomplished using Brad Choate's MTSQL plug-in, and this SQL query:

SELECT DISTINCT entry_id FROM mt_placement right join mt_entry ON mt_placement.placement_entry_id = mt_entry.entry_id WHERE entry_created_on <= NOW() AND TO_DAYS(NOW()) - TO_DAYS(entry_created_on) <= 10 AND entry_blog_id = 9 AND (placement_category_id = 64 OR placement_category_id = 65 OR placement_category_id = 61 OR placement_category_id = 50) ORDER BY entry_created_on DESC

What this does is look for all entries from this course blog that have been assigned any of those categories (the blog ID and category IDs would vary based on your implementation, of course), limiting it to entries published in the past ten days, excluding post-dated entries. Duplicate entries (for example, something that somehow shows up in both "news" and "discussion questions") are removed with the DISTINCT modifier. Don't ask how long it took me to write that, or how much time I didn't spend with my family while I puzzled it out.

Update, 8/5
An alternative to the SQL approach would be to use PHP to hide post-dated entries. This approach is described by Sillybean in the Using Movable Type as an events calendar entry. Basically, you would use an MTEntries tag to limit to the desired categories, then use PHP to hide an entry based on some date calculations. MT would be generating a big page each time, but most of it would be stripped out by the PHP code.

I've also created a syllabus category, and a separate syllabus page. That template lists items in ascending rather than descending order, and strips out all of the date and related posting information.

I've not yet worked on the individual entry pages, but I plan on using the same basic template as I've got on the main and syllabus pages. I may use an include for the sidebar material. The advantages of an include would be not having to modify three different index templates when I change it, and less load on MT in terms of generating index pages with complex calendars. The disadvantage is that pages will load more slowly (as they do with this blog, which uses includes for the banner and sidebar). May try some usability testing this summer to see how much the lag time in loading with includes bothers my target audience.

I'm having to give a lot of thought to the categories to use. Right now I have topical categories for each of the main areas we cover in the class, as well as structural catgories (like syllabus, due dates, in-class exercises, etc). Once I've settled on categories, I'll build some hand-coded archive menus to allow students to see all the posts on a specific topic. (If I have the archive menus auto-generated, it will mix the topical and structural categories, which would be confusing.) The topical archives will point to archive pages that have a standard date/title heading format with comments and trackbacks enabled. The structural pages, like the syllabus, will vary in their layout and presentation based on the content being presented (some will be ascending date order, some descending, some with comments and trackbacks, some without, etc).

This won't be a "plug and play" solution when it's done--anyone who wants to use it will have to a) add in their own categories, b) figure out the id #s for blog and categories for the sql query on the main page, and c) install the MTSQL plug-in as well as d) changing content, look and feel, etc for their course. But I will provide all of my templates when I'm done, which should save you a good bit of the work.


mt as courseware

One of the most active entries I've posted this year was my wish for a good open-source courseware package. I ended up looking at a few of the suggestions, but to get what I wanted, all would have required too steep a learning curve and customization process.

So, today I decided to see if I could leverage my existing knowledge of MovableType to generate something that met my basic needs for courseware. I plan on keeping the grades in our Prometheus-based courseware (saves me the hassle of dealing with password-protected stuff, and importing class lists), but putting everything else into a customized course blog. That allows me to make the course content easily accessible to students, colleagues, and other interested parties--and to allow comments and ideas from people outside of the class to become part of the

The beginnings of the course site can be found at I've done nothing yet with aesthetics, obviously, because I wanted to first think through functionality.

I put in a fake due date for a paper, and post-dated it to September 25th. Unfortunately, that pushed the post-dated entry to the first page, which I didn't want.

I could have limited the categories on the first page, but MT doesn't support category exclusion. I thought about installing the ExcludeCategories plug-in, but decided that was too limiting in terms of functionality.

Instead, I installed Brad Choate's MTSQL plug-in, which is far more flexible in what it will allow me to do. I then replaced the <MTEntries> with a SQL-based tag to select only entries published today or within the past 15 days. There's probably a much more elegant way to do it than what I came up with, but it works:

<MTSQLEntries query="select entry_id from mt_entry where entry_created_on <= NOW() AND TO_DAYS(NOW()) - TO_DAYS(entry_created_on) <= 10 AND entry_blog_id = 9">

That fixed the problem of post-dated entries showing up "before their time."

Next, I added a bunch of categories, falling into two groups. The first group was structural categories--like "due dates," "assignments," and "readings." The second group was topical categories--like "HTML," "Unix," and "History."

Then I tweaked the calendar, so that all three months of the quarter would be displayed in calendar form, and only "due dates" would appear. (Though I'll probably change that to include a new category of "class topics" as well.) That allows students to click on a highlighted date to see what's due that day.

The main page will show all current entries, probably with the exception of due dates. It will include news, suggestions, discussion topics, resources, etc. Then there will be two category menus--one for each of the two sets of categories. Students can either see everything posted related to a topic (like HTML), or everything of a particular type (like assignments).

I'll start with comments turned for all entries by default, so that students can ask questions about specific posts. I'll also set MT up to email me with new comments, so that I know when there are questions.

About this Archive

This page is an archive of recent entries in the courseware category.

conferences is the previous category.

crafts is the next category.

Find recent content on the main index or look in the archives to find all content.


Category Archives