Christian Lawson-Perfect

All questions written by Newcastle University School of Mathematics and Statistics now freely available to re-use

nclmaths-exams

Here at the School of Mathematics and Statistics at Newcastle University, we provide computer-based assessment through Numbas to all of our first- and second-year undergraduate maths modules, as well as many other courses at later stages or for other schools. We write these questions on a private Numbas editor, so that we don’t accidentally reveal content to students, and so we can control editing access through our centralised IT system.

However, it’s always been our policy that everything we create will end up on the public editor at numbas.mathcentre.ac.uk, shared under a CC-BY licence. It’s been quite a while since we last copied anything over, so I’ve spent this morning copying over just about everything we’ve got. It’s all organised under a new account, Newcastle University Mathematics and Statistics. At the moment, we’ve got 101 exams and 497 questions – that’s a lot of maths!

This academic year we’ve reinvented our first-year syllabus, so at the moment only content for our semester 1 modules is on the public database. All of our second year modules are there, however, as well as third-year courses on group theory, coding theory, and number theory and cryptography.  I’ve also transferred each of the exams we’d made available on mathcentre.ac.uk to the school account.

I’ve written a few extensions to add data types and functions necessary for a few of our more advanced courses, which are also available on the editor and on GitHub. They are:

While you can pick and choose from our questions, a good way in is to look at our exams, which collect together questions on similar topics. Our first-year modules have been split up into chapters corresponding to more detailed topics, but the other courses were only collected into weekly assignments, so I’ve just made a single exam for each of those modules, containing all the relevant questions.

Development log: August 2015

numbas large layout

Development of Numbas has continued apace over the Summer break. I’m about to go on holiday for a couple of weeks, so I thought I’d write a development log to keep you up to date with all the latest changes.

The biggest change is that I completely rewrote the default theme to use the Bootstrap framework. As well as making everything look more “modern”, it should make using Numbas on smaller screens a lot easier. When the screen is below a certain width, the question list collapses into a sliding menu, which you can reveal by clicking on the icon at the top left of the screen. The old layout, with all the navigation bumped to the bottom, led to a lot of scrolling up and down.

numbas small layout

Other changes

The Numbas runtime:

  • New JME functions: len(set) (code), reverse(list) and indices(list,value). (code, documentation)
  • There’s now a version of the table function which doesn’t require a list of column headers. (documentation)
  • The shuffle function now works on ranges as well as lists. (code, documentation)
  • “Match choices with answers” parts now have a couple of layout options, which let you remove certain elements from the grid. You might want to do this when your grid is symmetric (for example, when asking the student to state which elements of a set are equivalent to each other). (code, documentation)
  • Fixed a bug in the random number generator seed which caused a warning in Chrome. (issue)
  • The code to count significant figures in a number now copes with E notation. (issue)
  • The value of cmi.session_time in the SCORM data model is now set properly (code)
  • The “noLeadingMinus” simplification rule rewrites -0 to 0. (code)
  • Added an option to not show the results page when the exam is finished. (issue)
  • When a question only has one part, there’s no longer a “submit part” button in the part feedback box. Instead, there’s just the “submit answer” button at the bottom of the question. (code)
  • As part of the groundwork for enabling adaptive marking, part objects now have a getCorrectAnswer method which returns the correct answer to the part in a given scope. (code, documentation). Each part also has a method studentAnswerAsJME which returns the student’s answer to the part as a JME data type. (documentation)
  • Part marking scripts need to store some information which the validation script uses to decide what feedback to give. This should now be stored in this.validation. (code)
  • Fixed a bug in Numbas.jme.display.mergeRuleset which led to some rules going missing. (code)
  • If the “minimum/maximum number of marks” options in a multiple choice part are empty, use 0. (issue)
  • The JME function zip(lists) no longer gets stuck in an infinite loop if you give it no arguments. (code)
  • There’s now a function Numbas.jme.tokenToDisplayString which turns a JME token into a representative string, and a dictionary Numbas.jme.typeToDisplayString which defines how that behaves for each data type. (code, documentation)
  • Fixed a bug where names of expected variables in “mathematical expression” didn’t have excess whitespace trimmed. (issue)
  • Added a function Numbas.util.nicePartName which gives a human-readable identifier for a part. (documentation)
  • Nested unary minus and plus now get brackets around them when rendered as LaTeX. (issue)
  • The source code for each part type is now in a separate file, and the builtin JME functions are in a separate file to the core JME interpreter. This should make the code easier to maintain. (code)
  • Added display-only JME functions sub(name,index) and sup(name,index) to display variable names with arbitrary subscripts or superscripts. (code, documentation)
  • The logic around marking parts with zero marks has changed so we can give more useful feedback. Previously, parts with zero marks available just weren’t marked, but sometimes you want a part to be marked for adaptive marking, or just to get some feedback. Parts with zero marks now show a tick or a cross, even when they don’t contribute to the total score. (code)

