Difference between revisions of "Category:Authors:New authors landing page"

From WeBWorK_wiki
Jump to navigation Jump to search
(revise Basic Information paragraph to encourage use of PGML)
m (marked for deletion, page was created by error)
 
(18 intermediate revisions by one other user not shown)
Line 3: Line 3:
 
* '''[[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]]
 
* '''[[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 Templates|Subject Area Templates]]''' Some may find it useful to use this page where templates are ordered by subject area.
 
* '''[[:Category:Subject Area Templates|Subject Area Templates]]''' Some may find it useful to use this page where templates are ordered by subject area.
* '''[[: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.
+
* '''[[:Category:Sample_Problems|Sample_Problems]]''' Very basic examples that illustrate the structure of a WeBWorK problem.
   
 
==Basic Information==
 
==Basic Information==
New WeBWorK problems should be written in [[:Category:PGML|PGML]], using [[:Category:MathObjects|MathObjects]]. PGML implements markup, similar to the popular Markdown language, that gives authors greater control over formatting, and makes WeBWorK code easier to understand and maintain. MathObjects package mathematical entities such as numbers, formulas, vectors, matrices, sets, etc., into objects that behave in a natural way and contain methods for checking students' answers. Before PGML was available problems were written directly in PG, a set of macros that offer less control over formatting but are still required in some specific situations. Most older problems were written with PG using MathObjects. A few are written without MathObjects, but except in very specific cases that approach is strongly discouraged because it makes makes the code much more difficult to write and maintain.
+
WeBWorK problems are written in Perl, using three levels of macros. PG macros (the Problem Generation language) implement basic code e.g. randomization that sets up the problem. MathObject macros package mathematical entities such as numbers, formulas, vectors, matrices, sets, etc., into objects that behave in a natural way and contain methods for checking students' answers. PGML macros give authors greater control over the problem display and facilitate organizing the PG/MathObjects code in a way that makes the code easier to understand and maintain. Many older problems were written using only PG and MathObjects, or PG alone because MathObjects or PGML weren't available. Authors of new problems are encouraged to use all three levels of macros, except in certain specialized cases where the old methods work best.
   
Most of the templates mentioned above use the PGML and MathObject Macros. (Look for the lines "PGML.pl" and "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:
+
All of the templates mentioned above use PG, and most use the PGML and MathObject Macros. (Look for the lines "PGML.pl" and "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]]''' -- includes a PG language overview, some comments about editing problems and ensuring server access.
 
* '''[[Problem Authoring Background Information]]''' -- includes a PG language overview, some comments about editing problems and ensuring server access.
 
* '''[[:Category:MathObjects|MathObjects]]''' -- information on authoring problems using MathObjects.
 
* '''[[:Category:MathObjects|MathObjects]]''' -- information on authoring problems using MathObjects.
** '''[[MathObjects reference table]]''' -- a quick reference.
 
** '''[[Introduction to Contexts]]''' -- how to use Numeric, Complex, Vector, Matrix, Interval, and other contexts in problems.
 
** '''[[Reduction rules for MathObject Formulas]]''' -- a table of ''The Reduction Rules and their Actions''.
 
** '''[https://testcourses.webwork.maa.org/webwork2/PREP14_Problem_Authoring/Workshop2/?login_practice_user=true Davide Cervone's presentation on MathObjects to PREP, June, 2014]'''
 
 
* '''[[:Category:PGML|PGML]]''' -- information on authoring problem using the PGML markup language.
 
* '''[[:Category:PGML|PGML]]''' -- information on authoring problem using the PGML markup language.
** '''[[SampleProblem4 |Template 4]]''' -- the standard outline of a problem using PGML, which includes a ''tagging and description section'', ''an initialization section'', ''a problem set-up section'', ''a text section'', and optional ''answer and solution sections''.
 
** '''[https://testcourses.webwork.maa.org/webwork2/PREP14_Problem_Authoring/Workshop3-PGML/?login_practice_user=true Davide Cervone's presentation on PGML to PREP, June, 2014]'''
 
 
* '''[[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.
 
* '''[[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.
   
Line 23: Line 17:
 
* '''[https://github.com/drdrew42/WeBWorK-problem-authoring Intro to Problem Authoring]''' Introduction to the basics of Perl, MathObjects, and PGML (Nov 2020) -- includes problem templates
 
* '''[https://github.com/drdrew42/WeBWorK-problem-authoring Intro to Problem Authoring]''' Introduction to the basics of Perl, MathObjects, and PGML (Nov 2020) -- includes problem templates
 
* '''[[Problem Authoring Videos]]''' Complete course of streamed recordings from the PREP 2015 Workshop on Problem Authoring
 
* '''[[Problem Authoring Videos]]''' Complete course of streamed recordings from the PREP 2015 Workshop on Problem Authoring
* [[:Category:Applets|'''Applets''']], how to embed Flash and Java applets into WeBWorK questions.
 
* '''[[SequentialProblems]]''' revealing the problem one step at a time
 
 
* '''[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.
 
* '''[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.
* '''[[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.
 
 
* '''[[: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) -- (by Paul Pearson).
 
* '''[[: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) -- (by Paul Pearson).
* '''[[Customize_Course|Customize Course]]''' This page includes a bit of code that allows student to obtain a new version of a problem.
 
  +
* '''[http://pi.math.cornell.edu/~GoodQuestions/ The Good Questions project at Cornell University]'''
* '''[[TrainingAuthors |Notes on training authors]]''', and suggestions for further documentation-- Sam Hathaway
 
* The Good Questions project at Cornell University [http://www.math.cornell.edu/~GoodQuestions/]
 
* '''[[Converting CAPA problems for use with WeBWorK]]''' (This article has been retained as a historical document.)
 
   
 
==Other==
 
==Other==
Line 39: Line 27:
 
|-
 
|-
 
|style="width: 33%; border-width: 0px;"|{{projectline|Learning How to Author Problems | Learning How to Author Problems | Various tools and tricks for writing problems |echo-ambass-48px.png}}
 
|style="width: 33%; border-width: 0px;"|{{projectline|Learning How to Author Problems | Learning How to Author Problems | Various tools and tricks for writing problems |echo-ambass-48px.png}}
  +
|style="width: 33%; border-width: 0px;"|{{projectline|TrainingAuthors | Notes on training authors | and suggestions for further documentation-- Sam Hathaway |echo-ambass-48px.png}}
 
|}
 
|}
   
 
[[Category:Authors]]
 
[[Category:Authors]]
  +
[[Category:Needs_Deletion]]

Latest revision as of 15:06, 21 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.

Basic Information

WeBWorK problems are written in Perl, using three levels of macros. PG macros (the Problem Generation language) implement basic code e.g. randomization that sets up the problem. MathObject macros package mathematical entities such as numbers, formulas, vectors, matrices, sets, etc., into objects that behave in a natural way and contain methods for checking students' answers. PGML macros give authors greater control over the problem display and facilitate organizing the PG/MathObjects code in a way that makes the code easier to understand and maintain. Many older problems were written using only PG and MathObjects, or PG alone because MathObjects or PGML weren't available. Authors of new problems are encouraged to use all three levels of macros, except in certain specialized cases where the old methods work best.

All of the templates mentioned above use PG, and most use the PGML and MathObject Macros. (Look for the lines "PGML.pl" and "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 -- 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

Other

Echo-ambass-48px.png
Developers
Become a WeBWorK Developer
Gartoon-credits-48px.png
Contributors
WeBWorK Contributors - join us! (blog posts)
Echo-ambass-48px.png
Learning How to Author Problems
Various tools and tricks for writing problems
Echo-ambass-48px.png
Notes on training authors
and suggestions for further documentation-- Sam Hathaway

This category currently contains no pages or media.