## Question types: STACK

qtype_stack
Maintained by Christopher Sangwin, Tim Hunt
The STACK question type adds a sophisticated assessment in mathematics and related disciplines, with emphasis on formative assessment underpinned by computer algebra.
15k
3
Moodle 2.3, 2.4, 2.5

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
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:
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.

### Sets

This plugin is part of set STACK.

### Contributors

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

• Thu, Mar 21, 2013, 1:50 AM
Hi,
I tried to instal the plugin several times. I think I followed step by steps the instructions but when running STACK healthcheck I get the message:
The version of the STACK-Maxima libraries being used (So old the version is unknown!) does not match what is expected (2012122800) by this version the the STACK question type. It is not really clear how that happened. You will need to debug this problem yourself.

And CAS result
Warning, empty result!
unpack_raw_result: no results were returned by the CAS.

Unpacked result as
Array
(
)
Has anybody similar problema?
• Thu, Mar 21, 2013, 2:19 AM
Emilio,

It looks to me like PHP could not start a CAS process at all. Hence, there is no version number being returned. If you email me the HTML page you get back from the healthcheck, and let me know a little about your system I will be able to help more.

If you are on unix you need to ensure maxima is installed and working. Try the command line "maxima".

Chris
• Wed, Jul 17, 2013, 3:00 PM
Hi:
Getting this error with latest release:
Coding error detected, it must be fixed by a programmer: Cannot require a CSS file after has been printed.

Was able to test with Moodle 2.5 and previous release. Any idea what to verify?

Thanks
• Wed, Jul 17, 2013, 3:55 PM
I have not seen that error from STACK.

Can you try again with Debugging set to DEVELOPER level, and send us the full error message, including the stack trace.
• Fri, Jul 19, 2013, 12:37 AM
Hi Tim,
I hope you don't mind that STACK is now listed in http://docs.moodle.org/25/en/Question_types#Third-party_question_types

and there is a Moodle Docs page at http://docs.moodle.org/25/en/STACK_question_type , whish is also translated into spanish.

The STACK plugin English language strings are 90% translated into spanish and the translation should be finished in a month.
• Fri, Jul 19, 2013, 12:40 AM
Thanks German. Very helpful.
• Mon, Jan 13, 2014, 3:17 AM
Wonderfull, plugin. Thank you so much.
• Sun, Jan 19, 2014, 5:04 AM
Is there a french translation for Stack's feed back. Or a guide on how I could translate them?
• Sun, Jan 19, 2014, 5:48 AM
Malik, STACK conforms exactly to the normal Moodle system of language strings for plugins. E.g. http://docs.moodle.org/24/en/Translation Please do get involved in translating STACK. This would be very welcome. If you need STACK specific changes, e.g. splitting up strings for any reason, please let me know. Chris
• Tue, Mar 18, 2014, 8:53 AM
Loving STACK! --I entered a bug on your github page. Is that the best way to alert you of a problem?
• Tue, Mar 18, 2014, 3:38 PM
Yes. That is the preferred way to report bugs.

If you are not sure whether something is a bug or not, or if you just want advice, then the Moodle Maths forum (linked to as 'Discussion' above) is the best place to ask.
• Sat, Apr 5, 2014, 2:10 AM
Is it possible to have a subscript in a student answer? For example, I'd like to have as an answer ta: 1/(4*pi*epsilon[0])*q/r^2 (Coulomb's law for a point charge). When I preview the question, the epsilon[0] renders correctly as the Greek letter epsilon with a subscript zero, but STACK rejects this when entered as the answer with the message "map: improper argument: epsilon[0]". Is there any way to allow a student to enter a subscript?

Kevin
• Mon, Apr 7, 2014, 1:32 PM
HI Chris, sorry to keep bothering you. Getting ready for the new quarter by writing new STACK questions! I have a question about plotting:

I'm using STACK 2014032800 (installed via git). None of my plots are showing grid lines; they do show zero lines. ("The grid has been changed by adding the gnuplot commands set zeroaxis, set grid. This adds more grid lines than Maxima's default...") I am using Gnuplot 4.2.6 and Maxima 5.32.1 (I compiled Maxima on my OSX Lion machine, but not gnuplot):

STACK_SETUP(ex):=block(
MAXIMA_VERSION_NUM:31.3,
TMP_IMAGE_DIR:"/Library/WebServer/moodledata/stack/tmp/",
IMAGE_DIR:"/Library/WebServer/moodledata/stack/plots/",
PLOT_TERMINAL:"png",
PLOT_TERM_OPT:"large transparent size 450,300",
DEL_CMD:"rm",
GNUPLOT_CMD:"/Applications/Gnuplot.app/Contents/Resources/bin/gnuplot",
MAXIMA_VERSION:"5.31.3",
URL_BASE:"!ploturl!",
true)$/* We are using an optimised lisp image with maxima and the stack libraries pre-loaded. That is why you don't see the familiar load("stackmaxima.mac")$ here. */

Any insight as to why grid lines are not showing up? In case it's relevant, changing [nticks] has no effect, either.

Thanks again,

Kevin.

• Tue, Dec 2, 2014, 12:38 AM
It seems that, if you edit the requirements in the version.php files for all the required plugins, specifically
* $plugin->requires change that value to 2013051400 * (qbehaviours only)$plugin->dependencies change all the version numbers there to 2013050100.

then STACK v3.3.3 will work with Moodle 2.5. However, we don't recomment that you use an un-supported version of Moodle. There are security risks. You should upgrade your version of Moodle instead. But, if you can't you may still be able to run the latest STACK.
• Wed, Mar 25, 2015, 9:52 PM
Hi, i'm getting an error "CAS failed to return any evaluated expressions. Please check your connection with the CAS". Anyone can help with this?