Difference between revisions of "Overview of Problem Libraries"

From WeBWorK_wiki
Jump to navigation Jump to search
(formatting improvements)
Line 1: Line 1:
__TOC__
 
  +
== National Problem Library (NPL) ==
=National Problem Library (NPL)=
 
   
 
The National Problem Library contains problems from several of the File Based Problem Libraries, including 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.
 
The National Problem Library contains problems from several of the File Based Problem Libraries, including 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.
   
In addition to merging these problem collections into a single collection, WeBWorK provides a different interface to these problems. Problems in the NPL are marked internally with meta-data, 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 meta-data into the database.
+
In addition to merging these problem collections 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.
  +
  +
=== Obtaining the NPL ===
   
<dl>
 
<dt>Obtaining the NPL
 
<dd>
 
 
First, make sure you have an <code>/opt/webwork/libraries</code> directory:
 
First, make sure you have an <code>/opt/webwork/libraries</code> directory:
<pre>
 
  +
$ mkdir -p /opt/webwork/libraries
+
$ mkdir -p /opt/webwork/libraries
</pre>
 
   
 
The database problem library can be downloaded from the ASU CVS repository.
 
The database problem library can be downloaded from the ASU CVS repository.
<pre>
 
$ cd /opt/webwork/libraries
 
$ cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/asu co database_problems
 
</pre>
 
   
If you are running WeBWorK 2.3.x, you must create a <code>ProblemLibrary</code> database on your MySQL server. (<strong>*</strong> represents the MySQL root password.)
 
  +
$ cd /opt/webwork/libraries
<pre>
 
  +
$ cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/asu co database_problems
$ mysql -u root
 
  +
Password: *****
 
  +
If you are running WeBWorK 2.3.x, you must create a <code>ProblemLibrary</code> database on your MySQL server. (<strong>*****</strong> represents the MySQL root password.)
&gt; CREATE DATABASE ProblemLibrary;
 
  +
&gt; GRANT SELECT on ProblemLibrary.* TO webworkWrite@localhost;
 
  +
$ mysql -u root
&gt; quit
 
  +
Password: *****
Bye.
 
  +
&gt; CREATE DATABASE ProblemLibrary;
$
 
  +
&gt; GRANT SELECT on ProblemLibrary.* TO webworkWrite@localhost;
</pre>
 
  +
&gt; quit
  +
Bye.
  +
$
   
 
If you are running WeBWorK 2.4.x, this is not necessary as the NPL indexes are stored within the main <code>webwork</code> database.
 
If you are running WeBWorK 2.4.x, this is not necessary as the NPL indexes are stored within the main <code>webwork</code> database.
Line 34: Line 28:
 
Configure WeBWorK to access the problem library. The settings are in <code>global.conf</code>:
 
Configure WeBWorK to access the problem library. The settings are in <code>global.conf</code>:
   
<strong><em>For WeBWorK 2.3.x:</em></strong>
+
'''''For WeBWorK 2.3.x:'''''
   
<table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>variable</strong> </th><th bgcolor="#99CCCC"> <strong>description</strong> </th></tr>
 
  +
{| border="1"
<tr><td> <code>$problemLibrary{root}</code> </td><td> Path to <code>database_problems</code> directory. Should be <code>/opt/webwork/libraries/database_problems</code>. </td></tr>
 
  +
|-
  +
| '''variable''' || '''description'''
  +
|-
  +
| <code>$problemLibrary{root}</code> || Path to <code>database_problems</code> directory. Should be <code>/opt/webwork/libraries/database_problems</code>.
  +
|-
  +
| <code>$problemLibrary{version}</code> || Version of the problem library database. Should be =2=.
  +
|-
  +
| <code>$problemLibrary{sourceSQL}</code> || Name of the database. Should be <code>ProblemLibrary</code>.
  +
|-
  +
| <code>$problemLibrary{userSQL}</code> || Username to use when connecting to the database. Can usually be left as <code>$database_username</code>.
  +
|-
  +
| <code>$problemLibrary{passwordSQL}</code> || Password to use when connecting to the database. Can usually be left as <code>$database_password</code>.
  +
|}
   
