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.
- Problem Techniques This page lists templates for WeBWorK problems in alphabetical order. This collection of templates can also be accessed through the associated category page: Category:Problem Techniques
- Subject Area Templates Some may find it useful to use this page where templates are ordered by subject area.
- Sample_Problems A third page with a collection of templates is this page of sample problems. These are very basic examples that illustrate the structure of a WeBWorK problem.
WeBWorK problems should be written with the use of MathObjects. Most of the templates mentioned above will include the MathObject Macros (recognizable by the line "MathObjects.pl" 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 This article includes a PG language overview, some comments about editing problems and ensuring server access.
- PGML (Template 4) shows the standard outline of a problem, which includes a tagging and description section, an initialization section, a problem set-up section, a text section, and optional answer and solution sections.
- See MathObjects for more information on authoring problems using MathObjects. For a quick reference see MathObjects reference table.
- Introduction to Contexts Using Numeric, Complex, Vector, Matrix, and Interval context in problems.
- Reduction rules for MathObject Formulas Includes a table of The Reduction Rules and their Actions.
- See PGLabs to try out code fragments on line -- including code fragments containing MathObjects. This is a quick way to learn the fine points of the MathObject syntax.
- Davide Cervone's presentation on PGML (PG markup language) to PREP, June, 2014 use guest login to view
Reference documents and manuals
- Applets, how to embed Flash and Java applets into WeBWorK questions.
- SequentialProblems revealing the problem one step at a time
- POD -- POD = "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.
- Doxygen Doxygen compiles a list of all the subroutines occurring in all the files from the webwork2 and pg directories. Can be used to find where a macro command is defined.
- WeBWorK Problem Authoring Tutorial aimed at people who already know TeX, but need to learn about Perl, PG, and MathObjects (pdf file) -- (by Paul Pearson).
- Customize Course This page includes a bit of code that allows student to obtain a new version of a problem.
- Notes on training authors, and suggestions for further documentation-- Sam Hathaway
- The Good Questions project at Cornell University 
- Converting CAPA problems for use with WeBWorK (This article has been retained as a historical document.)