The Numbas editor:

  • Fixed the logic to decide when to show the delete button for questions and exams. (issue)
  • Fixed a bug where links to pages on the same domain as the Numbas editor were made relative. (issue)
  • Added a lot of links to help pages that had been missing from the various part editor tabs. (issue)
  • Fields which take a JME expression use a monospace font, so they’re more readable. (issue)
  • Question and exam descriptions are sanitized to remove bad HTML. (somebody put a whole form element in their description!) (code)
  • The question search page now takes an exclude_tags parameter so you can exclude questions with certain tags. There’s no user interface for this yet. (code)
  • The sorting of tags on the question edit page is now case insensitive. (issue)
  • Added a feedback label “Needs to be tested”. (code, documentation)
  • Fixed a bug involving custom functions whose names contain a capital letter. (issue)

Adaptive marking based on answers to other question parts

A long-standing limitation of Numbas has been the inability to offer “error-carried forward” marking: the principle that we should only penalise them once for making an error in an early part. When calculations build on each other, an error in the first part can make all the following answers incorrect, even if the student follows the correct methods from that point onwards.

Numbas now has a system of adaptive marking enabled by the replacement of question variables with the student’s answers to question parts.

Read the rest

A demonstration of Numbas at CAA 2015

Last week I gave a demonstration of Numbas at the CAA Conference in Zeist. As part of the submission process I had to submit a formal paper, which it turns out isn’t being included in the published proceedings because it was on the practice track. Instead, I thought I’d reproduce the paper here, since it offers a good, brief overview of Numbas. If you’d like the PDF version of the paper, click here.

[Could not find the bibliography file(s)Numbas is a free and open-source e-assessment system developed at Newcastle University. This demonstration highlights the key features of Numbas and the design considerations for an e-assessment tool focused on mathematics. Read the rest

Upcoming talks and workshops – Summer 2015

numbas talks map

Last week we were in Bergen to give a keynote talk and workshop at the MatRIC Computer Aided Assessment in Mathematics Colloquium. A good time was had by all, despite the rain, and now we’re back in Newcastle preparing for even more talks and workshops. It’s a busy time of year!

On Friday the 12th of June, Bill is giving a talk at the IMA International Conference on Barriers and Enablers to Learning Maths: Enhancing Learning and Teaching for All Learners in Glasgow, titled “Online Practice in Mathematics and Statistics. A model for community collaboration”.

Next, Christian is in the Netherlands for the International Computer Assisted Assessment (CAA) Conference, where he’s giving a demonstration of Numbas on the 22nd of June.

Finally, we’re running a two-day workshop on Numbas at Loughborough University on the 6th and 7th of July, supported by the sigma network. The first day is aimed at introducing new users to Numbas, and the second day will cover more advanced use. The workshop is free to attend, so there’s nothing to stop you!

Development log: May 2015

basket_dropdown

We’ve just updated the Numbas editor with another long-awaited feature: a “shopping basket” to keep questions while you browse the database. You can create an exam containing the questions in your basket with one click, or select individual questions from the basket inside the question editor. This resolves a long-standing problem with the exam editor – when there can be dozens of questions with the same name, and copies of those questions, it was very hard to find the questions you want in the miniature search interface included in the question editor.

I’ve updated the “create an exam” tutorial with instructions on how to use the new “shopping basket” feature.

Read the rest

New collaboration features in the Numbas editor

sample_editing_history

It’s a good idea to work as part of a team when writing a Numbas question: you can proofread each other’s questions, suggest changes, and give the final OK when a question works. I’ve just added a few new features to the Numbas editor which make collaborating with others a bit easier. Read the rest

Development log: February 2015

We’ve just updated the Numbas editor with a “Licence” field on both questions and exams, which lets you specify the licence under which you allow other people to use your work. To begin with, you can pick from “All rights reserved” or any of the Creative Commons licences.

When you search for questions or exams, you can filter the results by what you’re allowed to do with them – freely reuse, modify, or reuse commercially. If you apply any of these filters, content with no licence specified will be excluded, so please make sure you specify a licence for your material!

Happily, everything produced at Newcastle University and uploaded to the mathcentre Numbas editor is available under a CC BY (free to reuse with attribution) licence.

Note that these licences aren’t enforced by the software – they’re just there to help people do the right thing when compiling open-access resources. If you don’t want your material to be publicly available, the solution is still to use the access controls to make your questions and exams hidden by default.

Since I’m here, I’ll do a general development log as well. Read the rest