<tr><td> <code>$problemLibrary{version}</code> </td><td> Version of the problem library database. Should be <code>2</code>. </td></tr>
 
  +
'''''For WeBWorK 2.4.x'''''
<tr><td> <code>$problemLibrary{sourceSQL}</code> </td><td> Name of the database. Should be <code>ProblemLibrary</code>. </td></tr>
 
<tr><td> <code>$problemLibrary{userSQL}</code> </td><td> Username to use when connecting to the database. Can usually be left as <code>$database_username</code>. </td></tr>
 
   
<tr><td> <code>$problemLibrary{passwordSQL}</code> </td><td> Password to use when connecting to the database. Can usually be left as <code>$database_password</code>. </td></tr>
 
  +
{| border="1"
</table>
 
  +
|-
  +
| '''variable''' || '''description'''
  +
|-
  +
| <code>$problemLibrary{root}</code> || Path to <code>database_problems</code> directory. Should be <code>/opt/webwork/libraries/database_problems</code>.
  +
|-
  +
| <code>$problemLibrary{version}</code> || Version of the problem library database. Should be =2=.
  +
|-
  +
| <code>$problemLibrary_db{dbsource}</code> || Name of the database. Can usually be left as $database_dsn.
  +
|-
  +
| <code>$problemLibrary_db{user}</code> || Username to use when connecting to the database. Can usually be left as <code>$database_username</code>.
  +
|-
  +
| <code>$problemLibrary_db{passwd}</code> || Password to use when connecting to the database. Can usually be left as <code>$database_password</code>.
  +
|}
   
  +
Finally, populate the database:
   
<strong><em>For WeBWorK 2.4.x</em></strong>
+
'''''For WeBWorK 2.3.x:'''''
   
<table border="1" cellspacing="0" cellpadding="1"> <tr><th bgcolor="#99CCCC"> <strong>variable</strong> </th><th bgcolor="#99CCCC"> <strong>description</strong> </th></tr>
 
  +
Run the <code>loadDB2</code> script to populate the database. This script must be run from the <code>database_problems</code> directory.
   
<tr><td> <code>$problemLibrary{root}</code> </td><td> Path to <code>database_problems</code> directory. Should be <code>/opt/webwork/libraries/database_problems</code>. </td></tr>
 
  +
$ cd /opt/webwork/libraries/database_problems
<tr><td> <code>$problemLibrary{version}</code> </td><td> Version of the problem library database. Should be <code>2</code>. </td></tr>
 
  +
$ ./loadDB2
  +
What is the root password for mysql? *****
  +
Mysql database reinitialized
  +
Converting data from tagged pgfiles into mysql.
  +
$
   
<tr><td> <code>$problemLibrary_db{dbsource}</code> </td><td> Name of the database. Can usually be left as $database_dsn. </td></tr>
 
  +
'''''For WeBWorK 2.4.x:'''''
<tr><td> <code>$problemLibrary_db{user}</code> </td><td> Username to use when connecting to the database. Can usually be left as <code>$database_username</code>. </td></tr>
 
<tr><td> <code>$problemLibrary_db{passwd}</code> </td><td> Password to use when connecting to the database. Can usually be left as <code>$database_password</code>. </td></tr>
 
   
</table>
 
  +
Run the NPL-update script to populate the database. This script is located in the <code>webwork2/bin</code> directory and may be invoked from anywhere.
   
Finally, populate the database:
 
  +
$ /opt/webwork/webwork2/bin/NPL-update
  +
Mysql database reinitialized.
  +
Reading in textbook data.
  +
Converting data from tagged pgfiles into mysql.
  +
Number of files processed:
  +
100 200 300 400 500 600 700 800 900 1000
  +
...
  +
Done.
  +
$
   
<strong><em>For WeBWorK 2.3.x:</em></strong>
 
  +
There is no need to add symlinks to course <code>templates</code> directory, as is necessary with file based Problem Libraries. It is done automatically.
   
