Webwork Instructor Guide

Webwork is an online assignment and quiz tool​ for numeric problems and equations that allows you to create custom problems or choose from a library and assign these on an individual student basis as part of homework sets or quizzes. Students can receive instant feedback after answering each problem and have multiple attempts, in order to better understand their learning.
Cost Yes Free
Bandwidth Yes Low demand
Canvas Integration Yes Works in coordination with Canvas
Privacy Yes Webwork is FIPPA compliant and data is stored securely in Canada
Similar UBC-Supported Tools Depending on your goals, a variety of assignment tools are also centrally supported

What can I use it for?

You can use Webwork for giving problems to students in two formats:

  • Homework assignments
  • Quizzes (which can include exams)

This tool guide is for version 172 of Webwork. Information and instructions may differ slightly for other versions of Webwork.

What do I need to use Webwork?

A supported web browser

Webwork runs in your web browser and supports using Chrome, Firefox, Safari, or Edge. It is recommended that you use one of the two latest versions of Chrome or Firefox.

A Canvas course

Webwork only works in Canvas courses at UBC.


  • You can provide your students with UBC’s Webwork student guide, which outlines necessary steps and tips for them to get started. Please also encourage students to familiarize themselves with the format and decimal exceptions of responses, as correct answers are very specific.

How do I use Webwork?

You first need to create a Webwork course using Canvas, then add problems and create sets of those problems to assign as homework or quizzes.

Click any bar below for instructions and tips for using Webwork.

Create your Webwork course

You will access Webwork exclusively through Canvas.

  1. Log in to your Canvas course, and click Assignments in the Course Navigation.
  2. Click the +Assignment blue button in the upper right side of the screen.
  3. Enter the assignment name as "Webwork Link" to prevent confusing this with other assignments.
  4. Scroll down to submission type and select External Tool from the drop-down menu.
  5. Even if you know the URL, click Find. (Entering the URL directly will not sync properly with Canvas.)
  6. From the list, pick Webwork and click Select.
  7. Check Load This Tool In A New Tab.
  8. Save the assignment.
    • Don't publish this assignment, if you want to sync grades between Webwork and Canvas. Instead, set up links and syncing for individual assignments using instructions in the accordion section farther below.
    • Don't delete this assignment, even though it is unpublished, as this action will break the class list sync between Webwork and Canvas.
  9. You will be redirected to the assignment page you just saved. Click Load Webwork Link in a new window to create your Webwork course.
  10. Students will be added from the Canvas course to the Webwork course and the class list will continue to sync once per day. If you would like to sync right away, you can manually sync the class roster:
    • In Webwork, click Classlist Editor in the navigation.
    • Click the tab for LTI.
    • Click Take Action to manually sync the class roster.


  • You can click the assignment link you've made to quickly access your Webwork course from inside your Canvas course at any time.
  • Opening multiple Webwork tabs simultaneously using the Canvas Webwork link will disrupt the syncing between the Canvas and Webwork courses. To use multiple tabs in Webwork, please open only one link from Canvas and additional links from within Webwork itself.
  • You can get help merging multiple sections into one Canvas course, if you're running a large course with Webwork and don't want to do this setup multiple times. Contact your Instructional Support Unit for help.

Make Webwork homework sets from publicly available problems

The quickest way to make a homework set is to pull in problems from Webwork’s Open Problem Library (OPL), which contains over 35,000 reviewed and tested problems that are browsable by discipline. Questions in the OPL have been contributed by faculty from institutions that use Webwork, as well as some textbook publishers.

  1. Go to your Webwork course homepage, and click Library Browser in the navigation.
  2. To create a new set, type the name in the empty text field and click Create a New Set in This Course.
  3. Browse the problems to find ones that will work for your context. You can filter problems by selecting the subject, chapter, and section from each corresponding drop-down menu. Click View Problems when you are ready to see the available problems based on your filtering.
  4. To allow students to use hints and/or see solutions for the problems, check Hints and/or Solutions above the list of problems.
  5. You can randomize, edit, and try any problem by clicking the corresponding icon above each question on the right side.
  6. When you are ready to add individual problems to the homework set, click Add above each question.
    • If you want to add them all, click Add All instead.
  7. Continue adding questions until you're satisfied with the homework set.
  8. To review all the problems you added and finish the setup, click Edit Target Set at the top.
  9. On the edit page, set the due dates and description, then click Save Changes.
  10. To assign this homework set, click individual versions on the top of this page.
  11. Use the options provided to assign to all current users, unassign to all users, or individually select users from the list provided. If you make individual selections, click Save to finalize your changes.


  • Please allow yourself ample time to create homework sets, as the process of filtering and adding questions from the large library can take a while.
  • Once you've created sets, you can go back and add more library questions using the same process. The only difference is that instead of creating a new set, you'll select the set you'd like to add problems to in the target set drop-down menu at the top. (But don't click the Edit Target Set button, as this will open the editing for due dates, description, and individual assigning instead.)
  • You can also filter by local problems and problems from the course. Local problems are UBC-specific homework sets that include sets from the current course, sets shared through the UBC Library, and sets UBC instructors have contributed to the OPL. Problems from the course are sets from the current course only.

