I’ve just released v1.4 of Numbas on Github. I increase the version number whenever there are significant additions to the system, and there are loads this time.

Here’s what’s changed since v1.3:

• The steps marking algorithm has changed. Now marks awarded for steps parts only make up for marks lost in the main part. This is to cope with the case when the student reveals steps, enters the correct answer for the part, but doesn’t bother filling in answers for the steps. They shouldn’t be punished for not completing a section that wasn’t compulsory to begin with.
• I’ve written my own textile markup parser because the old one was written in hard to maintain one-liner-ese, didn’t conform to the textile specs, and hence kept causing problems. My textile library is completely stand-alone and even comes with a load of unit tests to prove its credentials; if you’d like to use it in your own project, it has its own github repository.
• Now that Blackboard 9.1 with service pack 6 has a working SCORM player, I was able to make sure Numbas exams work correctly over SCORM. If you upload a numbas exam to Blackboard, scores are reported automatically to the Grade Center, and suspend/resume of sessions works without a hitch. We’ve tested with about a hundred machines running an exam at once in a Newcastle Uni cluster and had no real problems with load, since all the hard work is done on the client.
• You can now declare functions and variables for an entire exam, so they can be accessed by every question. You could use this to generate names for a virtual case study, for example.
• The way simplification settings are activated has been changed. Sets are now activated or turned off by referring to them by name, and you can give names to commonly-used sets at the top of the exam. In addition, you can define your own simplification rules! I don’t think any other system lets you do this, and it can be very powerful. A very simple example Bill has been using is to simplify $\frac{a}{\sqrt{a}}$ to $\sqrt{a}$. Doing this in variable definitions would be very clumsy, but as a simplification rule it means you can write much cleverer questions.
• I’ve added a print stylesheet for questions. Students often like to print out questions from formative assessments to take into Maths-Aid or to think about away from the computer. The print stylesheet gets rid of all the user interface cruft, leaving only the question content.
• I’ve added the beginnings of a system for detailed feedback on marking. At the moment it describes how marks for gapfills and steps are awarded, as well as any warnings about things like string restrictions. For multiple choice questions, you can provide messages to give to the student when they select distractors. I intend to spread this idea to the other question types, so for example if you anticipate a certain error in a JME part, you could trap expressions matching that error and give the student advice about what they probably did wrong.
• Because not everyone has access to an up-to-date Blackboard installation, and because Moodle’s SCORM 2004 support is still broken, I’ve written an extremely simple extension called ‘simplesave’ which simply sends all SCORM data elements to a remote address. This was asked for by a lecturer who is considering using Numbas to support one of his first-year modules. This extension shouldn’t be used for any high-stakes assessment because of the usual security issues, but it could be useful for generating feedback on formative assessments. Some more info on how the extension works is in the commit message.
What a lot of new features! But work doesn’t stop there: the next thing I’m working on is getting rid of the XML format that numbas compiles to in the backend, and using handlebars templates instead of XSLT. While neither author nor student ever saw the XML format, it caused occasional cross-browser issues and was really a bit of a fudge inherited from the days when I was trying to maintain compatibility with our old i-assess exams. Apart from anything else, handlebars templates are a lot easier to understand than XSLT stylesheets. Additionally, with everything in nice javascript-friendly formats, a web authoring system should be a lot easier to write.