Difference between revisions of "New Authors landing page"
m 

(81 intermediate revisions by 10 users not shown)  
Line 1:  Line 1:  
−  This guide contains information about authoring WeBWorK problems. 

−  
−  * If you're just starting out, see the [[Problem Authoring Background Information]] and [[:Category:Sample Problemssample problems]] first. 

−  * If you're working on a problem in a specific area you may find the more advanced templates useful. 

−  * If you're working on a problem and want to find out how to do one particular thing the [[:Category:Problem_Techniquesindex of problem techniques]] may be useful. 

−  * Use the online calculators to try things out. 

−  == Manuals and HOWTOs == 

+  ==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]]''' 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]] 

+  * '''[[:Category:Subject Area TemplatesSubject Area Templates]]''' Some may find it useful to use this page where templates are ordered by subject area. 

+  * '''[[:Category:Sample_ProblemsSample_Problems]]''' A third page with a collection of templates is this page of 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, and some were written without MathObjects, but that practice is now strongly discouraged except in very specific circumstances. 

−  * [[Problem Authoring Best Practices]] for problem authoring. 

−  * [[How BEGIN_TEXT...END_TEXT blocks work]] 

−  * [[:Category:MathObjectsMathObjects]], an object system for manipulating mathematics in WeBWorK problems. 

−  * [[Tagging Problems]] with metadata for indexing and searching. 

−  * [[PGLabs]], Online labs for rendering of PG code. These labs allow you to experiment with PG syntax online. 

−  * [[SequentialProblems]] revealing the problem one step at a time 

−  * [[Converting CAPA problems for use with WeBWorK]] 

−  * [[What to do if you find a bug in a problem]] 

−  == Sample Problems == 

+  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 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. 

+  * '''[[:Category:MathObjectsMathObjects]]'''  information on authoring problems using MathObjects. 

+  * '''[[:Category:PGMLPGML]]'''  information on authoring problem using the PGML markup language. 

+  * '''[[PGLabsPGLabs]]'''  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. 

−  * [[:Category:Sample ProblemsIndex of Sample Problems]] 

+  ==Tutorials== 

−  ** [[SampleProblem1Template 1]] (the basic structure of a WeBWorK PG problem file) 

−  ** [[oldstyle example templateSampleProblem1a]] (oldstyle, nonMathObjects example) 

−  ** [[SampleProblem2Template 2]] (formulas, multiple choice, and string entry problems) 

−  ** [[SampleProblem3Template 3]] (dynamically generated graphs) 

−  * More Advanced Sample Problems 

−  == Reference Documents == 

+  * '''[[Learning How to Author Problems]]''' 

+  * '''[[Writing Your Own Homework Problems Using PGML]]''' 

+  * '''[[: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). 

+  * '''[[University of Lethbridge programming examples and libraries]]''' 

+  * '''[[Problem Authoring Videos]]''', recordings from the PREP 2015 Problem Authoring Workshop. 

−  * [[:Category:Problem TechniquesIndex of Problem Techniques]] 

+  == Reference documents and manuals == 

−  * [http://webwork.maa.org/doc/cvs/pg_CURRENT PG macro/library documentation from CVS] 

+  
−  * [[TrainingAuthors Notes on training authors]], and suggestions for further documentation Sam Hathaway 

+  * '''[https://webwork.maa.org/pod/ 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. 

−  * The Good Questions project at Cornell University [http://www.math.cornell.edu/~GoodQuestions/] 

+  
−  [[Category:Top]] 

+  * '''[[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]''' 

+  
+  [[Category:Authors]] 
Latest revision as of 15:59, 16 June 2021
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 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.
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 "MathObjects.pl" and "PGML.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  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.
 PGLabs  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
 Learning How to Author Problems
 Writing Your Own Homework Problems Using PGML
 WeBWorK Problem Authoring Tutorial aimed at people who already know TeX, but need to learn about Perl, PG, and MathObjects (pdf file).
 University of Lethbridge programming examples and libraries
 Problem Authoring Videos, recordings from the PREP 2015 Problem Authoring Workshop.
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.
 Notes on training authors, and suggestions for further documentation Sam Hathaway
 The Good Questions project at Cornell University