Developments following our Summer project: random person extension, and the mathcentre taxonomy

During our project to create material for students making the transition to university, I did a bit of development work on Numbas based on issue that our interns raised. I’ll describe those here.

The “Random person” extension

Many of the questions the students wrote were based on “real-world” scenarios, often involving named people. To begin with, they used each other’s names, so we ended up with a lot of questions where ‘Bradley’ was stuck in some mathematical pickle. I tried to make the students aware of the importance of being aware of gender balance. My method in such situations has always been to flip a coin to decide the person’s gender, and come up with a name myself.

While this is a very easy way of going a long way towards making questions more inclusive, it still has drawbacks: coming up with new names is hard, and there will be certain names that come to mind more easily – I wouldn’t think twice before naming an engineer “Emily” (around 1 in 60 females in England), but I might never come up with, or think twice about using, “Somer” (around 1 in 50,000 females in England) or “Umar” (around 1 in 2,000 males in England).

Names come with much more baggage than gender! Social class, age and cultural heritage are just a few of the things you can have a stab at guessing based on someone’s name.

So, I decided to take it out of my hands entirely and let the computer do it. I found a data set released by the Office of National Statistics, with the frequencies of names of babies born in England and Wales between 1996 and 2015. These names will be broadly representative of our student cohort for the next few years.

The extension provides some functions to pick at random from this data set, weighted by frequency, returning not just a name but a set of pronouns to make it really easy to use seamlessly in your text.

Here’s an example sentence, designed to show off all the different pronouns: (the variables are set by defining a variable person = random_person(), and then setting the other variables based on that, e.g. name = person['name'])

{name} puts {their} things where {they} like{s}.

When people show things to {them}, {they} want{s} them for {themself}.

and that might be rendered as

Zak puts his things where he likes.

When people show things to him, he wants them for himself.


Eabha puts her things where she likes.

When people show things to her, she wants them for herself.

For a final note of right-on-ness, I identified “gender neutral” names by looking for names that were listed more than 100 times for each of ‘male’ and ‘female’. When you generate a random person, there’s a chance that you’ll get “neutral” gender, with pronouns they/their/them. That sentence above might look like this:

Charlie puts their things where they like.

When people show things to them, they want them for themself.

This extension makes it really easy to improve the inclusiveness of your questions in a very simple way. We’ve used it in about a dozen of the questions in the transition project, and it’s surprising how big a difference it makes. Because the names are weighted by popularity, questions feel much more natural: uncommon names aren’t over-represented (a typical complaint of “anti-PC” types) but neither are very common names.

To use the extension, tick the “Random person” box in the Extensions tab of the question editor. There’s documentation on GitHub, and here’s an exam containing a few questions which use the extension.

There’s a lot more you can do to make your questions more inclusive. While looking for literature on the subject, I found the book “Diversity in Mathematics Education – Towards Inclusive Practices”, which looks like a good place to start.

The mathcentre taxonomy

When it came time to organise the questions into packages, we realised that the Numbas editor’s existing tagging tools weren’t good enough. The “topics” and “subjects” fields had never been fully populated; rather than try to make up a list of mathematical concepts from scratch, I decided to use the existing taxonomy developed for mathcentre. It’s based on the “Core” Subject Taxonomy for Mathematical Sciences Education developed by the MAA.

In the “Settings” tab of the exam and question editors, there’s now a “taxonomies” panel, with an interface that looks like this:

You can drill down into the taxonomy by selecting topics, or use the search box, which auto-completes as you type.

The mathcentre taxonomy is a great starting point, but I think it needs some more development: while there are individual elements for the “famous numbers” 0, π, e and i, there’s only one element for “graphs and plots”.

The taxonomy interface is designed to be extended with more taxonomies; if you know about any others, please tell us about them!