Webwork starting instructions

Webwork starting instructions, Department of Mathematics

University of Oregon

Here are some basic things you'll need to know to start teaching with WeBWorK. (I'm happy to help with more information):


There are a couple ways to do this. I'll cover two.
  1. Many of you (if for example you are teaching Math 111, 112 or Math 251) will have pre-made homework set templates you could use (or edit).

    To get these templates to show up for your course:

  2. To create a new problem set (not from a department supplied template) you'll need to do Instuctor Tools -> Hmwk Sets Editor -> Create ...

    You can set the due date, the opening date (when students can start answering problems), and the date that corect answers are shown to the students. (You can always change all of these things later.)

    I usually set the opening date in the past since I'm not wanting to hide the problems from the students (also see the step of assigning users), the due date at 11:59pm on the night I want them to be done, and the show answers date to the same thing.

    There is an argument to put the "show answers" date in the future by a couple days in case you want to be able to give individuals extensions.

    NOTE: Don't put a period or underscore in the name of your problem set. If any of your problems contain images, then students will have trouble printing them if there is a period in the name of your problem set. The same caution goes if you write your own problems. They will be in files with the ".pg" extension. Don't put any other periods in the problem name. Similarly, if your problem includes an image, it will be a file ending in ".gif" and you don't want any other periods in that problem name either.

  3. Then to put problems into the homework set:

    Library Browser -> Add problems to Target Set (select here)

    then under the "Browse" paragraph the "National Problem Library" should be grayed out since it should be automatically the selection. You can then select Subject, Chapter, Section and click "View Problems". Note that you can select how many problems to view at once, and that WeBWorK needs to compile these problems. If you

    Then click on problems you want to add, and then click on "Update Set"

    You can also do an advanced search, and search by textbook and chapter, which is sometimes useful, though only a few textbooks have many problems entered. (Stewart is one that has a lot of problems entered, but often for the 5th edition.)

    One annoying issue, if you click on a bunch of problems on the first page, and then go to the next page, and then click "update set" it won't add the problems you clicked on on the first page.

    I often do "Max. Shown = All" unless there are many hundreds of problems in the category I've chosen.

  4. Assign problem set to users. You need to do this step however you create the problem set. Students won't be able to see the problem set until you assign it to them (which is good, since you don't have to worry about them getting confused by draft problem sets).

    Hmwk Sets Editor -> Click on the numbers under "Edit Assigned Users" in the row corresponding to the homework you want to assign.

    One option on the page that comes up will be the "Assign to All Current Users" which is almost always what you want to do.

    [Note on visible/hidden sets. If you discover a problem with a set you have already assigned to students and you need to hide it from them, you can make that set "hidden" in the "Hmwk Sets Editor" (you'll have to make it visible again once you are ready for students to see it again).

    If you create a set in the "Library Browser", it defaults to hidden. If you create it in the "Hmwk Sets Editor", it defaults to visible (though in both cases the default is not to assign it to any students).]

  5. Note on assigning problem sets: attempts to edit problem sets that are not assigned to you can result in strange error messages. Of course nothing will get harmed by this, but you may have trouble editing the problem set.


There is some pre-made material you can use for various courses. Problems have been written already for Math 106, 111, 112, 241, 242. You can find these by seleting the "Library Browser" and then clicking on "Browse Local Problems" and selecting the appropriate "Local Problems."

Some courses also have sample homework assignments that you may be able to use. These are available for Math 111, 112, 251 as described above under A. of "HOW TO CREATE A HOMEWORK ASSIGNMENT.


There are several things you should do to test the assignment.


Note: Rosters will be added automatically from now on, but I'm preserving this section of this document in case special exceptions develop. But everything below that is in gray should be irrelevant to you.

The other task that requires some initial work is populating the course with students. We are creating rosters and moving them to the webwork directories for individual courses in the office, but there is still one step that you'll have to do:

That's it.

We'll update the roster file (Math111-23456.lst, or whatever is appropriate for your course) every morning between 8 and 9 am for the first two weeks of class. But we don't have a way of automatically running the "Import users" command from above, so you'll want to do that regularly for the first two weeks.

This will add any new students who register. It won't delete students who drop, so if you care about doing that, you may want to do that by hand once drop date has passed. Or you can just not delete the dropped students. Leaving them on your roster won't do any harm.

One caution: when you add new students, homework sets which were assigned to old students are not automatically assigned to the new students. The easy way to fix this is to go to Hmwk Sets Editor, click on the "Edit Assigned Users" column for the active homework set, and then click on "Assign to All Current Users" at the top of the page that comes up. You'll need to do this each day that you actually add users.

(If you wish to short circuit what we are doing in the office by putting the MathXXX-CRNXXX.lst files into your directory, here is what you would do.

Summary: download roster from DuckWeb, run a perl script which converts it into a form WeBWorK likes, then upload the output of the perl script into WeBWorK.

Adding your entire roster in detail:

  1. Download html-classlist-duckid to your desktop. This is the script that converts the roster from DuckWeb into the format that WeBWorK expects.
  2. go to DuckWeb and get your class list, then click the "download class list to excel" link.

    You don't actually want this to open in Excel, you just want to save it to the desktop. Also, what you get is not actually an Excel spreadsheet. It is simply a text file (in some version of html) that Excel knows how to translate into a spreadsheet. We're not going to use Excel though.

  3. On a Mac, open Applications -> Utilities -> Terminal. and then in the terminal (assuming you've downloaded the html-classlist-duckid and your roster both to your desktop) type the commands

    cd Desktop (and then hit return)
    perl html-classlist-duckid hwskclst.P_ClassList (and then hit return)

    (If you are using any other kind of unix desktop other than a Mac, this will also work, but you probably will already know how to get some kind of terminal window. If you have the misfortune to be using MS Windows, you are kind of on your own here, but I'm sure _something_ works in that situation as well.)

    Also note that the file hwskclst.P_Classlist is the roster you downloaded, but if you download it more than once without deleting the previous version then the second copy will be named hwskclst_1.P_Classlist or something like that. Etc.

  4. The output file will be of the form CRN.lst (those last three letters are lower-case LST not 1ST, and where I typed CRN will be the actual CRN for the course).
  5. Now, log into the WeBWorK class
  6. Click on Instructor Tools -> File Manager
  7. "Browse" to the CRN.lst file and click "Upload" once you've selected the file.
  8. Click on Instructor Tools -> Classlist Editor and "Import" users from the file you just uploaded.
  9. You can repeat as students add and it will add new students without duplicating students who are already there. However WeBWorK won't remove students who aren't on the roster. If you want to do that, you have to do it by hand (see below).
  10. Each student's login will be their regular UO email login credentials.


There are various things that might be worth doing. I brought my computer to class the first day to demonstrate. Many of your students will have used WebAssign before, so will be familiar with the idea. Some may have used WeBWorK before since we've been using it piloting it since winter 2009, but that's less likely. Students in Math 111 will likely have seen nothing like this before.


  1. How to give an individual student an extension:

    Go to "Hmwk Sets Editor."

    Click on "Edit Assigned Users" (that will be a number) for that homework.

    Then click on "edit data" for the appropriate user.

  2. How to change an individual student's grade on an individual problem:

    Go to "Hmwk Sets Editor"

    Select the set by checking the box next to it, and then click "Edit selected sets" and then "Take Action."

    Then click on the set name under "Edit all data."

    Then click on "Edit individual versions of ..."

    Then click on "Edit data for..."

    Finally, set the "status" to 1 for correct, 0 for incorrect! (I suspect you could use any fraction between 0 and 1 too, but haven't checked that.)

  3. How to mark a problem correct for the entire class (you might do this if you discover an error or ambiguity in the problem):

    Go to Hmwk Sets Editor, click on the link to edit problems for the homework, and then click on the "Mark Correct" box for the offending problem.

  4. How to reset a student's password.

    Inevitably at least one student will mess up their password. To reset the password, log into the course, and go to "Classlist Editor," select the student, and check the "Give new password to selected users" option.

    Then click "Take Action," enter the new password on the page that appears, select "Save Changes" and click "Take Acion" again.

  5. How to download grades (as a CSV file):

    go to "Scoring Tools"

    select the sets you want.

    Click on "score selected sets and save to" (you can enter a file name here if you don't like the default one displayed).

    Then the results will be displayed as a CSV file (readable to excel and to OpenOffice, etc.).

    To download the file, click on the link with the file name that is displayed.

  6. How to change the name of an already created problem set:

    You can use "create a new set named _____..." from the Hmwk Sets Editor. If that doesn't work:

  7. How to name problem sets.

    To record problem sets, you "export" them from the Homework Sets Editor. When you do that, WeBWorK will create a file name from whatever you named the problem set. The file name will have the form:


    So it is nice if you _haven't_ named your problem set something ending with .def or beginning with "set." Something like "Logarithms" or "RelatedRates" seems like a good easy to understand choice.

  8. What if students have trouble reading the problems?

    Sometimes they need to change the "Display Option" (usually near the bottom left for them). "images" usually looks best. "jsmath" is a good second choice. Lots of the others work OK.

  9. The students can get information on the format of how to enter things from this page listing the functions WeBWorK understands.

    This should be available from a link on the page they see when they click on a homework assignment.

    We've also had sporadic problems with a page that displays units, so if you assign a problem that cares about units, check to see that the link that describes the possible units works, and let me know if it doesn't work so I can try to address it.

  10. What if you have two courses and wish to create problem sets in one course and then move them to the other course?

    OK, there is a good way to do this, but it is multi-step.

  11. What to do if you find a broken problem in the problem library is described here. If you find a broken problem in the Math 111 or Math 112 supplied problem sets, please let Mike Price know.
  12. On Choosing Good Problems:

    Think about what homework is for. It is practice so that students can learn skills (it isn't a test of skills they've already learned, though occasionally you may give review problems aimed at testing already learned skills).

    1. For this reason, multiple choice problems are almost always a bad idea on homework (though they can be fine on quizzes or test). Students tend to try to make educated guesses on multiple choice problems rather than to work them out. This is true even if you restrict the number of attempts that they get, except then they tend to both guess and be anxious.

    2. Multiple part problems which are coded so that WeBWorK does not tell the student which parts are right or wrong are typically very frustrating for students (you can only tell this by looking at the code. If there is a line "showPartialCorrectAnswers = 0;" then you are looking at such a problem).

      Multiple choice problems are often coded this way to make them harder to solve by guesswork. I think the additional frustration of not being able to see where there mistakes are erases any possible pedagogical benefit of making it harder to solve the problem by guesswork. Student frustration makes it harder for them to derive the pedagogical benefit from doing the homework.

    3. The best problems in most ways are problems where the answer is a number, a function, or some other algebraic expression which can't be arrived at through guesswork. Then there is no reason to hide partial progress, and usually no reason to limit the number of possible answers.
    4. Of course you want to assign problems that develop the skills you are trying to teach, and you want to know what skills you think the problem you've chosen is likely to develop so you can tell students (if they ask) what the point of the problem is.
    5. There are skills that are difficult to teach through WeBWorK (or through homework in general). Sketching graphs is one such skill. There are good WeBWorK questions you can ask (for example: given a graph of x^2 and a graph of some transformation of x^2, find the transformed function that gives that graph).

      But if I was committed to teaching my students how to sketch a certain kind of curve, I would do it outside of the homework process. I would have students do a worksheet in small groups, in class on Wednesday (say). I would assign some practice problems (not to be graded) for them to do on their own. And I'd tell them I'll give them a brief quiz on Friday. Obviously this is more work, but it is also more likely to give a measurable result.

  13. Good sources of information by other authors:

Last change: September 2009.