Thursday, January 15, 2009

Using Revision Control for Educational Content

I've been exchanging comments and emails with Dan about authoring, um, educational content or whatever you want to call it. Multimedia math curriculum specifically.

One of my hobby horses is using revision control, so it is time to give an example of what I'm talking about. Wiki history is a simple kind of revision control. Anything that lets you roll back a sequence of saved changes is (as far as the layperson is concerned) a kind of revision control. Specifically, I'm interested in distributed revision control systems, which allow you to maintain multiple, parallel versions of a document and exchange specific changes between the two.

Anyway, we'd better get to an example.

These systems are designed to be used with human-readable text files, like software source code. So perhaps the biggest problem with this whole idea is finding more or less human-readable (where, say, HTML is considered human-readable) formats for doing the kind of authoring we have in mind. I thought Dan's Keynote files this might work reasonably well as an example because they're mostly defined in an XML file. Unfortunately, the first one I looked at had an 82,000 line XML file to define a 42 page presentation. This does not count as human readable.

So, for the purpose of illustration, we'll use one of Nick Hershman's .tex files. Dan is now thinking "No, no, no, no, no, I don't want TeX." I'm just using this as an example, OK?

In the interest of actually finishing this post, I'm just going to cut to the chase. I downloaded the .tex file and the single image used in Nick's rates and ratios lesson, and put them under version control using Bazaar and Launchpad. Yes, this is the Mark Shuttleworth vision of version control. There are others.

So after a little magic, we have this: the lesson under revision control on Launchpad. I can make changes on my local machine and push them up to the Launchpad repository, retaining the revision history.

If you want to try making some changes, you need to install bazaar locally, and make a "branch" of the lesson (bzr branch lp:~tom-hoffman/+junk/proportions). Then you can make whatever changes you want on your local copy and publish the changes to your own public branch on Launchpad (or to a regular web host). There are several ways you can send me your changes that I may choose to merge into my branch; if you like you can also pull future changes from my branch to keep yours up to date.

One drawback is that binary files like images are opaque. Revision control works but you can't see what's going on as easily, and I think it is not very efficient if you're frequently editing the images.

Anyhow, that's your simple introduction. I'm sure it could be better, but not without spending way more time than I've got... there's lots more on the Bazaar site. This is a good example, too.


Dan Meyer said...

I've been trying to extract the names "Bazaar" and "Launchpad" from you for three e-mails now. Gonna dig into the documentation, look around, etc. Thanks for all the hyperlinks.

I worry about the Venn diagram here, with sets A & B:

A - math teachers who can use a digital camera / camcorder and create visual math content.

B - people who can comfortably run Python and execute commands like "bzr branch lp:~tom-hoffman/+junk/proportions".

I just don't know if the intersection is more than five people.

Mr. H said...

Tom - I like it. Seems like the real gold would be to have a few folks managing their areas of expertise and a network of contributors that tend to fashion quality stuff. Dan made a remark about the need to avoid clutter and maintain an aesthetic so that the the work is cohesive. I think that's why his Geometry curriculum is so great - you know how to look through it. I'm trying to do a better job this year keeping this systematically organized in the folder structure by content and then as files using a few keytags in the name like ws- for worksheets, pres- for presentation.

I like the idea of having some basic templates for different types of materials. Any thoughts?

It's always a bit humbling having a second pair of teacher eyes go through stuff and catch capitalization errors etc.

Tom Hoffman said...


Getting people to use bzr is not as big of a problem of finding the right authoring tools and markup that would work with bzr.

Jackie Ballarini said...

I do not exist in that intersection. Heck, I'm not even sure I'm in group A.

I can't wait to see what you two come up with though. Let me know if you need a !(A or B) math teacher to look at anything.