PG Code Camp


Dates: July 20-22, 2021


The PG workshop will have two focus groups:

  1. Those who have been writing PG problems for some time and have ideas for new, interesting and hopefully effective problems, but the tools they need from the PG code base aren’t available, or are too clunky to use effectively.  They would be asked to develop specs (collaboratively)  so that someone else could help write the necessary code to achieve their aims.
  2. The second group of people would be those with more technical expertise, perhaps those who have developed specialized PG problems that work for them, but might be difficult for others to understand and use or might be too specialized.  The goal here is to collaboratively move widgets that “work on my machine” to well designed widgets that are well documented and work for everyone.


The underlying code for rendering problems has been developed over 25 years by many programmers.  Much of the code is still being used in essential ways. Some of it is obsolete, badly written, or not being used and this causes confusion for those maintaining the code. At the same time problem authors are constantly coming up with new ideas and widgets and using new software technologies to improve the educational value of using online math homework. Repairing the PG infrastructure and integrating the new technologies and ideas is long overdue. 


  • Expand the number of people in the WeBWorK community who are comfortable developing new PG macros and refining and repairing existing ones.
  • Create new macros to integrate the new technologies and implement the innovative ideas for presenting math problems
  • Replace specialized PG problems and tools being used at one or two sites with portable robust implementations that can be more widely used. 
  • Update the infrastructure of the PG language, remove technical debt, obsolete code, uniformize the author’s interface to the extent possible and improve the technology used to maintain documentation.

We are looking for people interested in getting more involved in the problem rendering aspect of WeBWorK.  Some experience with writing WeBWorK problems is important as is flexibility and willingness to learn. Ideas about how to use WeBWorK more effectively in STEM education are welcome.   More extensive coding experience in any language would also be a plus for those interested in working on the infrastructure aspects.  Perl is the original underlying language of PG but much of the added technology involves javaScript, HTML5, and other newer languages.  While some participants will have extensive experience with coding this is also an opportunity for those interested in learning the techniques for coding educational problems.