Question types ::: qtype_stack
Maintained by Christopher Sangwin, Tim at Lone Pine Koala SanctuaryTim Hunt
The STACK question type adds a sophisticated assessment in mathematics and related disciplines, with emphasis on formative assessment underpinned by computer algebra.
Latest release:
1558 sites
65 fans
Current versions available: 3

The STACK system is a computer aided assessment package for mathematics, which provides a question type for the Moodle quiz. In computer aided assessment (CAA), there are two classes of question types.

  • Selected response questions
    In these questions, a student makes a selection from, or interacts with, potential answers which the teacher has selected. Examples include multiple choice, multiple response and so on.
  • Student-provided answer question
    In these questions the student's answer contains the content. It is not a selection. Examples of these are numeric questions.

STACK concentrates on student-provided answers which are mathematical expressions. For example, a student might respond to a question with a polynomial or matrix. Essentially STACK asks for mathematical expressions and evaluates these using computer algebra. The prototype test is the following pseudo-code.

  simplify(student_answer-teacher_answer) = 0
  mark = 1,
  mark = 0.

STACK uses a computer algebra system (CAS) to implement these mathematical functions. A CAS provides a library of functions with which to manipulate students' answers and generate outcomes such as providing feedback. Establishing algebraic equivalence with a correct answer is only one kind of manipulation which is possible.

Using CAS can also help generate random yet structured problems, and corresponding worked solutions.

In STACK a lot of attention has been paid to allowing teachers to author and manage their own questions. The following are the key features.

  • Question versions are randomly generated within structured templates.
  • There are many different kinds of inputs. These are, for example, where the student enters a mathematical expression, or makes a true/false selection.
  • Mathematical properties of students' answers are established using answer tests within the CAS Maxima.
  • Feedback is assigned on the basis of these properties using a potential response tree. This feedback includes:
    1. Textual comments for the student.
    2. A numerical mark.
    3. Answer notes from which statistics for the teacher are compiled.

These broadly correspond to formative, summative and evaluative functions of assessment. Which of these outcomes is available to the student, and when, is under the control of the teacher.

  • Multi-part mathematical questions are possible: each question may have any number of inputs and any number of potential response trees. There need not be a one-to-one correspondence between these.
  • Partial credit is possible when an expression only satisfies some of the required properties.
  • Plots can be dynamically generated and included within any part of the question, including feedback in the form of a plot of the student's expression.


This plugin is part of set STACK.


Screenshot #0


