Difference between revisions of "Authors"

From WeBWorK_wiki
Jump to navigation Jump to search
(Created page with "== Learning how to Author WeBWorK problems == * See '''Problem Authoring Background Information''' and '''sample problems''' If you're ju...")
 
 
(40 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== Learning how to Author WeBWorK problems ==
 
  +
==Templates==
 
  +
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.
* See '''[[Problem Authoring Background Information]]''' and '''[[:Category:Sample Problems|sample problems]]''' If you're just starting out.
 
  +
* '''[https://openwebwork.github.io/pg-docs/sample-problems/techniques.html Problem Techniques]''' listed alphabetically.
* See '''[[SubjectAreaTemplates|subject area templates]]''' if you're looking for complete examples from very basic to advanced.
 
  +
* '''[[Problem Techniques]]''' This page lists old templates for WeBWorK problems in alphabetical order. ''The problems on this link are out of date and should only be accessed for historical reasons.''
* See '''[[:Category:Problem_Techniques|index of problem techniques]]''' section if you need help with one particular construct.
 
  +
* '''[[:Category:Subject Area Templates|Subject Area Templates]]''' Some may find it useful to use this page where templates are ordered by subject area.
* See ''' [[SampleProblem4 |PGML]]''' (Template 4) to learn techniques which simplify formatting the appearance of the questions.
 
  +
* '''[[:Category:Sample_Problems|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.
* See '''[[:Category:MathObjects|MathObjects]]''' for more information on authoring problems using MathObjects.
 
* 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.
 
   
== Basic info and Sample 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. Some were written without MathObjects, but that practice is now strongly discouraged except in very specific circumstances.
   
* [[Problem Authoring Background Information]] (Big picture overview)
 
  +
Most of the templates mentioned above use MathObjects, and many use PGML macros -- look for "MathObjects.pl" and "PGML.pl" in the LoadMacros section of the code. For learning the basics of coding problems the following pages are recommended:
* '''[[:File:WeBWorK_Problem_Authoring_Tutorial.pdf|Problem Authoring Tutorial]]''' aimed at people who already know TeX, but need to learn about Perl, PG, and MathObjects.
 
  +
* '''[[Problem Authoring Background Information]]''' -- includes a PG language overview, some comments about editing problems and ensuring server access.
* [[:Category:Sample Problems|Index of Sample Problems]]
 
  +
* '''[[:Category:MathObjects|MathObjects]]''' -- information on authoring problems using MathObjects.
** [[SampleProblem1|Template 1]] (the basic structure of a WeBWorK PG problem file)
 
  +
* '''[[:Category:PGML|PGML]]''' -- information on authoring problem using the PGML markup language.
** [[old-style example template|SampleProblem1a]] (old-style, non-MathObjects example)
 
  +
* '''[[PGLabs|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.
** [[SampleProblem2|Template 2]] (formulas, multiple choice, and string entry problems)
 
** [[SampleProblem3|Template 3]] (dynamically generated graphs)
 
** '''NEW''' --[[SampleProblem4|Template 4]] (illustrates PGML markup)
 
* More Advanced Sample Problems
 
** ....
 
   
== Reference Documents ==
 
  +
==Tutorials==
   
* '''[[:Category:Problem Techniques|Index of Problem Techniques]]''' ** very useful code fragments
 
  +
* '''[[Learning How to Author Problems]]'''
* '''[[SubjectAreaTemplates | Subject Area Templates]]''' ** complete examples for questions on various math subjects
 
  +
* '''[[Writing Your Own Homework Problems Using PGML]]'''
* '''[http://webwork.maa.org/pod/pg_TRUNK/ 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.
 
  +
* '''[[:File:WeBWorK_Problem_Authoring_Tutorial.pdf| WeBWorK Problem Authoring Tutorial]]''' aimed at people who already know TeX, but need to learn about Perl, PG, and MathObjects (pdf file).
* '''[[PGLabs]]''', On-line labs for rendering of PG code. These labs allow you to interactively experiment with PG syntax online.
 
  +
* '''[[University of Lethbridge programming examples and libraries]]'''
* [https://courses.webwork.maa.org/webwork2/cervone_course/PGML-examples/?login_practice_user=true '''PGML''' ] formatting examples.
 
  +
* '''[https://demo.webwork.rochester.edu/webwork2/2017_Davide_Cervone_PREP_course PREP 2017 WeBWorK Problem Authoring Workshop]''' text, some exercises. Use the '''Guest Login'''.
* The Good Questions project at Cornell University [http://www.math.cornell.edu/~GoodQuestions/]
 
  +
* '''[[Problem Authoring Videos]]''', recordings from the PREP 2015 Problem Authoring Workshop.
   
== Manuals and HOWTOs ==
+
== Reference documents and manuals ==
   
* '''[[File:WeBWorK_Problem_Authoring_Tutorial.pdf| WeBWorK Problem Authoring Tutorial]]''' aimed at people who already know TeX, but need to learn about Perl, PG, and MathObjects.
 
  +
* '''[https://webwork.maa.org/pod 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.
* '''[[:Category:MathObjects|MathObjects]]''', an object system for manipulating mathematics in WeBWorK questions.
 
** '''[[PGLabs]]''', On-line labs for rendering of PG code. These labs allow you to interactively experiment with PG syntax online.
 
**[https://courses.webwork.maa.org/webwork2/cervone_course/PGML-examples/?login_practice_user=true '''PGML''' ]-- Davide Cervone's newest addition to the PG authoring language makes it easier to describe the layout of a question. The new commands and an interactive environment for experimenting with them are available on the [[PGLabs]] page.
 
 
 
* [[Customize_Course]]
 
* [[:Category:Applets|'''Applets''']], how to embed Flash and Java applets into WeBWorK questions.
 
* Specialized HOWTOS
 
** [[SequentialProblems]] revealing the problem one step at a time
 
** [[Converting CAPA problems for use with WeBWorK]]
 
 
* '''[[TrainingAuthors |Notes on training authors]]''', and suggestions for further documentation-- Sam Hathaway
 
* '''[[TrainingAuthors |Notes on training authors]]''', and suggestions for further documentation-- Sam Hathaway
 
  +
* '''[http://pi.math.cornell.edu/~GoodQuestions/ The Good Questions project at Cornell University]'''
== Background information ==
 
(older reference material )
 
 
* [[Problem Authoring Background Information]]
 
* [[Basic Perl syntax]] {{--}} PG is based on Perl, so it is important to know some basic Perl syntax.
 
**[[How BEGIN_TEXT...END_TEXT blocks work]]
 
* [[Problem Authoring Best Practices]] for problem authoring.
 
** [[What to do if you find a bug in a problem]]
 
** [[Tagging Problems]] with metadata for indexing and searching.
 
   
   
[[Category:Top]]
+
[[Category:Authors]]

Latest revision as of 10:01, 28 June 2023

Templates

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 listed alphabetically.
  • Problem Techniques This page lists old templates for WeBWorK problems in alphabetical order. The problems on this link are out of date and should only be accessed for historical reasons.
  • 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.

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. 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 "MathObjects.pl" and "PGML.pl" in the LoadMacros section of the code. For learning 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.

Tutorials

Reference documents and manuals