New Authors landing page

From WeBWorK_wiki
Revision as of 16:58, 16 June 2021 by Gjennings (talk | contribs)
Jump to navigation Jump to search


Most people write problems starting from templates. Problems from the OPL can be modified to suit individual needs, or existing problem templates can be used to create new problems.

Basic Information

WeBWorK problems should be written with the use of MathObjects, PG and PGML. MathObjects package things like numbers, vectors, matrices, etc., into a convenient form that controls formatting and includes an answer checker. PG provides many macros that generate random numbers, graphics, compute statistical distributions, etc. PGML gives authors finer control over a problem's display, and helps organize code in a way that is easy to maintain. Many older problems were written without PGML, and some were written without MathObjects, but that practice is now strongly discouraged except in very specific circumstances.

Most of the templates mentioned above use MathObjects and many use PGML macros (look for "" and "" in the LoadMacros section of the code). For those who would like to read up on the basics of coding problems the following pages are recommended:

  • Problem Authoring Background Information -- includes a PG language overview, some comments about editing problems and ensuring server access.
  • MathObjects -- information on authoring problems using MathObjects.
  • PGML -- information on authoring problem using the PGML markup language.
  • PG-Labs -- try out code fragments on line including code fragments containing MathObjects and PGML. This is a quick way to learn the fine points of the MathObject and PGML syntax.


Reference documents and manuals

  • POD -- POD (for WeBWorK/PG 2.15) = "plain old documentation" -- original documentation embedded in the code files -- this is the place to find the most complete and most technical description of macro behaviors.