I’ve been doing some work to extract some SCORM packages out of a bespoke VLE and import them into Moodle as something that’s a bit more easily editable directly in Moodle. These are SCORM packages that were, in some cases, create a number of years ago and need a wee refresh. The original source packages have been lost long ago. The courses are training courses worked through by learners in their own time, they are not supported by staff and there are no activities that allow students to talk to others.
The SCORM packages are mostly** good, in that they are:
- surprisingly accessible given some of their ages. The creators have taken great care to label images, order things correctly, check keyboard navigation works sensibly and the colour contrast is good for most pages.
- nice training packages in terms of how they look. They have a nice colour scheme and lovely images created just for them.
(** Mostly – there was one that was clearly an old Flash course which had been converted into SCORM when Flash disappeared. It was less good (content = good/crazy stuff happening in the XML = absolutely))
However, they also have limitations:
- specific screen real-estate, where interactives have been added purely to increase the amount of content available on a page (hiding/revealing for example)
- not responsive – they don’t resize based on screen size which means there is a horizontal scroll if your screen is smaller than the SCORM window.
- some of them have hundreds of pages. Looking at that made me feel a little overwhelmed when I first looked at them. I’m sure a learner would feel the same. This is genuinely because each page is short with only a paragraph or two of content.
- although the course packages are linear, they are repetitive in-terms of structure – topics take many pages to be fully covered, menus are long with lots of pages that sound like they are repeated (but in fact, it’s just the same page split over multiple pages due to lack of space).
How the migration has worked
Well, you’ll be unsurprised to hear that AI was really genuinely helpful for this work. I used it in a few different ways and for a few different reasons:
- I reviewed a couple of the SCORM packages (there are 14 in total that need converting) to see how they were structured and then worked with Claude to write a Python script that would run over the packages to convert from SCORM to Moodle Book format or for the questions/quizzes, Claude’s script pulled them out as GIFT format (which could be imported into Moodle).
- The first run at this, the courses were pretty bland, so I again looked for objects which were appearing repeatedly such as specific types of text (quotes, image captions, tables, etc) and asked Claude to add styles to these objects.
- A few versions later and things were starting to look good – even working on some of the inherent issues that were in the original SCORM package such as highlighting broken links in the content, so they could be easily found later and merging several pages together where it made sense to do so (ie why have 3 different short pages on a specific topic when 1 would do?). Not perfect but a good start.
- I still am having to work through each page and check it in Moodle – there are lots of random styles and formatting which either didn’t come over or didn’t come over well. In that case I’m often using AI to tidy up the formatting on those specific pages. I could do this myself but it would take an age and honestly would be quite boring. I’ve built a bunch of AI skills which effectively mean I can tell the AI what I want and it sorts the formatting out in the HTML and I copy and paste it in. I could probably automate more with the Python file and honestly, I think there are some improvements I could make to the way I’ve worked with the AI, but I’ll know for next time.
- The ex-Flash course took a bit more teasing apart and a bit more human intervention, the XML contained things that shouldn’t have been there (hangovers from other pages for example) but the AI helped me diagnose a few things such as giving me the answers to the questions in the exam at the end (it wasn’t set up to show the right answers at the end).
But…
Whilst this has really been much quicker than manually converting, there have been a few interesting learning points on the way:
- AI doesn’t always get it right. Sometimes one change to the Python script you think will improve one type of object migration causes the AI to inadvertently breaks another.
- In terms of individual page formatting, when needed, I tried to use both Claude and ChatGPT. Claude was fairly good at doing the dull stuff but wasn’t all that creative, whereas ChatGPT was coming up with more interesting formatting but would forget things and change styles you thought you’d agreed randomly at times and then I’d have to remind it.
- It wasn’t a simple point the AI at the SCORM and produce the perfect output, it took several goes. With each course, it was usually an improved migration over the previous one.
The bigger picture
Whilst I wouldn’t recommend exactly the process I’ve followed up until this point (which has been a bit of a learning journey), I can see that doing a bigger VLE migration with thousands of courses might be a bit easier using AI like this – provide it with instructions on what should happen to specific patterns and get it’s help in writing code to allow it to run at scale. Then ask course staff to check and correct or report if the course needs looked at again in more detail. It means you are running a fairly bespoke script to help you with the migration. Using a python script for the migration means the AI isn’t running through each course, which keeps the cost and impact on the environment down. It still needs a human to check it but let’s face it, AI-completed tasks always needs a human to check them.
The other thing I’ve done is asked Claude to summarise the changes it’s made in a report for each course – so this might help spot where there are issues with the migration (ie there were issues BEFORE the migration started or the migration has caused issues). The report is created by AI so wouldn’t scale up to be useful for thousands of courses unless you had your own AI or a cheap way to run it.
And of course, Claude learns skills and documents everything in MarkDown (MD) files which means that if I have to convert a SCORM to Moodle again, I can just ask it to read the MD file and it’ll know what to do.
I’m also wondering if this might lend itself well to a course creation template for courses, with styles built in, for this specific type of course. I’m thinking about how that might work just now so I may have another blog post if I come up with a cunning plan.