Difference between revisions of "MultipleChoicePopup2"

From WeBWorK_wiki
Jump to navigation Jump to search
(6 intermediate revisions by 2 users not shown)
Line 2: Line 2:
   
 
[[File:MultipleChoicePopup2.png|300px|thumb|right|Click to enlarge]]
 
[[File:MultipleChoicePopup2.png|300px|thumb|right|Click to enlarge]]
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;">
+
<p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;">
 
This PG code shows how to write a multiple choice question in which all of the options are displayed to the student and the student can only choose one correct answer (it uses radio buttons).
 
This PG code shows how to write a multiple choice question in which all of the options are displayed to the student and the student can only choose one correct answer (it uses radio buttons).
 
</p>
 
</p>
* Download file: [[File:MultipleChoicePopup2.txt]] (change the file extension from txt to pg when you save it)
 
  +
* File location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Misc/MultipleChoicePopup2.pg FortLewis/Authoring/Templates/Misc/MultipleChoicePopup2.pg]
* File location in NPL: <code>FortLewis/Authoring/Templates/Misc/MultipleChoicePopup2.pg</code>
 
  +
* PGML location in OPL: [https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/FortLewis/Authoring/Templates/Misc/MultipleChoicePopup2_PGML.pg FortLewis/Authoring/Templates/Misc/MultipleChoicePopup2_PGML.pg]
   
   
Line 77: Line 77:
 
<b>Setup:</b>
 
<b>Setup:</b>
 
To create a radio object, use <code>$popup = PopUp([choices,...],correct);</code>
 
To create a radio object, use <code>$popup = PopUp([choices,...],correct);</code>
For details, see [http://webwork.maa.org/pod/pg_TRUNK/macros/parserPopUp.pl.html parserPopUp.pl.html] The context is not really necessary, but multiple choice questions are often follow-up questions, so we leave it in.
+
For details, see [http://webwork.maa.org/pod/pg/macros/parserPopUp.html parserPopUp.pl] The context is not really necessary, but multiple choice questions are often follow-up questions, so we leave it in.
 
</p>
 
</p>
 
</td>
 
</td>
Line 89: Line 89:
 
Context()->texStrings;
 
Context()->texStrings;
 
BEGIN_TEXT
 
BEGIN_TEXT
My favorite color is
+
Is my favorite color red, blue, or green?
 
\{ $popup->menu() \}
 
\{ $popup->menu() \}
 
END_TEXT
 
END_TEXT
Line 97: Line 97:
 
<p>
 
<p>
 
<b>Main Text:</b>
 
<b>Main Text:</b>
  +
Since popup menus hide their choices, we write the entire list of choices into the question. It is essential to do this, otherwise a student who is working from a PDF copy of their homework won't know what the options are and won't be able to answer the question.
 
</p>
 
</p>
 
</td>
 
</td>
Line 150: Line 151:
   
 
[[Category:Top]]
 
[[Category:Top]]
[[Category:Authors]]
+
[[Category:Sample Problems]]
  +
[[Category:Subject Area Templates]]

Revision as of 18:06, 7 April 2021

Multiple Choice Question with a Popup Menu

Click to enlarge

This PG code shows how to write a multiple choice question in which all of the options are displayed to the student and the student can only choose one correct answer (it uses radio buttons).



Templates by Subject Area

PG problem file Explanation

Problem tagging data

Problem tagging:

DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"parserPopUp.pl",
);

TEXT(beginproblem());

Initialization: We need parserPopUp.pl

Context("Numeric");

$popup = PopUp(
  ["?","Red","Blue","Green"],
  "Blue",
);

Setup: To create a radio object, use $popup = PopUp([choices,...],correct); For details, see parserPopUp.pl The context is not really necessary, but multiple choice questions are often follow-up questions, so we leave it in.

Context()->texStrings;
BEGIN_TEXT
Is my favorite color red, blue, or green?
\{ $popup->menu() \}
END_TEXT
Context()->normalStrings;

Main Text: Since popup menus hide their choices, we write the entire list of choices into the question. It is essential to do this, otherwise a student who is working from a PDF copy of their homework won't know what the options are and won't be able to answer the question.

install_problem_grader(~~&std_problem_grader);

$showPartialCorrectAnswers = 0;

ANS( $popup->cmp() );

Answer Evaluation: We withhold feedback by choosing not to show partially correct answers. We use the standard problem grader, which gives full credit or no credit. For other graders, see weighted graders

Context()->texStrings;
BEGIN_SOLUTION
${PAR}SOLUTION:$PAR
The correct answer is \{ $popup->correct_ans() \}
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();

Solution:

Templates by Subject Area