WeBWorK Presentation

MHEC OER Technology Working Group Presentation

Alex Jordan Robin Cruz
Portland Community College College of Idaho

Abstract

WeBWorK is an open source online homework platform for math and other STEM subject areas.

This slideshow contains:

  • demonstration of some WeBWorK problem types
  • a brief look at problem authoring code
  • new features in version 2.16
  • survey of self-help tools

Demonstrations

The following slides allow you to explore many of the types of question/answer that WeBWorK can handle. It is a long list, but not comprehensive.

Numerical Answers

Math Object Answers

Expression Answers

Equation and Inequality Answers

Multiple Choice

Graphical Answers

Dynamic Graphs

Essay Answers

Interrelated Answers

Scaffolded Questions

Hints and Solutions

Authoring

What Problem Code Looks Like

Simple example of WeBWorK problem code:

DOCUMENT();
loadMacros("PGstandard.pl", "MathObjects.pl", "PGML.pl",);

Context("Numeric");

$a = random(2,9,1);
$trigFunc = Formula("sin($a x)");
$trigDeriv = $trigFunc->D();

BEGIN_PGML
Find the derivative of the function [`f(x) = [$trigFunc]`].

[_]{$trigDeriv}{20}
END_PGML
ENDDOCUMENT();

First and Last

DOCUMENT();

...

ENDDOCUMENT();

These parts need to start and end the problem file.

Load Macros

loadMacros(
  "PGstandard.pl",
  "MathObjects.pl",
  "PGML.pl",
);

This loads tools that the problem uses. These three are standard tools, but there are many more for special tasks you may need.

Context

Context("Numeric");

A strength of WeBWorK is the notion of a “context”. Roughly, a context tells WeBWorK how to interpret strings. For example, to interpret (0,1) as an open interval versus a pair of coordinates. A context also tells WeBWorK how to handle the resulting mathematical objects. For example, whether or not to require a fraction answer to be fully reduced.

There are many default contexts you can load, and they can all be tweaked with follow-up commands after loading.

Problem Setup

$a = random(2,9,1);
$trigFunc = Formula("sin($a x)");
$trigDeriv = $trigFunc->D();

Typically you set up some variables the problem will use.

Statement

BEGIN_PGML
Find the derivative of the function [`f(x) = [$trigFunc]`].

[_]{$trigDeriv}{20}
END_PGML

Define what the end user will see.

New Features in 2.16

Manual Problem Grading and Feedback

Easily Change Student

While acting as a student, it's now easy to switch over to a different student.

Quiz Confirmation Dialog

Before starting a timed quiz, students must confirm their intent.

MathQuill Input

Miscellaneous

  • Upgrade to MathJax 3
  • Explanation essays (ask for a regular answer, separately ask for an explanation essay, but the essay part can be globally disabled)
  • Ability to reuse an achievement item (e.g. extend a due date more than once)
  • Graph Tool for graphical answers

  • Tikz image code to make dymanic images
  • Option for error tolerance to be digits-based
  • Students can enter symbols directly, e.g.  pasting ∞ instead of typing inf
  • More attention to layout and styling
  • Security features
  • Bug fixes
  • More, less interesting things

Community and Self-help Resources

openwebwork.org/

Wiki: webwork.maa.org/wiki/WeBWorK_Main_Page

Community Forum

webwork.maa.org/moodle/mod/forum/index.php?id=3

WeBWorK users post questions here and get help from the community members with more experience. In some cases, community members collaborate to solve a problem.

Source Code

github.com/openwebwork

There are three main repositories: webwork2 for the interface, pg for the problem engine, and webwork-open-problem-library.

The next genreration interface is brewing in the webwork3 repository.

Trainings

TWP and the MAA put on a virtual workshop: Introduction to WeBWorK to help people learn how to run a WeBWorK course. Has run the past couple of years at JMM and Mathfest.

Trainings from 2015, with recordings: webwork.maa.org/wiki/Problem_Authoring_Videos

Rationarium offers training as a service: www.rationarium.org/services

Hosting

A WeBWorK instance such as webwork.pcc.edu needs a host web server.

  • Having institutional support for a WeBWorK server is ideal.
  • For under $10 per month of cloud computing and domain registration costs, plus some knowledge of a Linux operating system, individuals can set up a WeBWorK server that can support a small school.
  • Runestone Interactive (www.runestoneinteractive.com/pages/webwork.html) offers hosting for $100 per course. (Alex has a side gig managing this server.)
  • Rationarium (www.rationarium.org) offers hosting and additional services.