Open Problem Library

The WeBWorK Open Problem Library (OPL) contains problems contributed by faculty from many institutions which have used WeBWorK. Currently, there are approximately 25,000 problems in the OPL, and new problems are added regularly. The OPL was initially formed from several of the original File Based Problem Libraries, and includes all of the problems from the Arizona State, Rochester, Cal State Long Beach, University of Virginia libraries. It also contains most, if not all, of the problems from Union College, College of New Jersey, Dartmouth, Ohio State, Northern Arizona University, and Indiana University. Once known as the National Problem Library (NPL), the Open Problem Library naming convention was adopted in the summer of 2012 to accommodate the increasing internationalization of WeBWorK and the possible inclusion of problem libraries from textbook publishers.

In addition to merging problem collections from multiple institutions into a single collection, WeBWorK provides a different interface to these problems. Problems in the NPL are marked internally with metadata, and instructors can search for problems on the basis of this data. This mechanism is built into WeBWorK's library browser. In particular, one can search hierarchically by course, chapter, section. To a limited extent, problems have been indexed against sections of textbooks in which case an instructor can also search for problems on that basis. WeBWorK stores this information in a database, so part of the installation involves loading metadata into the database.

Faculty from institutions using WeBWorK are invited to submit new problems to the NPL. The NPL is one of the most popular features of WeBWorK, and it's value is based upon the many excellent contributions that have been recieved.

Contents

Obtaining the OPL

The Open Problem Library can be checked out from the WeBWorK Subversion repository via

svn co http://svn.webwork.maa.org/npl/trunk/NationalProblemLibrary

Installing the NPL

This section assumes you have an otherwise working WeBWorK installation. The standard Installation instructions recommend WeBWorK be installed into /opt/webwork, and the instuctions here assume that location. In fact, if you are installing WeBWorK for the first time, we recommend that you install the NPL using those instructions, which provide more context and may be easier to follow.

Assuming the rest of WeBWorK is in /opt/webwork/ proceed as follows to install the NPL. First, make sure you have an /opt/webwork/libraries directory:

$ mkdir -p /opt/webwork/libraries

The NPL can be downloaded from the npl SVN repository as described above and then moved under /opt/webwork/libraries/. Or, it can be downloaded directly into that directory:

Depending on your previous setup you may have to create additional symbolic links from the previous
locations of libraries to the current ones. In particular the popular file libraries are now contained
in the National Problem Library so you may need links such as

There is no need to add symlinks to course templates directory, as is necessary with file based Problem Libraries. It is done automatically.

Browsing the NPL

Log into a WeBWorK course and select Library Browser from the links menu. On the resulting screen, click the National Problem Library button.

Add this stanza in the global.conf file to obtain an "NPL Directory" button which will enable you to
browse the NationalProblemLibrary subdirectories.

# Additional library buttons can be added to the Library Browser (SetMaker.pm)
# by adding the libraries you want to the following line. For each key=>value
# in the list, if a directory (or link to a directory) with name 'key' appears
# in the templates directory, then a button with name 'value' will be placed at
# the top of the problem browser. (No button will appear if there is no
# directory or link with the given name in the templates directory.) For
# example,
#
# $courseFiles{problibs} = {rochester => "Rochester", asu => "ASU"};
#
# would add two buttons, one for the Rochester library and one for the ASU
# library, provided templates/rochester and templates/asu exists either as
# subdirectories or links to other directories. The "NPL Directory" button
# activated below gives access to all the sub directories in the National
# Problem Library.
#
$courseFiles{problibs} = {
Library => "NPL Directory",
# rochesterLibrary => "Rochester",
# asuLibrary => "Arizona State",
# dcdsLibrary => "Detroit CDS",
# dartmouthLibrary => "Dartmouth",
# indianaLibrary => "Indiana",
# osuLibrary => "Ohio State",
# capaLibrary => "CAPA",
# ucsbLibrary => "UCSB"
};

Updating the NPL

The SVN repository for the NPL is updated as problems are added, additional metadata is added, or problem bugs are fixed. So, it is a good idea to update your copy of the NPL periodically, say once per semester.