Grading[Quiz] - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Grading 

  • Quiz
 

  • generate an interactive quiz
 

 

Calling Sequence 

Parameters 

Options 

Description 

Examples 

Compatibility 

Calling Sequence 

Quiz( question_statement, grader, init, options ) 

Quiz( MapleTAImport ) 

Parameters 

question_statement 

- 

string or module 

grader 

- 

procedure or value 

init 

- 

procedure or value 

MapleTAImport 

- 

Record imported by MapleTA:-Import 

Options 

  • style = math, truefalse, multiplechoice, multipleselect, or multiline
 

  • The style option specifies the kind of question to display.  A multiline question expects a fully-worked multi-line solution as a response where the grade procedure should return a list of strings as feedback for each line of the response.
 

  • scramble = true or false
 

  • The scramble option applies only to multiple choice and multiple select style questions.  The order of the entries are displayed in a random order.  The default is true.
 

  • solution = procedure
 

  • The solution option is used to specify a procedure that will generate the steps explaining the solution steps for the given problem.  The procedure takes no arguments and must return output suitable for passing to Student:-Basics:-OutputStepsRecord for formatting.  This can be as simple as a list of text and math, each entry appearing on a single line.
 

  • hint = procedure
 

  • The hint option is used to specify a procedure that will display a hint. The procedure takes no arguments and must return output suitable for passing to Student:-Basics:-OutputStepsRecord for formatting.  This can be as simple as a list of text and math, each entry appearing on a single line.
 

  • mathsize = [width,height]
 

  • This size is used to format the answer input box.
 

  • plotsize = [width,height]
 

  • This size is used to format the size of any plot that appears in the question.
 

  • gradebyindex = true or false
 

  • For multiple choice and multiple select questions the default for this option is true.  This indicates that the correct answer should be tested against the index or set of indices of the pre-scrambled choices.  When gradebyindex=false, the result should be compared against the correct elements themselves.
 

  • numchoices = integer
 

  • This can be used to specify the maximum number of choices in a multiple-choice question if there could be more than five choices and it is not obviously determined by the initialization data.
 

  • inertform = true or false
 

  • When set to true, values returned from an answer area and sent to the grading routine will use the InertForm format to prevent automatic simplification.  This option only applies to the implicitly presented output area and response math container.  It does not affect Get or Set values.
 

  • name = string
 

  • This option is used to give the question a name when used in conjunction with output = mapleta.
 

  • output = quiz, `module`, canvas, showcanvas, or mapleta
 

  • The output option determines the return behavior of the Quiz command.  The default is to generate an interactive quiz.  Choosing output = `module` returns a Record structure encapsulating the data used to drive the interactive quiz. To generate a canvas that can be deployed to Maple Learn, and suitable for use with DocumentTools:-Canvas, use the output=canvas option. The final option, output=mapleta, causes a Record structure to be returned in such format that is suitable for giving to the MapleTA:-Export command so the quiz can be used in Maple T.A.
 

  • decodeentities = true or false
 

  • By default, entities in the question text, like "<" are decoded to the character they represent.  To turn this off, use the option, decodeentities=false.
 

  • title = string
 

  • If this option is used, a title is displayed above the question text.
 

  • The following options pertain to generating multiple questions by passing in an array of modules generated by calling the Quiz command with the 'output'=`module` option:
 

  • numberformat = identical(roman,lowercaseroman,none,decimal,alpha,lowercasealpha) := decimal
 

  • When displaying an array of questions each question is numbered using decimal numbers by default.  Optionally roman numerals, alphabetic characters, or no numbering can be chosen.
 

  • numberstyle = identical(Text,Heading1,Heading2,Heading3):=Heading3
 

  • When displaying an array of questions, the text style used to display the introductory numbered heading can be one of these styles.
 

  • numberprefix = string := "Question "
 

  • The prefix in front of a numbered question can be specified with the numberprefix option.
 

  • border = truefalse := false
 

  • A border can be optionally turned on around each question when displaying an array of questions.
 