Christopher Sangwin (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Tim at Lone Pine Koala Sanctuary
    Thu, Nov 9, 2017, 6:18 PM
    It is OK to put evertyhing on the same server. Using a separate pool server gives slighly faster performance, and more security and scalability, but it is another thing to set up.
  • Sun, Dec 17, 2017, 7:46 PM
    Chris: The link to is broken (at least today it is). Have Birmingham taken your site down since you left? Should it now be a Newcastle URL?
  • Sun, Dec 17, 2017, 8:18 PM
    Thanks Stuart, I've updated this to
  • Sat, Jun 2, 2018, 9:50 AM
    This is an incredible plugin for all science courses involving computation and especially for mathematics. A well designed quiz with the STACK question type together with good multi-media course material can do a fantastic job for helping students self-learn. The contributions of the developers of this plugin are great indeed. A great benefit of this STACK question type is exquisite control of the incredibly complex interactive nature of self-learning. I cannot recommend this plugin highly enough to the Math and Science teachers.
    I am using it for Moodle 3.5 and barring for some minor errors, still works. I am eagerly awaiting the official version for Moodle 3.5.
  • Sat, Nov 3, 2018, 2:56 PM
    Hi, I am relatively new in using stack in moodle. In the meantime, I've read a lot about what I found mostly about Google.
    Yesterday I read that Geogebra can also be loaded as a plugin in Moodle and then acted with stack. Maxima can accomplish a lot, but especially for graphics you are a bit limited, because the package "draw" is not yet supported. My question is, if you can use Maxima and Geogebra together in Stack with Moodle? that would have to load the administrator, right?
    I'm also looking for a way to query students for the domain of a function. Often the answer is "\ mathbb {R} \ backslash \ {x_1, x_2, \ dots \}", but I can not query that because each answer should be a maxima expression. Can anybody help me further?
  • Sat, Nov 3, 2018, 6:08 PM
    I'm a huge fan of Geogebra and hand used it a lot in my teaching, (and for generating LaTeX output for traditional paper-based handouts). As far as STACK integration is concerned, GeoGebra is not GPL, and has a "non-commercial" licence. It is also difficult to avoid cross-site scripts (I think, but it has been a while since I checked this technical question). STACK has a lot of commercial partners, and users, and for this reason I put my effort into supporting graphics which have an open source codebase. Currently we have the Maxima "plot" commands. We also have JSXGraph support, but really need more examples and better STACK-JSXGraph documentation. I'm very happy to support GeoGebra as it is excellent, and this is in no way a criticism of their work. I'm very happy to include examples etc, and to support users who make use of GeoGebra. I just want to keep the core functionality (and develop new core functionality) which is less restricted.
  • Wed, May 29, 2019, 5:00 PM
    is the current version compatible with Moodle 3.6 and 3.7, or is there an updated version coming?
  • Sat, Jun 1, 2019, 12:07 AM
    Kimmo Kiiskinen,
    The STACK plugin in thriving and we will be supporting Moodle 3.6 and 3.7. I'm in the process of getting a new release together, and checking these versions of Moodle will be part of that work. I've no reason to suspect 3.7 won't work, and I've been using STACK with 3.6 on my dev machine without problems. I just haven't done some formal checks, and tagged a plugin. Any problems, please let me know and I'll fix them.

  • Wed, Apr 1, 2020, 2:15 PM

    there seem to be newer version of the plugin in the git repository.
    Is it functional and if it is, can you set it available to also?
  • Wed, Apr 1, 2020, 3:29 PM
    Kimmo, yes we are very close to releasing STACK 4.3. When we do this it will be available as an official release in
  • Tim at Lone Pine Koala Sanctuary
    Mon, Jun 29, 2020, 11:20 PM
    I have been testing, and latest version works fine on Moodle 3.9.
  • Thu, Jul 16, 2020, 2:59 AM

    i'm trying to set up stack with the MaximaPool Before I wanted to go to the next step (protection with http-auth), I called the function script.

    On the instance of my institution (moodle 3.5, but I still suspect a newer plugin version, since this was installed only recently) I get a timeout. Since I have no access to the server, I have no idea how to debug this.

    From my own instance (moodle 3.9) I can call the health check with no problems.

    Is there any idea how I can approach the problem?

    I can access the MaximaPool Site - It looks like this:

    Name Value
    Servlet started: 2020-07-07 09:03:14
    Up time: 8 days, 9 hours, 54 minutes, 36 seconds
    Active threads: 41
    Java free memory: 127.1 MB out of 252.0 MB total memory (3.9 GB max limit)
    System load: 0.06 over 6 processors

    Overall pool performance
    Name Value
    Processes starting up: 0
    Processes in use: 0
    Total number of processes started: 141301

    Running versions
    Pool performance - 2020042000
    Name Value
    Ready processes in the pool: 8
    Total processes started: 397
    Current demand estimate: 0.16354299545350473 Hz
    Current start-up time estimate: 83 ms
    Recent start-up times: 88 ms 79 ms 97 ms 76 ms 76 ms
    Recent request times: 18:57:20 18:57:30 18:57:30 18:57:41 18:57:41
  • Tue, Aug 25, 2020, 2:52 PM
    I want to use stack on my moodle, I have installed stack plugin but when I try to set questions I get a TIMEDOUT error. What else do I need to install on my server for stack to work and in which folder on the server. Thanks Evarist
  • Wed, Feb 10, 2021, 7:54 AM
    Is there any plan to build a virtual machine with moodle and complete stack, so that one can download it and check the installation and try stack on his own PC? That would be lovely!!!
  • Tue, Mar 2, 2021, 12:02 AM
    Hello All, trying to install the Stack type on moodle3.9. I am a little confused during the install process.
    1. Is Yaml required?
    2. Can Maxima happily reside on the moodle server or is it best to install on it's own server?

    Please advise, I am a little more confused than usual!
Please login to post comments