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.
“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.”
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.
Tips
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.
You will access Webwork through Canvas.
You will first need to turn on Webwork in your Canvas course.
Log in to your Canvas course with your UBC CWL (Campus-Wide Login) and click Settings in the Course Navigation.
Click the Navigation tab.
Find the Webwork menu item, click the options menu (the 3 vertical dots), and choose Enable. Alternatively, you could drag and drop the Webwork menu item to the top section to make it available.
Click Save.
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.
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 Accounts Manager in the navigation.
Click the LMS Sync tab.
Click the LMS Sync button.
Tips
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 you are running a multi-section course and want to avoid setting up Webwork multiple times.
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.
Access your Webwork course homepage from your Canvas course and click Library Browser in the navigation.
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.
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 only problems with hints and/or solutions by clicking the Hints and/or Solutions checkbox below the drop-downs, and then clicking View Problems again.
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.
When you are ready to add individual problems to the homework set, click Add on the top left of each question.
If you want to add all results from your filtering, click Add All above all the problems instead.
Continue adding questions until you are satisfied with the homework set.
To review all the problems that you added and finish the setup, click Edit Target Set at the top.
On the edit page, you can set general parameters such as the open date, close date, and answers available date. You can also set whether students can see hints, if the problem has them.
When you are done, click Save Changes.
To assign this homework set, click to edit individual user settings on the top of the page.
Use the options provided to assign to all current users, unassign from all users, or individually select users from the list to assign. If you make individual selections, click Save to finalize your changes.
Tips
When browsing 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.
When creating or editing a Webworkset,it will create a “Homework” set by default, butyou can also choose to changeit to other assessment types. You can choose the “Just in Time Assessment and Review” type that introduces more exercises when a student answers incorrectly after a certain number of times, or choose the “Test” or “Proctored Test” type to create a quiz or exam version of a homework set.
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.
Access your Webwork course homepage from your Canvas course and click Sets Manager in the navigation.
To create a new homework set, click the Create tab. If you have already created one, proceed to step 4.
Enter a name for the set and click Create.
The name of the set can include a-z, A-Z, 0-9, spaces, hyphens (“-“), and periods, but please note it cannot have other characters, such as brackets or question marks.
Click the number under the “Problems” column next to the set.
Scroll down to the bottom, check the Add__blank problem template(s) to end ofhomeworkset box and enter the number of custom problems you would like to add.
Click Save Changes.
Scroll down to the “Problems” area to see your blank problems. Click the pencil icon to edit a 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
When you have finished editing, click the Save As tab at the bottom. Before saving your changes, you need to give the file a new name. In the Save file to field, change newProblem.ng in [Your_Set_Name]/newProblem.ng into a different file name. You can also choose how to save the problem:
Replace the current problem
Append the question to the end of the set
Create an unattached problem
Click Save As.
Tips
Once you have created a new problem file, you can click the “Save”,instead of the “SaveAs”,tab to save anyfurtherchangesto the problem file. In the “Save” tab, you can also select if you would like to view the problem in a new window, create a backup, and/or delete the oldest backup (if there is an existing one).
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.
When creating or editing a Webwork set, it will create a “Homework” set by default, but you can also choose to change it to other assessment types. You can choose the “Just in Time Assessment and Review” type that introduces more exercises when a student answers incorrectly after a certain number of times, or choose the “Test” or “Proctored Test” type to create a quiz or exam version of a homework set.
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.
Access your Webwork course homepage from your Canvas course, and click Sets Manager in the navigation.
To create a new homework set, click the Create tab. If you have already created one, proceed to step 4.
Enter a name for the set and click Create.
The name of the set can include a-z, A-Z, 0-9, spaces, hyphens (“-“), and periods, but please note it cannot have other characters, such as brackets or question marks.
Click the number under the “Problems” column next to the set.
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 “Proctoring Parameters,” and share it with students before the quiz/exam is scheduled to open.
Set the due dates, time limit, set description, and any other parameters, then click Save Changes.
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.
Access the Webwork course homepage that you would like to copy a homework set from, and click Sets Manager in the navigation.
Click the Export tab.
Under the “Prepare which sets for export?” drop-down at the top, choose selected sets.
Check off each set you would like to export.
Click Export and then click Save Export. This action will save a copy of the selected set(s) to your file manager in Webwork.
Click File Manager in the navigation. In the list of files, the file names will use the structure setYour_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. You can then set the Archive Filename and the Archive Type (default is “.zip”), then 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 setYour_Set_Name/, where the name of your set replaces the italicized letters.
When the archive has been created, select the name of the archive file ending in “.zip” or “.tgz” from the list of files, and click Download to save the archive on your computer.
Go to the Webwork course homepage that you would like to import problems to and click File Manager in the navigation.
Click either Choose File or Browse (depending on your web browser), and select the .zip or .tgz archive file you downloaded.
Make sure the boxes next to “Unpack archives automatically “and “then delete them” are checked, then 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.
Click Sets Manager in the navigation, and click the Import tab.
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.
Click Import to add the homework set(s) to the course.
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.
Log in to your Canvas course and click Assignments in the Course Navigation.
Click +Assignment.
Enter the assignment name and details.
Scroll down to “Submission Type” and select External Tool from the drop-down menu.
Even if you know the URL, click Find. (Entering the URL directly will not sync properly with Canvas.)
From the list, pick Webwork and click Select.
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“).
Check the Load This Tool In A New Tab box. Selecting this option will allow grades to properly sync with Canvas.
Click Save & Publish to make the assignment visible to students.
Click the Load [assignment name] in a new window button to enable the grade sync.
Tips
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 “Sets Manager” 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.
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.
Access your Webwork course homepage from your Canvas course, and click Student Progress in the navigation.
Click the assignment or student you would like to view details for.
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 Testfor [the student].
If you are not syncing grades with Canvas, you can manually export grades from Webwork to edit in a spreadsheet.
Access your Webwork course homepage from your Canvas course, and click Scoring Tools in the navigation.
Select the homework set with grades you would like to export.
Deselect all four checkboxes.
Click Score selected set(s) and save to. You can change the name of the export file in the textbox next to the button to better organize your files.
A link to a CSV file will be generated under “Scores”. Click the file link next to Download to save this file to your computer.
Open the downloaded CSV file in a spreadsheet software like Excel to view and sort the data.
Tips
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.
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
The Learning Technology Innovation Centre (LTIC) is located on the ancestral and unceded territory of the hən̓q̓əmin̓əm̓ – speaking xʷməθkʷəy̓əm (Musqueam) peoples. These lands have long been a place of learning for Musqueam, with cultural and traditional knowledge passed down from generation to generation for thousands of years.