Most courses in the Math Department that incorporate an online homework system use WeBWorK.

The instructions listed below were developed by CTLT and CWSEI-Math, and include links to the official MAA WeBWorK site.



WeBWorK is a free open-source online homework system for mathematics and science. It is developed and supported by the Mathematical Association of America (MAA) and the US National Science Foundation (NSF). It features:

Below is a screenshot of a question in WeBWorK.


WeBWorK at UBC

WeBWorK is supported and maintained by the Centre for Teaching, Learning and Technology (CTLT).

WeBWorK must be used in conjunction with Canvas. As students access WeBWorK via Canvas, they are automatically added to the WeBWorK course roster. Using Canvas is a requirement for using WeBWorK in your course.

The WeBWorK integration in Canvas operates differently than it did in Connect. Some of the key differences are listed below:

Getting Started in WeBWorK

Below is a list of basic tasks for instructors to run and manage online homework in WeBWorK.

Single-section course: See instructions "How to set up WeBWorK for your Canvas course" listed below.

Multi-section course: Each instructor can set up a WeBWorK site specific to their section. If homework is shared across sections, however, it is strongly recommended to set up a merged WeBWorK site common to all sections. While both merged and non-merged configurations have limitations (more information on the pros and cons of merged vs non-merged WeBWorK courses are available here), the merged set up is more efficient and easier to manage.

How to set up WeBWorK for your course

Instructors will need to create their WeBWorK course directly through Canvas at the start of each term, as described below:

Once a general link has been created in Canvas, instructors and students will be able to access WeBWorK via this link.

Note for instructors: Creating a general WeBWorK link in Canvas will provide students with an entry point to the WeBWorK course, but will not automatically sync the assignment grades to the Canvas grade book.

Syncing Grades from WeBWorK to Canvas

In Canvas, it is possible to sync the grades of WeBWorK assignments with Canvas’s gradebook. This functionality is not automatic and requires the creation of individual assignment links in Canvas for each specific WeBWorK homework sets rather than using a general WeBWorK link. To set up individual Canvas assignments for WeBWorK-Canvas grade sync, follow these instructions.

Note for instructors: Each student must access each WeBWorK assignment exclusively through Canvas in order for grades to sync properly between WeBWorK and Canvas.

More information/known issues about WeBWorK/Canvas grade sync:

Note for Instructors: If you set up a merged site for your multi-section course, WeBWorK does not automatically load section information for the students. If later in the term you need to sort students by section or make section-specific changes to an assignment, you need to enter the section information in WeBWorK manually. Instructions on how to do this are posted here.

Once your site is ready, you (and your students) can access WeBWorK via the Canvas assignment link.

How to give TAs and other colleagues access to your WeBWorK course

