Ideas for the STACK track

Ideas for the STACK track

di Andreas Steiger -
Numero di risposte: 22

Since we're having a special track on STACK at this Moodle Moot and some of the core programmes are here, we should talk about development ideas related to STACK!

My wishlist contains: 

  • Implementing a hints system (following Kallweit's prototype, but making it accessible in the STACK UI)
  • Improve validation: We had a pilot test run of using STACK in an exam, and we noticed many student simply ignored the red "failed validation" box. They simply submitted, and obviously it was marked wrong. We'd love to have setting somewhere which makes to submit your attempt if there is still a red box somewhere. Alternatively, disabling the submit button for 5-10 seconds after the student changed their input would probably also make students look at what's written in the red box.

In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Meike Akveld -

Hi there,

I am also looking forward to my first conference of this type. I am a colleague of Andreas and share his wish list. In addition I would also really like an easy way to display vector fields in STACK.


See you all soon!

Best, Meike

In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Georg Osang -
As questions we've authored have become more complex, I've been wondering:
Question tests generally don't actually check if you did the computations in your question variables correctly. If you computed an incorrect teacher answer, and in your PRT you simply compare it to the student answer, your tests will still succeed. Mostly, the cases you catch are when the computation crashes, or if your teacher answer is wrong for e.g. an open-ended question where the PRT does a more complex check than comparing the teacher answer to the student answer.

If the maxima computations become very complex, it'd be nice to be able to have unit tests fixing specific input variable values and then checking for values of other variables. This way, I can check at least if e.g. for the textbook version of the question, the computations that I did in my maxima variables are correct, while I'm refactoring my question variables. This would require separating the question variables into two sections.
A simpler precursor could be variant-specific question tests. So a test that is only executed for a specific seed, and the inputs and expected outputs are explicit values. The main limitations of this would be that I can only check the teacher answers (not intermediate variables), and if I modify the randomization, because the test case is tied to a seed, I get different parameters for my question and have to re-write my test case.
In riposta a Georg Osang

Re: Ideas for the STACK track

di Marcus Green -
My idea for STACK would be to work on the installation documentation and offer easier ways of installing. For example full instructions on installing on some leading cloud providers. I have installed STACK on multiple occasions and over the weekend I tried the goemaxima approach (possibly the future for STACK), and I would have had no chance without my previous experience with STACK/maximapool and docker. I know that is not very "developerey", but it would be a big contribution and we would be guaranteed to have something of use to a lot of people at the end.

What about the creation of an AWS AMI image, just add water/sysop, et voila working stack back end...
In riposta a Marcus Green

Re: Ideas for the STACK track

di Christopher Sangwin -
I'd really welcome this Marcus, but server-side maintenance is actually not my strength! The GeoMaxima folk have done really great work bringing the Maxima side of things up to date. Installation has always been a real problem for STACK. Lots of people have installed STACK (so an curious potential new users, please don't be put off!) but it is non-standard and requires care...
In riposta a Marcus Green

Re: Ideas for the STACK track

di Alistair Spark -

https://github.com/moodlehq/moodle-docker#local-customisations 

using the config from https://moodlemootdach.org/mod/forum/discuss.php?d=198#p609 ?

I would love to try that out too would allow us to finally properly incorporate into our testing pipeline

In riposta a Georg Osang

Re: Ideas for the STACK track

di Christopher Sangwin -
This is a very sensible improvement suggestion, thank you.

First, I've added a new internal function `s_assert` which is documented in the "dev" branch here
https://github.com/maths/moodle-qtype_stack/blob/dev/doc/en/Authoring/Testing.md
This allows you to create test cases within the question variables. This gets us a long way forward, I think, but with minimal re-engineering. It will certainly help guard against poor random variants.

Can you also use this new idea to build expressions within the question variables and then create `s_assert` from that? If not, I'll need some compelling examples to understand why this is really valuable. I have a hard time getting question authors to construct even minimal test cases so I'd rather try hard to keep things simple than to create more fields in the question.

Chris
In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Andreas Steiger -
On-site ideas:
- Work on a new plugin for question importing as over-writing. Use the "edit" dropdown first and display the option "import as new version" in order to not get conflicts. Batch processing later.
- Michael K has a working prototype for a nested hints system. We agreed that we want to have a dynamic block which displays contents depending on (a) an input being correct or (b) a button click. In a later stage, the display condition could be that a PRT node exit was reached.
- Getting a sticky save button in the footer area of every question editing page
In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Sven Kirschbaum -

As it as been requested onsite, here is an exerpt of a docker compose file for maxima:



version: "3.9"
services:
  maxima:
    image: mathinstitut/goemaxima:2023010400-latest
    tmpfs:
      - "/tmp"
    restart: unless-stopped
    cap_add:
      - SETGID
      - SETUID
    cap_drop:
      - ALL
    environment:
      GOEMAXIMA_QUEUE_LEN: 32
    read_only: true
In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Christopher Sangwin -
Andreas,

Following this suggestion we now have "bespoke validators" documented here: https://docs.stack-assessment.org/en/CAS/Validator/ Note, this feature was included in STACK 4.4.4 recently.

Next, this system is useful but doesn't help people get what they want immediately. So, in conjunction with STACK's `stack_include` command I've started to document how "Sharing validators between questions" works. There is a lot more in the dev branch on this. Comments welcome.

I have no easy answers to getting students to read and act on feedback! I think you're asking for a quiz level change here, is that right? I'm not best placed to answer how that might work, but it could be very useful especially in an exam where a student has time, and invalid expressions.

Chris
In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Tim Hunt -

I was just checking, and STACK is 87% translated into German. If anyone wants to improve that, you need a sign-in to the Moodle translation tool and know how to use it, and then go to the STACK translation page.





In riposta a Tim Hunt

Re: Ideas for the STACK track

di Michael Kallweit -
I am already registered on AMOS and will update the translation soon.
In riposta a Andreas Steiger

Re: Ideas for the STACK track

di Tim Hunt -

The plugin Andreas and I made https://moodle.org/plugins/qbank_importasversion just got published sorridente