Christian Lawson-Perfect

Development update, November 2024

Here’s another round-up of development work on the Numbas project in the past couple of months.

Numbas runtime

I’ve tagged v8.1 of the Numbas runtime on GitHub.

Enhancements

  • Zach Potthoff took on a “good first issue” from the GitHub repository and added an input hint for number entry parts when the student needs to write a fraction. (issue)
  • The element numbas.review_allowed from SCORM is used to decide whether to enter review mode on resuming a finished attempt. (code)
  • Fixed a bug which led to a blank space next to the answer input box when there’s no feedback icon. (issue)
  • Part feedback messages are always shown when there’s only one part in the question. (code)
  • The part feedback summary shows when the feedback has changed. (code)
  • The layout of the part submit and feedback area has changed: on wide viewports, the feedback messages are shown to the left of the “save answer” button and score display. (code)
  • When auto-submitting a part because the user moved focus away from the input box by clicking inside the same part, the feedback messages are shown. (code)
  • The objects in Numbas.storage.inputWidgetStorage are documented. (code)
  • The main question content tries to be as wide as possible, rather than fitting tightly to the content. (code)
  • In “match choices with answers” parts, the whole cell around a checkbox is clickable. (code)
  • Some improvements to screen reader part feedback. (issue)
  • HTML elements with data-interactive="false" can be safely copied and embedded multiple times in the question content. (issue)
  • The “save all answers” button at the bottom of each question has been removed. It’s unnecessary when answers are automatically submitted, and we thought it was better to always have a “save answer” button next to each part. (issue)
  • The offline analysis tool now has the ability to review attempts. (code, issue)

Bug fixes

  • The final part feedback message summing up the the marks awarded is treated separately to messages produced by the marking algorithm, so can be hidden when appropriate. (code)
  • Somanshu Rath updated the link to the documentation in the README. (code)
  • Fixed a recently-introduced bug, so expected answers are shown when the question is revealed. (issue)
  • Fixed the display of questions in print. (issue)
  • The menu mode question menu no longer overflows horizontally. (code)
  • When showing part feedback messages but not answer state, positive or negative messages aren’t shown. (code)
  • Fixed a bug in the simplification rules for removing brackets involving subtraction. (code)
  • The gauss_jordan_elimination function always puts the matrix into reduced row-echelon form when possible. (issue)
  • Parts aren’t generated until rulesets have been generated. (code)
  • The align attribute on images in question content is translated into corresponding CSS rules on the container when the lightbox button is added. (issue)

Extensions

  • Geogebra: when linking gaps to geogebra objects, the parent part’s HTML element is used for event handling. (code)
  • Polynomials: Fixed a typo on Polynomial.pow. (code)
  • Programming: Submitting with ctrl+enter opens the feedback. (issue)

Numbas editor

I’ve tagged v8.1 of the Numbas editor on GitHub.

  • When re-uploading a custom part type, the short name isn’t changed. (code)
  • The first_setup script sends the correct Content-Type header for HTML. (code)
  • Updated the installation instructions. (code)
  • The exam: editor loads the ‘enter review mode immediately’ setting. (code)
  • Fixed a bug with statuses on item queue entries. (code)
  • You’re notified when someone is assigned to an item you put in a queue and when they review it. (code)
  • The warning about interactive HTML elements is only shown in the variable editor for HTML elements not marked as non-interactive. (code, issue)

Numbas LTI provider

I’ve tagged v4.1 of the Numbas LTI provider on GitHub.

The main change is an improvement to how scores are reported through LTI 1.3. The completion status of attempts is reported and the “submitted at” time correctly reflects the time the student ended the attempt.

  • Improved the layout of the access change and resource settings forms. (code)
  • Improved the Blackboard LTI 1.3 upgrade management command. (code)
  • Now uses the parser from the compiler to read .exam files. (code)
  • Fix a regular expression syntax error. (code)
  • When re-opening an attempt, a RemarkedScormElement object is created so it shows up in the attempt timeline. (code)
  • When a student re-opens an attempt, they’re sent straight to that attempt. (code)
  • The student progress view copes with there being no LTI launch or no line item. (code)
  • The routine to remove an access token silently copes with there being no token to delete. (code)
  • Fixed the logic around the grade shown in the student progress view. (code)
  • When running an attempt, the numbas.review_allowed SCORM element is set, to determine if full review is allowed. (code, issue)
  • Updated the feedback summary tables for the new feedback settings. (code)
  • When reporting scores, it silently copes with attempts with no SCORM elements. (code)
  • Improved the display of the cookie check page. (code)
  • Changed availability times are sent to clients when access changes are saved or deleted. (code)
  • Slightly lightened the danger button background colour. (code)
  • The “discount parts” view is available even when there are no attempts. (code, issue)
  • LTI access tokens are cached, to avoid making redundant requests to the consumer platform. (code)
  • Fixed a bug when comparing line item start and end times. (code)

