https://courses.webwork.maa.org/webwork2/cervone_course/Introduction/?effectiveUser=practice5&user=practice5&key=TQklozqMTgeRLVxjCPdbV3rLZ3Z0Csfp

I like these example problems and would like to construct similar examples, but for this set I don't see a "see source" button. Neither could I find them in the problem library or in Git.

Yoav

All the problems are ones that are in the OPL somewhere but they are scattered around. I was going to send you the set.def file, but it turns out that the problems have been moved to the course's local directory, so that won't really help (other than to give individual file names without their locations).

In any case, I'm not sure these 10 are the best examples to use for starting points for your own code. Many are quite old and use outdated techniques.

Your title suggests you are looking for PGML examples, but none of those 10 are PGML problems. They are plain or traditional PG. If you are looking for PGML examples, there are some linked intot he grey box at the PGML labs page.

Davide

I see, if these problems are not in PGML, then they are not of much use for me.

I am looking for answers to the following questions:

1) Suppose I have an answer to a question that is of the form $ans = Formula("($a+$b)! / ($a!*$b!)");

where $a and $b are randomly chosen positive integers. I would like the answer checker to compute the numeric answer and compare it to the

student's answer. I would also like it to present the expanded expression when giving the correct answer, as this is much more informative

than the numerical answer. I know how to do this in PG, but not in PGML.

2) How do I define long answers in PGML ?

3) How do I define hints in PGML. I am interested mostly in giving a hint, for one of the questions in a page, after the student tried answering it 2-3 times. I am also interested in Response-sensitive hints.

Can you answer these questions? Are there documents that answer them?

Yoav

$a = 2; $b = 3; BEGIN_PGML [_____]{"($a+$b)! / ($a!*$b!)"} END_PGMLwill show the correct answer as "(2+3)! / (2!*3!)".

Outside of PGML, you should use `Compute()`

rather than `Formula()`

to get this effect. The `Compute()`

function not only return the MathObject that is the result of your expression, but also sets its correct answer to be exactly the string you passed it, so that you control how the correct answer is displayed.

For (2), I'm not sure I understand what you mean by a long answer. Do you mean a longer answer blank? To do that in PGML, use more underscores, so

[_____________________]{"x+1"}would give a longer answer blank than

[______]{"x+1"}

For (3), that would be handled through the usual hint macros. Set the `$showHint`

variable to the number of attempts before you get the hint, and then use `HINT()`

or `BEGIN_HINT/END_HINT`

to provide the hint. If you want the hint to go in the middle of the problem, use two separate `BEGIN_PGML/END_PGML`

blocks with the hint placed in between.

I suppose hints and solutions are something that could be added to PGML to make this easier.

Davide

In (2) what I meant is "Solution" not "Answer".

If I understand correctly, the way to add Solutions and answers to

a PGML section is to simply add the commands

BEGIN_HINT

...

END_HINT

or

BEGIN_ANSWER

...

END_ANSWER

within the

BEGIN_PGML

END_PGML

block?

As for the answer, sample problem 4: http://webwork.maa.org/wiki/SampleProblem4

suggests that the right way to do it is use the block

BEGIN_PGML_SOLUTION

..... END_PGML_SOLUTION

*outside* of the BEGIN_PGML / END_PGML block...

it really would help if there was a formal definition of the PGML language

somewhere ...

Yoav

This is just like how you must use BEGIN_SOLUTION/END_SOLUTION outside of BEGIN_TEXT/END_TEXT. These can't be nested.

Yes, it would be nice if PGML were documented. I agree.

I never considered it to be a finished product (though it comes very close), and so hadn't written any documentation for it; but it got included into WeBWorK anyway. I guess that suggests that there is a real need for it, and people really wanted to be using it.

Davide