Because of the WeBWorK/Canvas integration, new users can be added to WeBWorK via Canvas. To add a new user to your course in Canvas, please contact the Canvas instructional support staff at CTLT (Rachel Petrynko, Once the person is added to Canvas, the user will be able to access WeBWorK via a Canvas WeBWorK assignment link. The person will have access to both Canvas and WeBWorK.

Instructors needn't worry about adding students to their WeBWorK course. The WeBWorK class list will be updated with students once students actively click on a WeBWorK link created in Canvas, at which point they will be added to the WeBWorK course roster.

How to block emails from the "Email Your Instructor" button

Every WeBWorK problem has an "Email Your Instructor" button that students can use to ask questions or report bugs on that problem. This is a useful feature to provide feedback to students, but it could generate a large number of emails, especially in a multi-section course using a merged WeBWorK site, where instructors would receive messages from potentially all students in the course, not only their section. In this case, it is recommended to assign a TA to answer these emails.

To block emails generated through WeBWorK,

  1. Go to Course Configuration.
  2. Click on "Email" on the top horizontal menu.
  3. Delete any email address in the field corresponding to "E-mail addresses which can receive e-mail from a pg problem" (third row).
  4. Select "nobody" from the drop down menu on the right end side in the fourth row.
  5. If you want to re-direct emails to a TA, enter the TA's email address in the field corresponding to "Additional addresses for receiving feedback e-mail" (fifth row).

Note for Instructors: Do not delete your email address from your WeBWorK user profile in order to block emails generated through WeBWorK, otherwise the WeBWorK support staff will not be able to notify you about system upgrades and other emergencies.

Working with WeBWorK Problems and Problem Sets

How to create a homework assignment in WeBWorK

Creating a problem set is the key step in developing homework in WeBWorK. While only a few instructors write their own problems in WeBWorK, most generate problem sets by selecting questions from the National Problem Library or other local libraries.

If you want to create a problem set by selecting questions from existing libraries, the basic process will be:

  1. create an (empty) set
  2. select problems from the library
  3. update your set by adding the selected problems
  4. make edits to your set (reorder problems, change number of attempts, etc.)
  5. edit the open and close dates of the set
  6. make the set visible to students (default setting)
  7. assign the set to your students

Detailed instructions on how to perform steps 1-6 are posted on the WeBWorK Wiki developed by the MAA.

More information on step 6 are given below.

How to modify an existing problem

Here is a short tutorial on how to make small edits (text only) to an existing problem.

How to assign a problem set to your students in WeBWorK

Once you have created a problem set and made all the necessary edits to it, you must assign it to your students, otherwise they will not be able to see it.

Once a student is assigned to a problem set, the link to the set will appear in the student's WeBWorK homepage. If the set has been assigned before it opens, the student can see the problems, but not submit an answer. The "Submit" button will appear only after the open date of the set.

To assign a homework set to students, please follow the instructions posted on the WeBWorK Wiki developed by the MAA.

Note for Instructors: If, after assigning a set to your students, you change its default setting from being "Visible to students" to not being visible, the students will see the set listed in their WeBWorK homepage but they will not be able to acccess the individual problems. While this may allow for some last minute changes to a problem set, please be aware that making a set invisible to students after assigning to your class affects the automatic user-assignment process in WeBWorK. Once a set is assigned to students, WeBWorK automatically assign any new student joining the course to that particular set if the set is made visible to students. The students who join the course between the time you assign the homework set and the time you make it visible will not get automatically assigned to that set.

How to extend the due date for individual students

If you wish to grant an extension on a particular homework assignment to a single student, it is possible to change the assignment due date only for that student without affecting the rest of the class.

To extend the due date of a homework set for an individual student, follow these steps:

  1. Click on Classlist Editor on the left under Main Menu/Instructor Tools.
  2. Select the first action, Show users who match: [type in your student's last name or st number] and select [either Last Name or Student ID, depending on what information you have entered in the previous field].
  3. Click the "Take Action!" button. A list of students matching the information you entered will appear.
  4. Scroll down to the row corresponding to your student and click on the fraction in the 4th column from the left. This will take you to the list of assignments assigned to that particular student.
  5. For the assignment you wish to extend, select "Due" and enter the new due date. Make sure you use the correct date format.
  6. Click "Save Changes" at the end of the page.
  7. You can check that the due date for that particular assignment has been changed correctly for the student by clicking on Homework Sets on the left under Main Menu. You will see the list of assignments and the corresponding due dates of those that are still open.

How to get started at authoring problems in WeBWorK

A locally-produced document for getting started is this manual, which includes examples and links:

UBC Math WeBWorK Manual

It was written by Tyler Woodbury, a summer student of Mark MacLean in 2010.

For more in-depth documentation on WeBWorK, see the MAA website at

How to download homework scores from WeBWorK

WeBWorK automatically scores each assignment and calculates the total score on selected assignments for each student. Instructors can select which assignment to include in the final scoring and can download scores at any time during the term.

To download homework scores from WeBWorK, go to the Scoring Tools. Highlight all the assignments you want to score and press the "Score Selected Set(s)" button. The scoring procedure creates files in .csv format. To download the file click of the link below the heading "Totals". Make sure you select "Record Scores for Single Sets" if you wish to download scores on individual assignments in addition to overall averages.

How to export your problem sets at the end of the term, or move sets between courses

All WeBWorK sites are hidden from the web at the end of the term, and completely archived by the end of the following term. Archived WeBWorK courses (content and data) are stored by CTLT. If you want to retrieve your old WeBWorK course, please contact the WeBWork support staff at CTLT at

If you want to keep a record of your WeBWorK problems on your computer, you can export problem sets directly from WeBWorK before your site is archived. Please see instructions on how to export sets on the WeBWorK Wiki developed by the MAA.

Literature about WeBWorK

If you are interested in reading how WeBWorK has been used in undergraduate math courses at other institutions, you may also want to read:

WeBWorK support