# question/type/stack

<div class="mw-content-ltr mw-parser-output" dir="ltr" id="bkmrk-stack-question-type-" lang="en"><div class="sideblock"><table class="infobox"><tbody><tr><th>**<a class="mw-selflink selflink">STACK question type</a>**</th></tr><tr><td>Type </td><td>question type </td></tr><tr><td>Set </td><td>N/A </td></tr><tr><td>Downloads </td><td>[https://moodle.org/plugins/qtype\_stack](https://moodle.org/plugins/qtype_stack)</td></tr><tr><td>Issues </td><td>[https://github.com/maths/moodle-qtype\_stack/issues](https://github.com/maths/moodle-qtype_stack/issues)</td></tr><tr><td>Discussion </td><td>[https://moodle.org/mod/forum/view.php?id=752](https://moodle.org/mod/forum/view.php?id=752)</td></tr><tr><td>Maintainer(s) </td><td>[<bdi>Tim Hunt</bdi>](/503/en/User:Tim_Hunt)</td></tr></tbody></table>

</div><div class="alert alert-info">**Note:** You can find the most up-to-date English documentation for this plugin in the authors' GitHub webpage at [https://github.com/maths/moodle-qtype\_stack](https://github.com/maths/moodle-qtype_stack). This page is intended for users that click on the 'Moodle Docs for this page' link and for Moodle users of languages other than English (IN OTHER LANGUAGES link at the bottom of this page).</div><div class="sideblock right" style="width: 14em;"><div class="header">[Questions](/503/en/Questions "Questions")</div><div class="content">

- [Managing questions](/503/en/Managing_questions "Managing questions")
- [Question behaviours](/503/en/Question_behaviours "Question behaviours")
- [Question permissions](/503/en/Question_permissions "Question permissions")
- [Question types](/503/en/Question_types "Question types")
    - [Calculated](/503/en/Calculated_question_type "Calculated question type")
    - [Simple Calculated](/503/en/Simple_calculated_question_type "Simple calculated question type")
    - [Drag and drop into text](/503/en/Drag_and_drop_into_text_question_type "Drag and drop into text question type")
    - [Drag and drop markers](/503/en/Drag_and_drop_markers_question_type "Drag and drop markers question type")
    - [Drag and drop onto image](/503/en/Drag_and_drop_onto_image_question_type "Drag and drop onto image question type")
    - [Calculated Multichoice](/503/en/Calculated_multichoice_question_type "Calculated multichoice question type")
    - [Description](/503/en/Description_question_type "Description question type")
    - [Essay](/503/en/Essay_question_type "Essay question type")
    - [Matching](/503/en/Matching_question_type "Matching question type")
    - [Embedded Answers (Cloze)](/503/en/Embedded_Answers_(Cloze)_question_type "Embedded Answers (Cloze) question type")
    - [Multiple Choice](/503/en/Multiple_Choice_question_type "Multiple Choice question type")
    - [Ordering](/503/en/Ordering_question_type "Ordering question type")
    - [Random Short Answer Matching](/503/en/Random_Short-Answer_Matching_question_type "Random Short-Answer Matching question type")
    - [Select missing words](/503/en/Select_missing_words_question_type "Select missing words question type")
    - [Short-Answer](/503/en/Short-Answer_question_type "Short-Answer question type")
    - [Numerical](/503/en/Numerical_question_type "Numerical question type")
    - [True/False](/503/en/True/False_question_type "True/False question type")
    - [Third-party question types](/503/en/Third-party_question_types "Third-party question types")
- [Questions FAQ](/503/en/Questions_FAQ "Questions FAQ")

</div></div>STACK stands for System for Teaching and Assessment using a Computer algebra Kernel.

- [<span class="tocnumber">1</span> <span class="toctext">Overview</span>](#bkmrk-overview)
- [<span class="tocnumber">2</span> <span class="toctext">Details</span>](#bkmrk-details)
- [<span class="tocnumber">3</span> <span class="toctext">Official User Documentation</span>](#bkmrk-official-user-docume-1)
- [<span class="tocnumber">4</span> <span class="toctext">Where to start</span>](#bkmrk-where-to-start)
    - [<span class="tocnumber">4.1</span> <span class="toctext">Teachers</span>](#bkmrk-teachers)
    - [<span class="tocnumber">4.2</span> <span class="toctext">Students</span>](#bkmrk-students)
    - [<span class="tocnumber">4.3</span> <span class="toctext">Administrators</span>](#bkmrk-administrators)
    - [<span class="tocnumber">4.4</span> <span class="toctext">Developers</span>](#bkmrk-developers)
- [<span class="tocnumber">5</span> <span class="toctext">See also</span>](#bkmrk-see-also)

</div>## <span class="mw-headline" id="bkmrk-overview">Overview</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

<span class="mw-default-size" typeof="mw:File">[![](https://docs.moodle.org/503/en/images_en/1/11/STACK-logo-trans.png)](/503/en/File:STACK-logo-trans.png)</span>

STACK is an open-source system for computer-aided assessment in Mathematics and related disciplines, with emphasis on formative assessment. This documentation is for version 3 of STACK, which provides a question type for the Moodle quiz. More about what we are trying to achieve can be found under [the philosophy of STACK](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/About/The_philosophy_of_STACK.md).

## <span class="mw-headline" id="bkmrk-details">Details</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

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.

```
if
    simplify(student_answer-teacher_answer) = 0
then
    mark = 1,
else
    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: 
    - Textual comments for the student.
    - A numerical mark.
    - 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.

## <span class="mw-headline" id="bkmrk-official-user-docume-1">Official User Documentation</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

See the [Official User Documentation](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/About/index.md) for the STACK project.

## <span class="mw-headline" id="bkmrk-where-to-start">Where to start</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

### <span class="mw-headline" id="bkmrk-teachers">Teachers</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

- [Authoring questions](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Authoring/index.md), including an [authoring quick start guide](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Authoring/Authoring_quick_start.md).
- [Question testing](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Authoring/Testing.md).
- [Deploying questions](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Authoring/Deploying.md).
- [Reporting](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Authoring/Reporting.md)
- [Frequently asked questions](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Authoring/Author_FAQ.md)

### <span class="mw-headline" id="bkmrk-students">[Students](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Students/index.md)</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

- [Frequently asked questions](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Students/FAQ.md).
- [Input instructions](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Students/Answer_input.md).
- [How answers are assessed](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Students/Answer_assessment.md).

### <span class="mw-headline" id="bkmrk-administrators">Administrators</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

- For [Installation instructions](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Installation/index.md).
- The [STACK installation instructions](/503/en/STACK_installation_instructions "STACK installation instructions") in Moodle Docs

### <span class="mw-headline" id="bkmrk-developers">[Developers](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Developer/index.md)</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

- [Developer docs](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/Developer/index.md)

More about what we are trying to achieve can be found under [the philosophy of STACK](http://localhost/question/type/stack/doc/doc.php/About/The_philosophy_of_STACK.md).

## <span class="mw-headline" id="bkmrk-see-also">See also</span><span class="mw-editsection-divider"> \| </span><span class="mw-editsection-bracket">\]</span>

- [Official User Documentation for the STACK project](https://github.com/maths/moodle-qtype_stack/blob/master/doc/en/index.md)
- [Website URL](http://stack.bham.ac.uk/)
- [Source control URL](https://github.com/maths/moodle-qtype_stack)
- [Bug tracker](https://github.com/maths/moodle-qtype_stack/issues)
- [Discussion](https://moodle.org/mod/forum/view.php?id=752)

---

<small>Source: [docs.moodle.org/503/en/question/type/stack](https://docs.moodle.org/503/en/question/type/stack) — MoodleDocs (GPL) · Imported 2026-11-10.</small>