Webwork Instructor Guide

Webwork logo
Webwork is an online assignment and quiz tool​ that focuses on numeric problems and equations. You can create custom problems or select from a library and assign these problems to individual students as part of homework sets or quizzes. Students can receive instant feedback after answering each problem and have multiple attempts to enhance their learning.
Access Immediate You can access Webwork through Canvas.
Cost Yes Free.
Bandwidth Yes Low demand on internet connections.
Canvas Integration Yes Works in coordination with Canvas.
Privacy Yes Webwork is developed and maintained at UBC.
Similar UBC-Supported Tools Y Depending on your goals, other centrally supported tools can help you run assignment and quizzes in different ways.

What can I use it for?

You can use Webwork to assign numeric problems and equations to students:

  • Giving sets of problems as homework assignments that can include answer-based feedback and multiple attempts
  • Conducting quizzes or exams where different questions can be assigned to individual students

This tool guide was last reviewed in June 2024 with version 2.18 of Webwork.

How are other faculty using Webwork?

Mark Mac Lean profile Mark Mac Lean uses Webwork to assign homework and quizzes with immediate feedback in Math

I was one of the people who asked for Webwork to be set up at UBC. In the Mathematics department, we teach thousands of students, and we needed to provide better feedback to them on how well they were progressing in their learning than we were able to do with limited TA grading time. Read more »

What do I need to use Webwork?

A supported web browser

Webwork runs in your web browser and supports using Chrome, Firefox, Safari, and Edge. However, we recommend that you use Chrome or Firefox for the best experience. Some browser extensions (mainly adblockers) can prevent filling in form fields in Webwork, so you may need to pause any extensions you have added for Webwork to function properly. Additionally, if you have disabled JavaScript, please re-enable JavaScript in your browser so that you can see any interactive elements and content.


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

How do I use Webwork?

You will first create a Webwork course using Canvas, then create problem sets to assign as homework or quizzes.

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

Expand All

Create your Webwork course

You will access Webwork exclusively through Canvas.

  1. Log in to your Canvas course with your UBC CWL (Campus-Wide Login) and click Settings in the Course Navigation.
  2. Click the Navigation tab.
  3. Find the Webwork menu item, click the options menu (the 3 vertical dots), and choose Enable.
  4. Click Save.
  5. Webwork will now be available for you and your students. Click Webwork in the Course Navigation to open a new tab with the Webwork interface and automatically create your course.
  6. 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 the list right away, you can manually sync the class roster:
    • In Webwork, click Classlist Editor in the navigation.
    • Click the Canvas Sync tab.
    • Click the Canvas Sync button.


  • To use multiple tabs in Webwork, please open additional links within Webwork itself, rather than opening Webwork from Canvas multiple times. Opening multiple Webwork tabs using the Canvas Course Navigation will disrupt the syncing between the Canvas and Webwork courses.
  • You can get help merging multiple course sections into one Canvas course. Contact your Instructional Support Unit for help, if if you are running a multi-section course and want to avoid setting up Webwork multiple times.

Create or edit 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 more than 37,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. Access your Webwork course homepage from your Canvas course and click Library Browser in the navigation.
  2. Type the name in the "New set name" text field and click Create a New Set in This Course.
    • If you have already created a set, select it from the "Target Set" drop-down menu instead.
  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. Click View Problems to see available problems based on your filtering.
    • You can also adjust your filtering to see problems with hints and/or solutions by clicking the Hints and/or Solutions box below the drop-downs, and then click View Problems again.
  4. You can edit problems by clicking the pencil icon or try any problem by clicking the eye icon on the top right corner of each question.
  5. 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 above all the problems instead.
  6. Continue adding questions until you are satisfied with the homework set.
  7. To review all the problems that you added and finish the setup, click Edit Target Set at the top.
  8. On the edit page, set the open date, close date, answers available date, and description. You can also set whether students can see hints, if the problem has them.
  9. When you are done, click Save Changes.
  10. To assign this homework set, click to edit individual user settings on the top of the page.
  11. Use the options provided to assign to all current users, unassign for all users, or individually select users from the list. If you make individual selections, click Save to finalize your changes.


  • When browsing for problems, you can also filter by problems created from other courses at UBC. Clicking "UBC Library" will display UBC-specific homework sets that include sets shared through the UBC Library and sets UBC instructors have contributed to the OPL.

Create or edit Webwork homework sets using custom problems

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

  1. Access your Webwork course homepage from your Canvas course and click Hmwk Sets Editor in the navigation.
  2. To create a new homework set, click the Create tab. If you have already created one, proceed to step 4.
  3. Enter a name for the set and click Create.
    • The name of the set can include a-z, A-Z, 0-9, and dashes (“-”), but please note it cannot have other characters, such as question marks.
  4. Click the number under the "Edit Problems" column next to the set.
  5. Scroll down to the bottom, check the Add box and enter the number of custom problems you would like 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 creating a custom problem, you will need to 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 setup 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 provides a solution that may be shown to the student after the problem set is complete
  9. When you have finished editing, click the Save As tab at the bottom, and click Save As.


  • You can share and re-access the Webwork problems that you create by submitting them to the UBC Webwork Problem Library, which is part of the broader Webwork Open Problem Library (OPL). This sharing does require you to have a GitHub account and to follow the instructions for contributing to the UBC Webwork Problem Library.

Create Webwork quizzes and exams

