The Numbas Blog

Help wanted: The Organising Numbas Project

In the coming year, I’m going to focus less on developing new features in Numbas, and more on organising the content we’ve already got.

At the moment, the database of content in the Numbas editor at contains a lot of stuff, but it’s hard to search, and it’s particularly hard to find good-quality material.

We’d like to improve this, by developing some new tools, and by applying more effort to moderation. Our goal is to start and maintain a library of good-quality, well-organised Numbas questions and exams available for everyone to reuse.

I’ve collected some ideas on how we might do this in a document. Please add your own comments to it.

We’re looking for anyone interested in helping with this project. Your contribution could be:

  • Time spent moderating – ad hoc, or committing to a number of hours per year 
  • Content for the library 
  • Expertise from previous similar projects

As a first step, I’m running a meeting on August 31st, open to anyone interested in helping. To cover as many time zones as possible, the meeting will run twice: first at 09:00-10:00 BST (GMT+1), and then at 15:00-16:00.

The meeting will take place over Zoom. If you’d like to attend, please fill in this registration form.

Numbas talks at EAMS 2021

This year’s edition of EAMS, the international conference on E-Assessment in Mathematical Sciences, has just finished.

There were a few talks about Numbas.

Numbas v6.0

It’s finally Summer, so it’s time for a new major version of Numbas. This year I’ve been working on diagnostic testing, and other adaptive assessments. There are also some new question-level features, improved accessibility, and some new features in the LTI tool.

Numbas open office hours

We’ve decided to start running weekly “open office” hours each Thursday. You can make an appointment to talk with the lead developer of Numbas, Christian Lawson-Perfect, about anything to do with Numbas.

Meetings will normally take place over Zoom, unless you specify a different method.

You could get help writing questions, integrating Numbas with your VLE, or have a more wide-ranging chat about using Numbas.

To make an appointment, use the booking form.

Numbas is 10 years old!

This week marks ten years since we first released Numbas as open-source software.

Here’s what it looked like back then:

Screenshot of the original Numbas interface.

Development on Numbas began in September 2009, and once it was ready to use I made it a priority to make sure it was released under an open-source licence so it wouldn’t languish in obscurity at Newcastle.

Development update: March 2021

Here’s another update on Numbas development, covering February and March, 2021.

I’ve mainly been spending time on developing new features for Numbas v6 lately, so the published versions have mainly just had bugfixes, but there are a couple of new things.

Notable changes include the ability for students to choose their own colours in the default theme, and some new marking methods for “choose several from a list” and “match choices with answers” parts.

Numbas training sessions – February 2021

We’re planning on running some more Numbas training sessions.

The first session, aimed at beginners, is scheduled for 14:00 BST on Tuesday 2nd February. It’ll run over Zoom and last about two hours. No previous knowledge of Numbas will be assumed.

The second session, aimed at more advanced users of Numbas, is scheduled for 10:00 BST on Thursday 4th February. Again, it’ll run over Zoom and last about two hours. Christian will demonstrate a few things, then there’ll be time to work through question-authoring problems from attendees.

If you can’t attend these sessions, you might like to watch the recordings of the previous sessions.

Register for a training session:

Both these sessions will be recorded. If you’d like to attend but would prefer not to appear in the recording, please let us know by email.

If you’re looking to start using Numbas in a hurry because of the CoViD-19 crisis, have a look at our blog post about how Numbas can help.

Development update: November 2020

You might notice this update was published in December: November was a busy month!

The Numbas runtime and editor mainly got bug fixes this month. There’s a big new feature in the LTI provider: the ability to automatically remark a resource after you update the exam package. This has already become invaluable for us, with more lecturers than ever setting Numbas assessments and misconfigured marking becoming more common. The remarking feature should be considered experimental: we’ve used it on a few assessments, but I expect to uncover bugs and limitations as we use it more often.

Numbas runtime

