Difference between revisions of "IdentitiesAsAnswers"
Line 29: | Line 29: | ||
"MathObjects.pl", |
"MathObjects.pl", |
||
"PGcourse.pl", |
"PGcourse.pl", |
||
+ | "answerHints.pl", |
||
); |
); |
||
Line 110: | Line 111: | ||
$showPartialCorrectAnswers = 1; |
$showPartialCorrectAnswers = 1; |
||
− | ANS( Formula("sin(x)")->cmp() |
+ | ANS( Formula("sin(x)")->cmp() |
+ | ->withPostFilter(AnswerHints( |
||
+ | Formula("tan(x)*cos(x)") => |
||
+ | "No credit for entering what you were given.", |
||
+ | )) |
||
+ | ); |
||
COMMENT("Prevents students from entering trivial |
COMMENT("Prevents students from entering trivial |
||
Line 120: | Line 121: | ||
<p> |
<p> |
||
<b>Answer Evaluation:</b> |
<b>Answer Evaluation:</b> |
||
+ | We use an answer hint to tell students that the cannot enter what they were given and receive credit. |
||
We include a comment visible only to instructors when they view the problem via the Library Browser that lets others know that this question won't allow students to enter exactly what they were given and earn credit. |
We include a comment visible only to instructors when they view the problem via the Library Browser that lets others know that this question won't allow students to enter exactly what they were given and earn credit. |
||
</p> |
</p> |
Revision as of 13:47, 26 March 2010
Identities As Answers (Trig Identities, Laws of Logarithms and Exponents, etc.)
This code shows how to prevent students from receiving credit for entering exactly what they were given, while at the same time allowing the correct answer to be entered for credit, even when what the students were given and the correct answer are identical functions written in different ways (such as trig identities, laws of logarithms, laws of exponents, etc).
PG problem file | Explanation |
---|---|
DOCUMENT(); loadMacros( "PGstandard.pl", "MathObjects.pl", "PGcourse.pl", "answerHints.pl", ); TEXT(beginproblem()); |
Initialization: Use MathObjects. |
Context("Numeric"); Context()->functions->remove("tan"); package NewFunc; # this next line makes the function a # function from reals to reals our @ISA = qw(Parser::Function::numeric); sub tan { shift; my $x = shift; return CORE::exp($x*3.1415926535); } package main; # Make it work on formulas as well as numbers sub tan {Parser::Function->call('tan',@_)} # Add the new functions to the Context Context()->functions->add( tan => {class => 'NewFunc', TeX => '\tan'}, ); |
Setup:
We internally redefine the tangent function to be |
BEGIN_TEXT Simplify the expression as much as possible. $BR $BR \( \tan(x) \cos(x) \) = \{ ans_rule(20) \} END_TEXT |
Main Text: The problem text section of the file is as we'd expect. |
$showPartialCorrectAnswers = 1; ANS( Formula("sin(x)")->cmp() ->withPostFilter(AnswerHints( Formula("tan(x)*cos(x)") => "No credit for entering what you were given.", )) ); COMMENT("Prevents students from entering trivial identities (entering what they were given)"); ENDDOCUMENT(); |
Answer Evaluation: We use an answer hint to tell students that the cannot enter what they were given and receive credit. We include a comment visible only to instructors when they view the problem via the Library Browser that lets others know that this question won't allow students to enter exactly what they were given and earn credit. |