A Webwork Test is a quiz or exam version of a homework set. You will need to create a homework set, which you will turn into Webwork Test.

  1. Access your Webwork course homepage from your Canvas course, and click Hmwk 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 Create.
    • The name of the set can include a-z, A-Z, 0-9, and dashes (“-”), but please note it cannot have other characters, such as question marks.
  4. Click the number under the "Edit Problems" column next to the set.
  5. Under the "General Parameters" section, set the "Assignment Type" as either Test or Proctored Test, then click Save Changes.
    • Proctored Tests require students to enter a password. Once you save a Webwork Proctored Test, enter the password under “General Parameters,” and share it with students before the quiz/exam is scheduled to open.
  6. Set the due dates, description, and any other parameters, then click Save Changes.
  7. Add problems to your Webwork Test, then assign it to your students by following the instructions in the accordion above for creating or editing homework sets for publicly available problems.

Copy homework sets between Webwork courses

You can copy problems between Webwork courses by exporting homework sets from one Webwork course and importing them to another. The sets will copy regardless of whether they are assigned as homework or a Webwork Test.

  1. Access the Webwork course homepage that you would like to copy a homework set from, and click Hmwk Sets Editor in the navigation.
  2. Click the Export tab.
  3. Under the “Prepare which sets for export?” drop-down at the top, choose selected sets.
  4. Check off each set you would like to export.
  5. Click Export and then click Save Export. This action will save a copy of the selected set(s) to your file manager in Webwork.
  6. Click File Manager in the navigation. In the list of files, the file names will use the structure Your_Set_Name.def, where the name of your set replaces the italicized letters. Select the file(s) for the set(s) you exported, and click Make Archive. This action will combine the copy of each set into one downloadable file.
    • If there are additional files related to your homework set, you will also need to select the directories for the set(s) you would like to export. These directories will appear as Your_Set_Name/, where the name of your set replaces the italicized letters.
  7. When the archive has been created, select the name of the file ending in “.tgz” from the list of files, and click Download to save the archive on your computer.
  8. Go to the Webwork course homepage that you would like to import problems to and click File Manager in the navigation.
  9. Click either Choose File or Browse (depending on your web browser), and select the .tgz file you downloaded.
  10. Click Upload. This action will add all the set(s) you exported from the first course as files, but you will still need to import them as homework sets.
  11. Click Hmwk Sets Editor in the navigation, and click the Import tab.
  12. Since you will be uploading one file with any number of sets in it, select multiple sets from the “Import how many sets?” drop-down. Select the file name(s) that you would like to import, and adjust any other settings as needed.
  13. Click Import to add the homework set(s) to the course.

Set up grade syncing between Webwork and Canvas

For grades to sync properly between Canvas and Webwork, you will need to set up individual links in Canvas to sync each homework set, quiz, or exam that you create in Webwork. Each student must click each Webwork assignment link in Canvas to establish the connection between their Canvas Gradebook entry and their work in Webwork.

If you don't want grades to sync from Webwork to Canvas, this setup is not required.

  1. Log in to your Canvas course and click Assignments in the Course Navigation.
  2. Click +Assignment.
  3. Enter the assignment name and details.
  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. At the end of the Webwork URL that appears, add “?set=assignment_name” using your homework set name or quiz name in place of the italicized letters.
    • When adding the name of your assignment to the Webwork URL, replace any spaces with an underscore (e.g., "Week 1" would become "Week_1").
  8. Check the Load This Tool In A New Tab box. Selecting this option will allow grades to properly sync with Canvas.
  9. Click Save & Publish to make the assignment visible to students.
  10. Click the Load the assignment in a new window button to enable the grade sync.


  • Make sure you click each Webwork assignment link in Canvas (step 10) at least once to enable the grade sync for that assignment. Grades will then automatically sync once a day from Webwork to Canvas.
  • Once you have completed these steps, you can also manually sync the grades between Webwork and Canvas. In Webwork, click "Hmwk Sets Editor" in the navigation, and then click the "Canvas Sync" tab. Select the homework set or quiz you would like to sync grades for and click "Canvas Sync".
  • Webwork will sync grades for any student attempts that score higher than zero. Student scores of zero will remain blank in the Canvas Gradebook, which may reflect that the student has not attempted any answer or has answered incorrectly for all questions. To determine which case applies to an individual student, check the student's progress in Webwork by following the instructions in the accordion below.

Review student progress and submit for students in Webwork

You can review student grades and attempts for Webwork assignments in the progress section of Webwork. For Webwork Tests, you can also submit on a student's behalf.

  1. Access your Webwork course homepage from your Canvas course, and click Student Progress in the navigation.
  2. Click the assignment or student you would like to view details for.
  3. For Webwork Tests, you can also submit on behalf of a student, if you know they have started an attempt and are having issues submitting. The submit-for-student functionality is only available for this assignment type.
    • If you have not clicked it already, click the Webwork Test name.
    • Click the student's name, and then under "Test Versions," click the latest version of the test.
      • If the Webwork Test is proctored, you may need to enter the password and click Continue.
    • When you are ready to submit and review the answers, click Grade Test.

Export grades from Webwork

If you are not syncing grades with Canvas, you can manually export grades from Webwork to edit in a spreadsheet.

  1. Access your Webwork course homepage from your Canvas course, and click Scoring Tools in the navigation.
  2. Select the homework set with grades you would like to export.
  3. Deselect all four checkboxes.
  4. Click Score selected set(s) and save to. You can change the name of the file in the textbox next to the button to better organize your files.
  5. A link to a CSV file will generate under "Totals". Click the file link to save this file to your computer.
  6. Open the downloaded CSV file 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 are 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:

Pedagogical support

Student support

Learn more

  • For more how-to instructions, explore the UBC Webwork Wiki or Webwork’s official instructor guide.
  • Webwork is an open-source learning technology, meaning it does not have a traditional vendor and its code is available for free. Webwork is widely used at UBC, particularly in the Mathematics and Statistics departments. All UBC instructors are welcome to contribute to the Open Problem Library to enhance the resource for the broader academic community.

Tell us about this guide