I’ve tagged version 5.2 of the Numbas runtime on GitHub.

  • Enhancement: Custom part types check the data type of each of their input options, and automatically convert compatible types. (code)
  • Enhancement: There is now a diff: annotation for variable names, to render differentials. Thanks to Lorcan James for adding this. (issue, documentation)
  • Enhancement: The entire Numbas runtime (the scripts.js file included in exam packages) can be loaded in a headless JavaScript enviroment such as node.js. (code)
  • Enhancement: The labels “Rows” and “Columns” on a matrix input are localised. (issue)
  • Enhancement: There’s a new display rule timesDot to insist that a centred dot ⋅ is always used as the multiplication symbol rather than a cross ×. (issue)
  • Enhancement: The string and latex functions when applied to expression values now take an optional list of display rules to configure the rendering. (code, documentation)
  • Change: Pattern-matching: if “gather as a list” is turned off, named terms inside lists aren’t returned in lists unless they match more than once. (code)
  • Change: When displaying rational numbers, they are reduced to lowest terms. (code for plain-text display, and in JME)
  • Bugfix: Custom functions written in JavaScript have the JME scope flattened, so that old functions written before scope inheritance was introduced still work. (code)
  • Bugfix: The range except X operation returns integers when appropriate. (code)
  • Bugfix: The default value of true for the setting “Allow pausing?” is correctly applied when an exam only has one question. (issue)
  • Bugfix: Leading minus signs are correctly extracted from nested expressions while pattern-matching. (code)
  • Bugfix: Hopefully the last ever bug fixes related to Internet Explorer – I hope to drop support for it next year when Microsoft ends support. (code)
  • Bugfix: Variables defined through destructuring are restored correctly when resuming a session. (code)
  • Bugfix: When the scheduler halts, halt all signal boxes. (code)
  • Bugfix: The checkboxes answer widget for custom part types deals better with being sent an undefined value. (code)
  • Bugfix: The legend for matrix inputs isn’t shown for the expected answer. (code)
  • Bugfix: Cleaning an answer of undefined for a number entry part produces the empty string. (code)
  • Bugfix: Slightly improved the rendering of the brackets around the matrix input on Safari. (issue)
  • Bugfix: The mathematical expression part’s built-in marking algorithm has default value generators for decimal, integer and rational data types. (code)

Numbas editor

I’ve tagged version 5.2 of the Numbas editor on GitHub.

  • Enhancement: When you create an exam, it’s automatically set to use your preferred language. (issue)
  • Enhancement: In the part marking algorithms tab, marking notes are shown even for invalid inputs. (issue)
  • Enhancement: The Extensions and scripts tab of the question editor has been split into separate nested tabs for each of extensions, functions, rulesets and preambles. (code)
  • Enhancement: The preview rendering of LaTeX while editing a content area uses display style when appropriate. (issue)
  • Bugfix: Fixed an error when browsing a project but not logged in. (code)
  • Bugfix: Access control is applied to the links to download source of exams and questions. (code)
  • Bugfix: The preview and embed views for questions and exams scale properly on mobile devices. (code)
  • Bugfix: I made some more changes to colours and keyboard navigation, to improve accessibility. (code)

Numbas LTI provider

I’ve tagged version 2.9 of the Numbas LTI provider on GitHub.

Screenshot of the resource remarking interface.
  • Enhancement: Each resource now has a Remark tab, which provides an interface to rerun all or some of the attempts at the resource using the latest version of the exam package, and optionally save any changed scores to the database. This has been on the wish-list for a long time. At the moment, consider this experimental: I expect to encounter bugs as we use this on real data. (issue, documentation)
  • Enhancement: I started work on automatically testing an exam package as it’s uploaded, to check for some obvious errors: that it starts correctly, the expected answers for each part are marked as correct, and a paused attempt at the exam can be resumed. It works on my development machine but we need to do some upgrades on our production LTI server, so it’s switched off by default at the moment. (issue)
  • Enhancement: The attempt timeline view now groups items produced within one second of each other; the score column is only shown when the score changes; the whole thing now runs lots faster. (code)
  • Enhancement: There’s now a global search tool for administrators. You can search for users, resources or contexts. (documentation)
  • Enhancement: There is now a link to review an attempt from its timeline and SCORM data views. (issue)
  • Enhancement: The “Maximum attempts per user” setting for resources now has some help text explaining that a value of zero means no limit. (issue)
  • Enhancement: The colours used to represent incorrect, partially correct and correct answers to questions are the same for the attempts listing and the stats page, and a bit more readable. (issue)
  • Bugfix: Fixed a bug in OAuth authentication affecting D2L Brightspace. (code)
  • Bugfix: Fixed a couple of bugs in the stress tests. (code)
  • Bugfix: Broken attempts don’t count towards the limit on the number of attempts a student can make. (issue)


Numbas features full documentation which is always in line with the most recent version.

Numbas Documentation

Numbas Blog

We regularly update our blog with articles about new and future features, as well as other useful information.

Numbas Blog