Make Webwork homework sets using custom problems

Making homework sets with custom problems requires editing code files for each problem. You will first add blank problems to a homework set that will create standard code templates for you to edit.

  1. Go to your Webwork course homepage, and click Hmwrk Sets Editor in the navigation.
  2. To create a new homework set, click the Create tab.
  3. Enter a name for the set and click Take Action.
  4. Click the number under the "Edit Problems" column next to the set.
  5. Scroll down to the bottom and check Add and enter the number of custom problems you want to add.
  6. Click Save Changes.
  7. Scroll down to the "Problems" area to see your blank problems. Click the pencil icon to edit a problem.
  8. When making a custom problem, you must follow the standard structure of Webwork problems in the template. There are five sections to a Webwork problem:
    • Tagging and description section: describes the problem
    • Initialization section: loads required macros for the problem
    • Problem set-up section: sets variables specific to the problem
    • Text section: gives the text that is shown to the student
    • Answer and solution section: specifies how the answer(s) to the problem is/are marked for correctness, and gives a solution that may be shown to the student after the problem set is complete
  9. When you've completed your edits, click the NewVersion tab, rename the file, and click Take Action to save.


Create Webwork quizzes and exams

Webwork quizzes and exams are created from homework sets. You'll first need to make a homework set, then you'll turn it into what's called a gateway quiz.

  1. Go to your Webwork course homepage, and click Hmwrk Sets Editor in the navigation.
  2. To create a new homework set, click the Create tab.
  3. Enter a name for the set and click Take Action.
  4. Click the number under the "Edit Problems" column next to the set.
  5. Under the "General Information" section, choose the assignment type gateway/quiz or proctored gateway/quiz.
  6. Set the due dates, description, and any other parameters, then click Save Changes.

Copy homework sets between Webwork courses

You can export homework sets from one course and import them to another in order to copy problems between Webwork courses. The sets will also copy whether you've assigned them as homework or quizzes.

  1. Go to the Webwork course homepage you want to copy from, click Hmwrk Sets Editor in the navigation, and click the Export tab.
  2. Select selected sets from the drop-down at the top.
  3. Check the box beside each set you want to export.
  4. Click Take Action, confirm your selection, and click Take Action again. This action will make copies of these sets in your file manager.
  5. Click File Manager in the navigation.
  6. Select the files and click Make Archive. This action will combine the copies for your sets into one downloadable file called an archive.
    • The file names will use the structure set Your_Set_Name.def, where the name of your set replaces the italicized letters.
  7. You will see a message saying the archive has been created. Select the name of this archive where it's been added to the list, and click Download to save the archive on your computer.
  8. Go to the Webwork course homepage you want to import problems to, and click File Manager in the navigation.
  9. Click Choose File or Browse (depending on your web browser), and select the file you downloaded.
  10. Click Upload. This action will add all the files you exported from the first course into this course, but they still need to be imported.
  11. Click Hmwrk Sets Editor in the navigation, and click the Import tab.
  12. Select multiple sets from the drop-down, pick the sets to import, and adjust any other settings.
  13. Click Take Action to add the homework sets to the course.

Review student progress and submit for students in Webwork

You can view how students are doing in the progress section of Webwork.

  1. Go to your Webwork course homepage, and click Student Progress in the navigation.
  2. Click the desired information you'd like details for.
  3. If you know a student is having problems submitting and have confirmed they have not been able to submit, please contact us to enable your ability to submit on the student's behalf and grade that submission. This feature needs to be requested on a course-by-course basis.

Export grades from Webwork

If you are not syncing grades with Canvas, you may find it helpful to export your grades from Webwork to work with in a spreadsheet.

  1. Go to your Webwork course homepage, and click Scoring Tools in the navigation.
  2. Select the assignments with grades you wish to export.
  3. Uncheck all three checkboxes.
  4. Click Score selected sets and save to.
  5. Below "Totals", you'll see a link to a CSV file. Click the link and save this file to your computer.
  6. Open the CSV file that you downloaded in a spreadsheet software like Excel to view and sort the data.


  • You can sort the results by columns such as section number to organize the data more meaningfully for review. If you're using Excel, follow the instructions for sorting Excel data.

Where can I get more support with Webwork?

Technical support

If you have trouble with Webwork:

For supporting your students:

Learn more

  • For more how-to instructions, explore the UBC Webwork Wiki or Webwork’s instructor guide.
  • Webwork is an open-source tool originally developed and supported by the Mathematical Association of America (MAA) and the U.S. National Science Foundation (NSF).

« See all tools