PGLabs

From WeBWorK_wiki
Jump to navigation Jump to search

On-line labs for rendering of PG code. These two labs allow you to experiment with PG syntax.

Test your PG code fragments[edit]

Click on this link to go to PG calculator:

https://demo.webwork.rochester.edu/webwork2/wikiExamples/MathObjectsLabs2/2/?login_practice_user=true

For example you could enter the code fragment below into the calculator:

   Context("Numeric");
   $f = Compute("x^2-3x+5");
   $fp = $f->D; # calculate the derivative
   checkAnswer($fp, "2x-3");      # the first argument is a MathObject, the second the student's answer string
  • On the last line TEXT prints the results of (reading from left to right)
    • Constructing the AnswerEvaluator for the contents of the Formula $fp
    • Evaluating the string "2x-3" using this AnswerEvaluator to produce an AnswerHash
    • Recursively representing the contents of the AnswerHash in a nice table.

checkAnswer() inserts its arguments into a more complicated command. e.g. last line above becomes:

   TEXT($fp->cmp->evaluate("2x-3")->pretty_print);

PGML markup lab[edit]

  • Experiment with the new PG markup language syntax (PGML) which simplifies the graphical layout of the mathematics question.

https://courses1.webwork.maa.org/webwork2/cervone_course/PGML?login_practice_user=true

Several dozen questions illustrating the use of PGML:

https://courses1.webwork.maa.org/webwork2/cervone_course/PGML-examples/?login_practice_user=true

To use these commands in your own courses you will need to include PGML.pl in your loadMacros() segment. Start the display of your problem text with BEGIN_PGML which expands to

   TEXT(PGML::Format2(<<'END_PGML'));

and end with END_PGML. These are used instead of the usual BEGIN_TEXT/END_TEXT construction. You can use both BEGIN_TEXT/END_TEXT and BEGIN_PGML/END_PGML in the same problem, if you wish. See SampleProblem4 for an example (with explanation) that uses PGML.