Run the <code>loadDB2</code> script to populate the database. This script must be run from the <code>database_problems</code> directory.
 
  +
=== Browsing the NPL ===
<pre>
 
$ cd /opt/webwork/libraries/database_problems
 
$ ./loadDB2
 
What is the root password for mysql? *****
 
Mysql database reinitialized
 
Converting data from tagged pgfiles into mysql.
 
$
 
</pre>
 
   
  +
Log into a WeBWorK course and select '''Library Browser''' from the links menu. On the resulting screen, click the '''Problem Library''' button.
   
<strong><em>For WeBWorK 2.4.x:</em></strong>
 
  +
=== Updating the NPL ===
   
Run the NPL-update script to populate the database. This script is located in the <code>webwork2/bin</code> directory and may be invoked from anywhere.
 
  +
The CVS 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.
<pre>
 
$ /opt/webwork/webwork2/bin/NPL-update
 
Mysql database reinitialized.
 
Reading in textbook data.
 
Converting data from tagged pgfiles into mysql.
 
Number of files processed:
 
100 200 300 400 500 600 700 800 900 1000
 
...
 
Done.
 
$
 
</pre>
 
   
There is no need to add symlinks to course <code>templates</code> directory, as is necessary with file based Problem Libraries. It is done automatically.
 
  +
To update, run the <code>cvs update</code> command to download the latest versions from our server. Then, re-run <code>loadDB2</code> (WeBWorK 2.3.x) or NPL-update (WeBWorK 2.4.x).
   
<dt>Browsing the NPL
 
  +
$ cd /opt/webwork/libraries/database_problems
<dd>
 
  +
$ cvs -q update -dPA
Log into a WeBWorK course and select <strong>Library Browser</strong> from the links menu. On the resulting screen, click the <strong>Problem Library</strong> button.
 
  +
$ ./loadDB2
  +
What is the root password for mysql? *****
  +
Mysql database reinitialized
  +
Converting data from tagged pgfiles into mysql.
  +
$
   
<dt>Updating the NPL
+
=== Contributing to the NPL ===
<dd>
 
The cvs repository for the NPL is updated as problems are added, additional meta-data 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.
 
   
To update, run the <code>cvs update</code> command to download the latest versions from our server. Then, re-run <code>loadDB2</code> (WeBWorK 2.3.x) or NPL-update (WeBWorK 2.4.x).
 
<pre>
 
$ cd /opt/webwork/libraries/database_problems
 
$ cvs -q update -dPA
 
$ ./loadDB2
 
What is the root password for mysql? *****
 
Mysql database reinitialized
 
Converting data from tagged pgfiles into mysql.
 
$
 
</pre>
 
 
<dt>Contributing to the NPL
 
<dd>
 
 
If you have written new problems, you might like to contribute contribute them to the NPL so others can benefit from them as well.
 
If you have written new problems, you might like to contribute contribute them to the NPL so others can benefit from them as well.
<ul>
 
<li>[[Tagging Problems]]
 
<li>[[How to Submit Problems to the NPL]]
 
</ul>
 
   
</dl>
 
  +
* [[Tagging Problems]]
  +
* [[How to Submit Problems to the NPL]]
  +
  +
== File Based Problem Libraries ==
   
=File Based Problem Libraries=
 
 
These libraries consist of a directory tree organized roughly by the chapters of
 
These libraries consist of a directory tree organized roughly by the chapters of
 
a canonical calculus book (or in some cases a canonical text for another subject).
 
a canonical calculus book (or in some cases a canonical text for another subject).
There is no database index of tagged meta-data.
+
There is no database index of tagged metadata.
   
It is envisioned that the material in these libraries will eventually be given meta-data,checked for errors and duplicates and folded into the NPL.
+
It is envisioned that the material in these libraries will eventually be given metadata,checked for errors and duplicates and folded into the NPL.
   
 
The CVS links allow you to inspect the question collections from the web.
 
The CVS links allow you to inspect the question collections from the web.
   
