Many multiple choice template
Download file: ManyMultipleChoice.pg
DOCUMENT(); loadMacros( 'PGstandard.pl', 'PGML.pl', 'parserPopUp.pl', 'PGgraders.pl', 'PGcourse.pl' );
Preamble
The PGchoicemacros.pl
macro is used to construct the list of multiple choice items, and the custom problem grader fluid from PGgraders.pl
is used for incremental grading.
$showPartialCorrectAnswers = 0; # Incremental grader install_problem_grader(~~&custom_problem_grader_fluid); $ENV{grader_numright} = [ 2, 4, 6 ]; $ENV{grader_scores} = [ 0.3, 0.6, 1 ]; $ENV{grader_message} = 'You can earn ' . '30% partial credit for 2 - 3 correct answers, and ' . '60% partial credit for 4 - 5 correct answers.'; # All or nothing grader # install_problem_grader(~~&std_problem_grader); # Questions and answers @s_and_a = ( [ 'All continuous functions are differentiable.', 'False' ], [ 'All differentiable functions are continuous.', 'True' ], [ 'All polynomials are differentiable.', 'True' ], [ 'All functions with positive derivatives are increasing.', 'True' ], [ 'All rational functions are continuous.', 'False' ], [ 'All exponential functions are differentiable.', 'True' ], [ 'All exponential functions are rational functions.', 'False' ], ); # Select six of the statements and answers to use. @statements = random_subset(6, @s_and_a);
Setup
Withhold feedback when answers are submitted by setting $showPartialCorrectAnswers = 0;
.
This problem uses an incremental grader called the custom_problem_grader_fluid
. With this problem grader, the number of correct answers [2, 4, 6]
and their corresponding scores [0.3, 0.6, 1]
must be specified. The last entry in the grader_numright
array must be the total number of questions asked, and the last entry in the grader_scores
array must be 1 (otherwise nobody can earn full credit!). The grader message can also be customized by setting the value of grader_message
to the desired custom message.
If a grader is desired that awards full credit when all questions are correct and no credit otherwise, use the commented out standard problem grader code instead.
Several questions and answers are defined, and a selection of them chosen via random_subset
to present to the student working the problem.
BEGIN_PGML Are the following statements true or false? [@ join("\n\n", map { '[_]{DropDownTF($statements[' . $_ . '][1])} [$statements[' . $_ . '][0]]' } 0 .. $#statements) @]** END_PGML
Statement
Display the statements and a True / False drop down for the answers that were selected.
BEGIN_PGML_SOLUTION The answers are [@ join("\n\n", map { '[$statements[' . $_ . '][1]]: [$statements[' . $_ . '][0]]' } 0 .. $#statements) @]** END_PGML_SOLUTION ENDDOCUMENT();
Solution
Show the statements and answers.