Description 

  • The Quiz command generates a simple interactive tool that displays a question, accepts a response, and grades the response. If the question generation is algorithmic, then it also offers the ability to try another version of the question with new random variables.
 

  • The question_statement should be a string containing the text of the question.  Blanks can be implicitly assigned by including "$" variables within the question text.  The first argument can also be a previously generated question module or array of question modules built using the Quiz command with the option 'output'=`module`.
 

  • The grader argument is either the correct answer, or a procedure that returns true or 1 for a correct answer and false or 0 for an incorrect response.
 

  • The grader procedure will be passed two arguments -- the response and init-value.  These can be used or ignored as needed.  The user's response can also be fetched by calling Quiz:-Get to get the "$RESPONSE" variable.
 

  • The init argument is either an initial value or a procedure that generates initial values.  For multiple choice questions init can be a list of choices.
 

  • As a procedure, init takes no arguments. It can either set "$" variables using Quiz:-Set, or return a value that will be implicitly filled into the question.
 

  • The related QuizBuilder provides an interface that helps you make custom Quiz questions and comes loaded with sample questions.
 

Examples 

The Quiz Example Worksheet provides a number of examples with detailed explanations.  A few simple questions are reproduced here.  

In order to test the following examples, make sure you open the help page as a worksheet.  The components are not interactive when viewed within the help system. 

> with(Grading); -1
 

> Quiz(
 

Is 1+1=2?

ImageImage
 

ImageImage 

> Quiz("Is the following number prime?", true, proc(r) nextprime(rand(r..r+20)()) end proc, 'style' = truefalse, 1000);
 

Is the following number prime?

Embedded componentImageImage
 

ImageImage
Image
 

> init := proc ()
   local fn, n, choices;
   choices := [sin(x), cos(x), tan(x)];
   n := rand(1..numelems(choices))();
   fn := choices[n];
   Quiz:-Set(`$FUNC` = fn);
   [plot(fn), plot(-fn), plot(Pi*fn, x = -2*Pi .. 2*Pi)];
end proc:
 

> Quiz(
 

 

The following example shows how to generate and display multiple questions from the same procedure, using the 'output'=`module` option.  Note that since `module` is a keyword, it needs left single quotes around it in order to parse as a name. 

Which is a plot of Embedded component?

Image
 

Image 

Image 

Image 

Image 

Image 

 

 

 

 

 

ImageImage
Image
 

> A := Array(); -1
 

> A(1) := Grading:-Quiz(
 

> A(2) := Grading:-Quiz(
 

> A(3) := Grading:-Quiz(
 

> A(4) := Grading:-Quiz(
A(4) := Grading:-Quiz(
A(4) := Grading:-Quiz(
A(4) := Grading:-Quiz(
 

> Grading:-Quiz(A, numberformat = lowercaseroman, numberprefix =
Grading:-Quiz(A, numberformat = lowercaseroman, numberprefix =
 

Question 1.i 

Is 1 + 1 = 2?

ImageImage
 

ImageImage 

Question 1.ii 

What is 1 + 1?

Embedded component
 

ImageImage 

Question 1.iii 

 

Pick C.

Image
 

Embedded component 

Image 

Embedded component 

Image 

Embedded component 

 

 

 

 

 

ImageImage 

Question 1.iv 

 

The following example includes a "Show Solution" button: 

Which of the following could be portions of the plot of sin(x)?

Image
 

Image 

Image 

Image 

Image 

Image 

 

 

 

 

ImageImage 

> with(Grading); -1
 

> Quiz("There are $A balls in $B sacks",
proc() evalb(Quiz:-Get(`$RESPONSE`) = binomial(Quiz:-Get(`$A`),Quiz:-Get(`$B`)) ) end,
proc() Quiz:-Set(`$A`=rand(5..10)());
       Quiz:-Set(`$B`=rand(1..4)());
       1;
end proc,
'solution' = proc()
      local a := Quiz:-Get(`$A`);
      local b := Quiz:-Get(`$B`);
      [["Compute the Binomial Coefficient", %binomial(a,b) = `%/`(%factorial(a),`%*`(%factorial(b), `%+`(a,-b)!))],
       ["Result:", binomial(a,b)]]
end
);
 

There are Embedded component balls in Embedded component sacks

Embedded component
 

ImageImage
Image
Image
 

Compatibility 

  • The Grading[Quiz] command was introduced in Maple 18.
 

  • For more information on Maple 18 changes, see Updates in Maple 18.
 

  • The Grading[Quiz] command was updated in Maple 2022.
 

  • The solution, gradebyindex and decodeentities options were introduced in Maple 2022.
 

  • The output option was updated in Maple 2022.
 

  • For more information on Maple 2022 changes, see Updates in Maple 2022.
 

  • The hint and title options were introduced in Maple 2023.
 

  • For more information on Maple 2023 changes, see Updates in Maple 2023.
 

See Also 

examples/Quiz 

MapleTA 

QuizBuilder