See [[ CvsProblemLibraryInstructions]] for instructions on downloading the contents of these libraries via CVS.
+
See [[ CvsProblemLibraryInstructions]] for instructions on downloading the contents of these libraries via CVS.
 
 
 
<dl>
 
<dl>
Line 243: Line 241:
 
------
 
------
   
You can find tarballs of these library problems at http://webhost.math.rochester.edu/webworkdocs/librarytarballsLibrary
+
You can find tarballs of these library problems at http://webhost.math.rochester.edu/webworkdocs/librarytarballs
 
=Additonal Problem Library Information =
 

Revision as of 20:38, 1 February 2008

National Problem Library (NPL)

The National Problem Library contains problems from several of the File Based Problem Libraries, including 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.

In addition to merging these problem collections 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.

Obtaining the NPL

First, make sure you have an /opt/webwork/libraries directory:

$ mkdir -p /opt/webwork/libraries

The database problem library can be downloaded from the ASU CVS repository.

$ cd /opt/webwork/libraries
$ cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/asu co database_problems

If you are running WeBWorK 2.3.x, you must create a ProblemLibrary database on your MySQL server. (***** represents the MySQL root password.)

$ mysql -u root
Password: *****
> CREATE DATABASE ProblemLibrary;
> GRANT SELECT on ProblemLibrary.* TO webworkWrite@localhost;
> quit
Bye.
$

If you are running WeBWorK 2.4.x, this is not necessary as the NPL indexes are stored within the main webwork database.

Configure WeBWorK to access the problem library. The settings are in global.conf:

For WeBWorK 2.3.x:

variable description
$problemLibrary{root} Path to database_problems directory. Should be /opt/webwork/libraries/database_problems.
$problemLibrary{version} Version of the problem library database. Should be =2=.
$problemLibrary{sourceSQL} Name of the database. Should be ProblemLibrary.
$problemLibrary{userSQL} Username to use when connecting to the database. Can usually be left as $database_username.
$problemLibrary{passwordSQL} Password to use when connecting to the database. Can usually be left as $database_password.

For WeBWorK 2.4.x

variable description
$problemLibrary{root} Path to database_problems directory. Should be /opt/webwork/libraries/database_problems.
$problemLibrary{version} Version of the problem library database. Should be =2=.
$problemLibrary_db{dbsource} Name of the database. Can usually be left as $database_dsn.
$problemLibrary_db{user} Username to use when connecting to the database. Can usually be left as $database_username.
$problemLibrary_db{passwd} Password to use when connecting to the database. Can usually be left as $database_password.

Finally, populate the database:

For WeBWorK 2.3.x:

Run the loadDB2 script to populate the database. This script must be run from the database_problems directory.

$ cd /opt/webwork/libraries/database_problems
$ ./loadDB2
What is the root password for mysql? *****
Mysql database reinitialized
Converting data from tagged pgfiles into mysql.
$ 

For WeBWorK 2.4.x:

Run the NPL-update script to populate the database. This script is located in the webwork2/bin directory and may be invoked from anywhere.

$ /opt/webwork/webwork2/bin/NPL-update
Mysql database reinitialized.
Reading in textbook data.
Converting data from tagged pgfiles into mysql.
Number of files processed:
   100   200   300   400   500   600   700   800   900  1000
...
Done.
$ 

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 Problem Library button.

Updating the NPL

The CVS 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.

To update, run the cvs update command to download the latest versions from our server. Then, re-run loadDB2 (WeBWorK 2.3.x) or NPL-update (WeBWorK 2.4.x).

$ cd /opt/webwork/libraries/database_problems
$ cvs -q update -dPA
$ ./loadDB2
What is the root password for mysql? *****
Mysql database reinitialized
Converting data from tagged pgfiles into mysql.
$ 

Contributing to the NPL

If you have written new problems, you might like to contribute contribute them to the NPL so others can benefit from them as well.

File Based Problem Libraries

These libraries consist of a directory tree organized roughly by the chapters of a canonical calculus book (or in some cases a canonical text for another subject). There is no database index of tagged metadata.