Join us for regular Numbas drop-in sessions

We’re starting a regular series of online drop-in sessions, open to anybody. This is an opportunity to have a chat with the Numbas development team and other members of the community about anything to do with Numbas. You could learn more about Numbas, ask for help writing questions or deploying Numbas exams, talk about what you’ve been doing, make a feature request, hear what we’re planning to develop next, or just hang out with us for a while.

We’ll run one session a month, rotating through Tuesday, Wednesday and Thursday to match different people’s working patterns. Sessions will last two hours and take place during Newcastle’s core hours of 10:00 – 15:00, UK time. You’re welcome to join at any time and leave whenever you like.

The first few sessions are:

  • Tuesday, 26th November 2024, 14:00 – 16:00 GMT.
  • Wednesday, 18th December 2024, 10:00 – 12:00 GMT.
  • Thursday, 16th January 2025, 13:00 – 15:00 GMT.
Read the rest

Development update, September 2024: Numbas v8.0

Here’s an update on Numbas developments since March. We made a separate post announcing the release of v4.0 of the Numbas LTI provider.

We’ve just released v8 of Numbas. There are a couple of technically small but highly noticeable changes to the Numbas runtime: auto-submission of answers and a revamp of the exam feedback settings.

Read the rest

Numbas LTI provider v4.0

We’ve just released a new major version of the Numbas LTI provider.

This release adds support for LTI 1.3. This is a new version of the LTI protocol, supported by all major virtual learning environments and providing new features.

We’ve also taken the opportunity to completely redesign the user interface from scratch, with a focus on accessibility and ease of use.

I’ve made a short video describing the changes in this version:

Read the rest

Development update: March 2024

Here’s a development update, covering everything that’s changed since November.

Most of my work has been on adding LTI 1.3 support to the Numbas LTI provider. We hope to have that ready to use by the summer, in time for the next academic year.

The rest of the development work has been mainly bug fixes, with a couple of new features in the Numbas runtime.

Read the rest

Development update: November 2023

Here’s a development update, covering everything that’s changed since July.

I spent a lot of time on the Summer working on our other project, Chirun. I wrote a new LTI 1.3-compliant tool, to make it easier to embed Chirun material in our virtual learning environment. That’s now in use at Newcastle, and I’m looking for other institutions to test it with virtual learning environments other than Canvas or Moodle. Our intention is to make our server available to everyone, since it won’t handle any personally identifying information.

So it’s been a while since I had time to do a Numbas development update. There have been quite a few bug fixes and an encouraging number of contributions from other people. The main news is that the Numbas runtime is now WCAG 2.1 AAA compliant.

Read the rest

Development update: July 2023

Here’s a development update, covering everything since the release of Numbas v7 last December.

Progress on Numbas has continued fairly quietly, while I’ve had to split my attention between this, Chirun, and other stuff at Newcastle.

I gave a talk at EAMS 2023 with an update on developments over the last year:

Read the rest

Important bug notice: broken suspend data when variable names are capitalised

A bug was introduced in v7.0 of the Numbas runtime which led to variables whose names contain an uppercase letter not being correctly saved to the attempt suspend data. Exam packages downloaded from numbas.mathcentre.ac.uk between the 4th and 12th of December 2022 are affected. The values of these variables were not saved, so any attempts at affected packages can not be recovered correctly.

This would affect any students who left an in-progress attempt and later resumed it: they would potentially see different variable values to those they saw on the first launch.

Please check any packages that you downloaded between these dates and used with a SCORM player or the Numbas LTI tool. The bug is now fixed, so you should download a new copy of the exam package to replace the broken one.

We apologise for the inconvenience. Tests have been added to the automatic test suite to ensure this kind of problem doesn’t happen again.