It is envisioned that the material in these libraries will eventually be given metadata,checked for errors and duplicates and folded into the NPL.

The CVS links allow you to inspect the question collections from the web.

See CvsProblemLibraryInstructions for instructions on downloading the contents of these libraries via CVS.

Arizona State University Math Problem Library (CVS )
This problem library is now empty. All of the problems have been moved into the National Problem Library.
The College of New Jersey Math Problem Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/tcnj co tcnj_problib The College of New Jersey (TCNJ) makes a large number of linear algebra problems available in this collection. Please send links of any problems that don't work to Tom Hagedorn (hagedorn@tcnj.edu.
Dartmouth College Library CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/dartmouth co dartmouth_problib This library has problems compatible with the Marsden and Tromba multi-dimensional calculus book. It also has problems compatible with the later chapters in Stewart's calculus book.http://cvs.webwork.rochester.edu/viewcvs.cgi/dartmouth_problib/?cvsroot=Dartmouth+College
Detroit County Day School Math Problem Library (High School) (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/dcds co dcds_problib These high school and pre-calculus level problems were written by Mark Schmidt at Detroit Country Day School. Send corrections to gage at math.rochester.edu or to M. Schmitt at dcds.edu
Freeman: Problems inspired by Raguski Calculus book (CVS )
Indiana University Math Problem Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/indiana co indiana_problib
Northern Arizona University Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/nau co nau_problib The Northern Arizona University Library has new problems for graph theory, for statistics and for pre-calculus. The setExamples cleans up some of the problems in Rochester Library's setMAAtutorial and adds several more. Send corrections to Nandor.Sieben@NAU.EDU.
Union College Math Problem Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/union co union_problib The Union College Math Problem Library should now be fully funcitonal. A few of the problems may not work as advertised, since they may have trouble finding the links to auxiliary materials, such as external graphs. Davide Cervones and Kathryn Leash are principally responsible for designing these problems. The level set and 3d problems are particularly nice!! Please send links of any problems that don't work to gage at math.rochester.edu or dpvc at union.edu or even better enter them into bugzilla via the "report problem bugs" on the PG editor page.
UC Santa Barbara and Brooks/Cole: Problems inspired by Stewart's Calculus book (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/ucsb co ucsb_problib
University of Georgia Math Problem Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/uga co uga_problib
University of Michigan Math Problem Library (CVS)
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/umich co umich_problib This library contains problems related to the Hughes-Hallet et.al. Harvard Calculus text. Send corrections to Gavin Larose (glarose at umich.edu) or even better enter them into bugzilla via the "report problem bugs" on the PG editor page. WeBWorK mathematics homework problems created at the University of Georgia. Send corrections to Ted Ashton (ashted at math.uga.edu) or even better enter them into bugzilla via the "report problem bugs" on the PG editor page.
University of Rochester Math Problem Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/rochester co rochester_problib The Rochester Math Problem Library should now be fully funcitonal. A few of the problems may not work as advertised, since they may have trouble finding the links to auxiliary materials, such as external graphs. Please send links of any problems that don't work to gage at math.rochester.edu or even better enter them into bugzilla via the "report problem bugs" on the PG editor page. The Rochester library includes many problems prepared by Zbigniew Fiedorowicz at Ohio State University as well as a large number of problems prepared by Jun Wang at Alabama State University
University of Rochester Physics Problem Library (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/rochester co rochester_physics_problib These physics problems were originally written in CAPA and mechanically translated into the PG language. Thanks to help from Frank Wolfs the .eps file pictures now display properly.
University of Rochester Grade 8 Math Problems (CVS )
Command line command for cvs checkout: cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/rochester co rochester_grade8problems These problems, written largly by Tori Sweetser, contain material at the level of the New York State 8th grade exams. Many of these problems are written using the multiple choice and matching tools. Send corrections to gage@math.rochester.edu

You can find tarballs of these library problems at http://webhost.math.rochester.edu/webworkdocs/librarytarballs