https://webwork.maa.org/mediawiki_new/api.php?action=feedcontributions&user=Vojta&feedformat=atomWeBWorK_wiki - User contributions [en]2024-03-28T18:20:01ZUser contributionsMediaWiki 1.34.0https://webwork.maa.org/mediawiki_new/index.php?title=LTI-Advanced_Grading&diff=19977LTI-Advanced Grading2020-08-09T06:28:33Z<p>Vojta: /* LMS Setup */ Add information on setting the "Domain" value on Canvas</p>
<hr />
<div>With the LTIAdvanced interface it is possible for WeBWorK to automatically pass grades back to your Learning Management System (LMS), e.g. Blackboard, Moodle, Canvas, etc... However because we are using the more widespread, but also more restrictive, version 1.2 of LTI there are some quirks. The way LTI grade passback works in version 1.2 is when you create the "Assignment" in your LMS that points to WeBWorK that "Assignment" gets a corresponding column in your LMS gradebook. WeBWorK then returns a percentage grade which is used to assign the student grade in the LMS. In particular there is exactly one column in the LMS grade book for each link to WeBWorK in the LMS and the '''only''' information passed back from WeBWorK to the LMS is the percentage grade. Given this restriction there are two modes for the WeBWorK LTI grading interface.<br />
<br />
* '''Course Grade Mode''': In this mode you create a single link/assignment in the LMS which points to WeBWorK. WeBWorK will then return the "cumulative" homework grade as a percentage to the LMS. In other words the grade in the LMS column is the course homework grade. <br />
<br />
* '''Homework Grade Mode''': In this mode you create a single link/assignment in the LMS for each problem set in WeBWorK. WeBWorK will then return the total score for the problem set to the LMS. In other words you will have multiple columns in the LMS gradebook, one for each link, and they will be filled out with the student scores on individual WeBWorK problem sets. <br />
<br />
The first mode is the easiest to set up, but the second mode is more granular and ends up transferring more data to the LMS gradebook.<br />
<br />
= First Time Setup =<br />
If you haven't already you should set up LTI authentication. See [[LTI-Advanced Authentication]] for details. <br />
<br />
== WeBWorK Setup ==<br />
<br />
There are several configuration variables in authen_LTI.conf which need to be set to enable grade passback. <br />
<br />
'''$LTIGradeMode''' - If this variable is not set then the grade passback feature is turned off. If it is set to "course" then the Course Grade Mode described above is used. If it is set to "homework" then the Homework Grade Mode described above is used. <br />
<br />
'''$LTIGradeOnSubmit''' - If this flag is enabled then WeBWorK will attempt to update student grades every time they submit an answer to a problem. This keeps the student grades current, but can be a drain on your server. If either the WeBWorK server or the LMS server bogs down it might be a good idea to turn this off. <br />
<br />
'''$LTIMassUpdateInterval''' - Because instructor activities like adding new sets, deleting problems, or marking problems correct can change student grades we periodically update all student grades just to make sure things are current. This interval controls how often that mass update happens (in seconds). It is set to 86400 (24 hours) be default and if it is set to -1 this feature will be disabled. <br />
<br />
== LMS Setup ==<br />
<br />
In addition to configuring WeBWorK you may also need to enable the grading feature on your LMS. How this works varies among different LMS. I will describe how to configure Blackboard, Moodle, and Canvas. <br />
* '''Blackboard''' - There is a global flag which controls if Tools are allowed to submit grades. You will need administrator access to change this.<br />
# In the Administrator Panel go to Building Blocks > LTI Tool Providers > Global Properties<br />
# Enable the setting to allow any Tool Provider to post grades to the Grade Center.<br />
* '''Moodle''' - There is a flag which controls if Tools are allowed to submit grades. This can be set for individual courses or site wide. <br />
# Go to Site administration > Plugins > Activity modules > LTI > Manage external tool types.<br />
# Edit the WeBWorK tool and under Privacy enable "Accept grades from the tool".<br />
* '''Canvas''' - Grade passback is always enabled in Canvas, but it is necessary to set the Domain value in the App configuration.<br />
# Go to Settings > Apps<br />
# On the line below the Apps tab, click "View Apps Configurations"<br />
# Find WeBWorK in the list, click on the gear icon on the right, and select "Edit" from the drop-down menu<br />
# Enter the domain of your WeBWorK server in the appropriate box, and click "Submit". For example, if the URL for your course is "https://webwork.server.edu/webwork2/TestCourse/", then enter "webwork.server.edu" (without the quotes).<br />
<br />
= Adding Graded Links =<br />
<br />
You add links to WeBWorK in the LMS the same way you do if you are just using the authentication feature (see [[LTI-Advanced Authentication]]). In particular you create an "Assignment/Link" and provide the url of the WeBWorK course. The only additional thing you have to worry about is setting up the grade. In general you need to make sure grading is enabled for the link and set the total number of points the assignment is worth. It is recommended that you use 100 points so that the grade looks like a percentage. However, the grade given to the student will always be a percentage of the total available points so you can use however many points you want. Its important to remember that the only information transferred from WeBWorK to the LMS is the percentage grade of the assignment. In particular things like visibility and due dates are not automatically synchronized. It is recommended that you do not set due dates in the LMS and allow WeBWorK to control the availability of the problem sets. I'll describe the specifics for Blackboard, Moodle and Canvas. <br />
<br />
==== Blackboard ====<br />
[[File:blackboard-lti-graded.png|300px]]<br />
<br />
You need to make sure "Enable Evaluation" is set to yes. You can also set the number of points available and the due date of the assignment. <br />
<br />
==== Moodle ====<br />
[[File:moodle-lti-graded.png|300px]]<br />
<br />
All you need to do is set the points possible as well as any of the other Moodle specific options. <br />
<br />
==== Canvas ====<br />
[[File:canvas-lti-graded.png|300px]]<br />
<br />
All you need to do is set the number of points possible. Make sure the domain of your server is set in the Canvas tool configuration for WeBWorK.<br />
<br />
= Course Grade Mode =<br />
<br />
Lets look at an example of Blackboard set up with Course Grade mode. Here we have a single (graded) link to our WeBWorK course in the Content area. Students will use this link to access WeBWorK. <br />
<br />
[[File:blackboard-lti-example.png|500px]]<br />
<br />
Once in WeBWorK they navigate and finish problem sets in exactly the same way they normally would. WeBWorK behaves just as it would if there were no LMS at all. The only difference is when students submit an answer their course grade will be computed and sent to the LMS. Some things to remember: <br />
* '''Note''': In many LMS instructors do not have grades. In this case you (the instructor) will see the message "Your score was not successfully sent to the LMS". This is fine, unless its not. If you suspect that there is a problem enable '''$debug_lti_parameters''' to see more verbose error messages. <br />
* How the WeBWorK grade is used in the "Total Grade" on the LMS is entirely up to you and how you have set the weights in the LMS. See the documentation for the LMS for how to set weights on grades. <br />
* Only make one (graded) link to WeBWorK. If you make more than one then your gradebook will have multiple columns and WeBWorK will get confused about which one to send the grade back to. <br />
* Users have to log in to WeBWorK via the LMS at least once for this to work. The easiest way to guarantee this is to make the LMS create the users. However, once they have logged in via the LMS once they can log in directly via WeBWorK after that (assuming your authentication system is set up that way).<br />
* You can use different grade modes in different courses by setting the '''$LTIGradeMode''' variable in the '''course.conf''' file. So you are not locked into using one type of grading for all of your courses.<br />
<br />
= Homework Grade Mode = <br />
<br />
This grading mode is more granular in that students get all of their problem set grades, as well as any other LMS grades, all in one place. The cost is that you need to set up a separate link to each WeBWorK problem set. For example in this Canvas course we have links to three different WeBWorK assignments.<br />
<br />
[[File:moodle-lti-ex-1.png|400px]]<br />
<br />
The important thing about these links is that they point directly to their corresponding problem set. So for example, the link pointing to the Orientation set has the URL<br />
<br />
[[File:moodle-lti-ex-2.png|300px]]<br />
<br />
https://webwork.server.edu/webwork2/TestCourse/Orientation<br />
<br />
In general the link to set '''<set name>''' should have the following format:<br />
* Default or Just-In-Time Set: '''<nowiki>https://<server address>/webwork2/<course name>/<set name></nowiki>'''<br />
* Gateway: '''<nowiki>https://<server address>/webwork2/<course name>/quiz_mode/<set name></nowiki>'''<br />
* Proctored Gateway: '''<nowiki>https://<server address>/webwork2/<course name>/proctored_quiz_mode/<set name></nowiki>'''<br />
''If the set name is not somewhere in the url for that set on the LMS side then it is incorrect.'' You can get the URL for a particular set by right clicking and using "Copy this link location" on the link to the problem set in the main course page. Once things are set up students then click on the links to access their homework and complete their assignments as normal. If things are working then they should see their grades appear in the LMS. There are a couple of caveats.<br />
<br />
* '''Note''': In many LMS instructors do not have grades. In this case you (the instructor) will see the message "Your score was not successfully sent to the LMS". This is fine, unless its not. If you suspect that there is a problem enable '''$debug_lti_parameters''' to see more verbose error messages. <br />
* Students have to click on the link corresponding to the set at least once for grading to work. Once in WeBWorK they can navigate like normal. However, if they try to navigate to sets which are open, but which they haven't visited via the LMS get get messages like "You must log into this set via your Learning Management System". <br />
* Homework due dates and problem totals are not synced between WeBWorK and the LMS. The easiest thing to do is to set all of the homework sets to be open forever in the LMS and let WeBWorK manage access to the homework sets. You can also set the number of points for each set to 100 in the LMS and the score will be a percentage. You can also keep the due dates and number of points synchronized, but you will have to do so by hand. <br />
* Also note that depending on how you weight things in the LMS the contributions of the homework to the total grade in the LMS will be different than the Homework Total on the Grades page in WeBWorK. (In particular the WeBWorK grade is the total number of points earned over the points available, while, assuming you set the points to 100 for every assignment in the LMS, the LMS grade is the average of all the homework percentages.) You can turn off displaying the Homework Total in WeBWorK using the Course Configuration menu if this bothers you or your students. <br />
* You can use different grade modes in different courses by setting the '''$LTIGradeMode''' variable in the '''course.conf''' file. So you are not locked into using one type of grading for all of your courses.<br />
<br />
[[Category:Administrators]]<br />
[[Category:Authentication]]</div>Vojtahttps://webwork.maa.org/mediawiki_new/index.php?title=LTI-Advanced_Grading&diff=19976LTI-Advanced Grading2020-08-09T05:31:32Z<p>Vojta: /* Adding Graded Links */ "work" should have been "worth"</p>
<hr />
<div>With the LTIAdvanced interface it is possible for WeBWorK to automatically pass grades back to your Learning Management System (LMS), e.g. Blackboard, Moodle, Canvas, etc... However because we are using the more widespread, but also more restrictive, version 1.2 of LTI there are some quirks. The way LTI grade passback works in version 1.2 is when you create the "Assignment" in your LMS that points to WeBWorK that "Assignment" gets a corresponding column in your LMS gradebook. WeBWorK then returns a percentage grade which is used to assign the student grade in the LMS. In particular there is exactly one column in the LMS grade book for each link to WeBWorK in the LMS and the '''only''' information passed back from WeBWorK to the LMS is the percentage grade. Given this restriction there are two modes for the WeBWorK LTI grading interface.<br />
<br />
* '''Course Grade Mode''': In this mode you create a single link/assignment in the LMS which points to WeBWorK. WeBWorK will then return the "cumulative" homework grade as a percentage to the LMS. In other words the grade in the LMS column is the course homework grade. <br />
<br />
* '''Homework Grade Mode''': In this mode you create a single link/assignment in the LMS for each problem set in WeBWorK. WeBWorK will then return the total score for the problem set to the LMS. In other words you will have multiple columns in the LMS gradebook, one for each link, and they will be filled out with the student scores on individual WeBWorK problem sets. <br />
<br />
The first mode is the easiest to set up, but the second mode is more granular and ends up transferring more data to the LMS gradebook.<br />
<br />
= First Time Setup =<br />
If you haven't already you should set up LTI authentication. See [[LTI-Advanced Authentication]] for details. <br />
<br />
== WeBWorK Setup ==<br />
<br />
There are several configuration variables in authen_LTI.conf which need to be set to enable grade passback. <br />
<br />
'''$LTIGradeMode''' - If this variable is not set then the grade passback feature is turned off. If it is set to "course" then the Course Grade Mode described above is used. If it is set to "homework" then the Homework Grade Mode described above is used. <br />
<br />
'''$LTIGradeOnSubmit''' - If this flag is enabled then WeBWorK will attempt to update student grades every time they submit an answer to a problem. This keeps the student grades current, but can be a drain on your server. If either the WeBWorK server or the LMS server bogs down it might be a good idea to turn this off. <br />
<br />
'''$LTIMassUpdateInterval''' - Because instructor activities like adding new sets, deleting problems, or marking problems correct can change student grades we periodically update all student grades just to make sure things are current. This interval controls how often that mass update happens (in seconds). It is set to 86400 (24 hours) be default and if it is set to -1 this feature will be disabled. <br />
<br />
== LMS Setup ==<br />
<br />
In addition to configuring WeBWorK you may also need to enable the grading feature on your LMS. How this works varies among different LMS. I will describe how to configure Blackboard, Moodle, and Canvas. <br />
* '''Blackboard''' - There is a global flag which controls if Tools are allowed to submit grades. You will need administrator access to change this.<br />
# In the Administrator Panel go to Building Blocks > LTI Tool Providers > Global Properties<br />
# Enable the setting to allow any Tool Provider to post grades to the Grade Center.<br />
* '''Moodle''' - There is a flag which controls if Tools are allowed to submit grades. This can be set for individual courses or site wide. <br />
# Go to Site administration > Plugins > Activity modules > LTI > Manage external tool types.<br />
# Edit the WeBWorK tool and under Privacy enable "Accept grades from the tool".<br />
* '''Canvas''' - Grade passback is always enabled in Canvas and requires no global configuration.<br />
<br />
= Adding Graded Links =<br />
<br />
You add links to WeBWorK in the LMS the same way you do if you are just using the authentication feature (see [[LTI-Advanced Authentication]]). In particular you create an "Assignment/Link" and provide the url of the WeBWorK course. The only additional thing you have to worry about is setting up the grade. In general you need to make sure grading is enabled for the link and set the total number of points the assignment is worth. It is recommended that you use 100 points so that the grade looks like a percentage. However, the grade given to the student will always be a percentage of the total available points so you can use however many points you want. Its important to remember that the only information transferred from WeBWorK to the LMS is the percentage grade of the assignment. In particular things like visibility and due dates are not automatically synchronized. It is recommended that you do not set due dates in the LMS and allow WeBWorK to control the availability of the problem sets. I'll describe the specifics for Blackboard, Moodle and Canvas. <br />
<br />
==== Blackboard ====<br />
[[File:blackboard-lti-graded.png|300px]]<br />
<br />
You need to make sure "Enable Evaluation" is set to yes. You can also set the number of points available and the due date of the assignment. <br />
<br />
==== Moodle ====<br />
[[File:moodle-lti-graded.png|300px]]<br />
<br />
All you need to do is set the points possible as well as any of the other Moodle specific options. <br />
<br />
==== Canvas ====<br />
[[File:canvas-lti-graded.png|300px]]<br />
<br />
All you need to do is set the number of points possible. Make sure the domain of your server is set in the Canvas tool configuration for WeBWorK.<br />
<br />
= Course Grade Mode =<br />
<br />
Lets look at an example of Blackboard set up with Course Grade mode. Here we have a single (graded) link to our WeBWorK course in the Content area. Students will use this link to access WeBWorK. <br />
<br />
[[File:blackboard-lti-example.png|500px]]<br />
<br />
Once in WeBWorK they navigate and finish problem sets in exactly the same way they normally would. WeBWorK behaves just as it would if there were no LMS at all. The only difference is when students submit an answer their course grade will be computed and sent to the LMS. Some things to remember: <br />
* '''Note''': In many LMS instructors do not have grades. In this case you (the instructor) will see the message "Your score was not successfully sent to the LMS". This is fine, unless its not. If you suspect that there is a problem enable '''$debug_lti_parameters''' to see more verbose error messages. <br />
* How the WeBWorK grade is used in the "Total Grade" on the LMS is entirely up to you and how you have set the weights in the LMS. See the documentation for the LMS for how to set weights on grades. <br />
* Only make one (graded) link to WeBWorK. If you make more than one then your gradebook will have multiple columns and WeBWorK will get confused about which one to send the grade back to. <br />
* Users have to log in to WeBWorK via the LMS at least once for this to work. The easiest way to guarantee this is to make the LMS create the users. However, once they have logged in via the LMS once they can log in directly via WeBWorK after that (assuming your authentication system is set up that way).<br />
* You can use different grade modes in different courses by setting the '''$LTIGradeMode''' variable in the '''course.conf''' file. So you are not locked into using one type of grading for all of your courses.<br />
<br />
= Homework Grade Mode = <br />
<br />
This grading mode is more granular in that students get all of their problem set grades, as well as any other LMS grades, all in one place. The cost is that you need to set up a separate link to each WeBWorK problem set. For example in this Canvas course we have links to three different WeBWorK assignments.<br />
<br />
[[File:moodle-lti-ex-1.png|400px]]<br />
<br />
The important thing about these links is that they point directly to their corresponding problem set. So for example, the link pointing to the Orientation set has the URL<br />
<br />
[[File:moodle-lti-ex-2.png|300px]]<br />
<br />
https://webwork.server.edu/webwork2/TestCourse/Orientation<br />
<br />
In general the link to set '''<set name>''' should have the following format:<br />
* Default or Just-In-Time Set: '''<nowiki>https://<server address>/webwork2/<course name>/<set name></nowiki>'''<br />
* Gateway: '''<nowiki>https://<server address>/webwork2/<course name>/quiz_mode/<set name></nowiki>'''<br />
* Proctored Gateway: '''<nowiki>https://<server address>/webwork2/<course name>/proctored_quiz_mode/<set name></nowiki>'''<br />
''If the set name is not somewhere in the url for that set on the LMS side then it is incorrect.'' You can get the URL for a particular set by right clicking and using "Copy this link location" on the link to the problem set in the main course page. Once things are set up students then click on the links to access their homework and complete their assignments as normal. If things are working then they should see their grades appear in the LMS. There are a couple of caveats.<br />
<br />
* '''Note''': In many LMS instructors do not have grades. In this case you (the instructor) will see the message "Your score was not successfully sent to the LMS". This is fine, unless its not. If you suspect that there is a problem enable '''$debug_lti_parameters''' to see more verbose error messages. <br />
* Students have to click on the link corresponding to the set at least once for grading to work. Once in WeBWorK they can navigate like normal. However, if they try to navigate to sets which are open, but which they haven't visited via the LMS get get messages like "You must log into this set via your Learning Management System". <br />
* Homework due dates and problem totals are not synced between WeBWorK and the LMS. The easiest thing to do is to set all of the homework sets to be open forever in the LMS and let WeBWorK manage access to the homework sets. You can also set the number of points for each set to 100 in the LMS and the score will be a percentage. You can also keep the due dates and number of points synchronized, but you will have to do so by hand. <br />
* Also note that depending on how you weight things in the LMS the contributions of the homework to the total grade in the LMS will be different than the Homework Total on the Grades page in WeBWorK. (In particular the WeBWorK grade is the total number of points earned over the points available, while, assuming you set the points to 100 for every assignment in the LMS, the LMS grade is the average of all the homework percentages.) You can turn off displaying the Homework Total in WeBWorK using the Course Configuration menu if this bothers you or your students. <br />
* You can use different grade modes in different courses by setting the '''$LTIGradeMode''' variable in the '''course.conf''' file. So you are not locked into using one type of grading for all of your courses.<br />
<br />
[[Category:Administrators]]<br />
[[Category:Authentication]]</div>Vojtahttps://webwork.maa.org/mediawiki_new/index.php?title=TextbookSpecificMessages&diff=7549TextbookSpecificMessages2013-11-24T03:36:26Z<p>Vojta: "defined $envir..." is redundant; \$envir should be $envir within BEGIN_TEXT/END_TEXT; fixed a typo</p>
<hr />
<div><h2>Textbook specific messages: PG Code Snippet</h2><br />
<br />
<p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"><br />
<em>This code snippet shows the essential PG code to include textbook specific messages in a problem. <br />
Note that these are <b>insertions</b>, not a complete PG file. This code will have to be incorporated<br />
into the problem file on which you are working.</em><br />
</p><br />
<br />
<p><br />
You may want to include a message in your problem that tells students to look at a specific textbook. <br />
Or you may want to have different messages for different text books.<br />
In either case the message(s) are only meaningful to students using the specific textbook.<br />
But you also want your problem to be usable in a course using a different text book.<br />
</p><br />
<br />
<p><br />
This code snippet explains how to set up a course and write the problem so that if the specific <br />
textbook is being used in the course, students will see the message for that textbook but if the <br />
textbook is not being used in the course, students will not see the message.<br />
</p><br />
<br />
<p><br />
First you have add a line to the course.conf file which will activate the messages when viewed by <br />
students in the course. Here is the line to add for a make believe textbook<br><br />
<code>$pg{specialPGEnvironmentVars}{Pizer_Calculus_5th} = 1;</code><br><br />
If this line is not present, none of the messages below will appear when the problem is viewed.<br />
</p><br />
<br />
<p><br />
First we show how to put a message in its own BEGIN_TEXT/END_TEXT block.<br />
</p><br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br />
</p><br />
<br />
<table cellspacing="0" cellpadding="2" border="0"><br />
<tr valign="top"><br />
<th> PG problem file </th><br />
<th> Explanation </th><br />
</tr><br />
<tr valign="top"><br />
<td style="background-color:#ddffdd;border:black 1px dashed;"><br />
<pre><br />
# The message below is only meaningful if you <br />
# are using the textbook "Calculus 5th ed" by Pizer.<br />
# If you are using this textbook, put the following<br />
# line (without the #) in the course.conf file:<br />
# $pg{specialPGEnvironmentVars}{Pizer_Calculus_5th} = 1;<br />
# Then your students will see the message but others,<br />
# not using this text (and not having the above line<br />
# in their course's course.conf file), can still use <br />
# this problem and their students will not see the message.<br />
</pre><br />
</td><br />
<td style="background-color:#ccffcc;padding:7px;"><br />
<p><br />
We add a comment to the code of the problem explaining how textbook specific messages work.<br />
</p><br />
</td><br />
</tr><br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
if ($envir{'Pizer_Calculus_5th'}) {<br />
<br />
BEGIN_TEXT<br />
This is similar to Problems 29 and 31 of Section 5.2 of Calculus 5th ed by Pizer.<br />
END_TEXT<br />
<br />
};<br />
</pre><br />
</td><br />
<td style="background-color:#ffffcc;padding:7px;"><br />
<p><br />
We check if the enviromental variable 'Pizer_Calculus_5th' is defined and true, and if so we out put the message.<br />
</p><br />
</td><br />
</tr><br />
<br />
</table><br />
<br />
<br />
<br />
<br />
<p><br />
Now we show how to put a message inside of an existing BEGIN_TEXT/END_TEXT block.<br />
</p><br />
<br />
<table cellspacing="0" cellpadding="2" border="0"><br />
<tr valign="top"><br />
<th> PG problem file </th><br />
<th> Explanation </th><br />
</tr><br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
BEGIN_TEXT<br />
Let \[ f(x) = \tan^{-1}($b^x) \]<br />
$PAR<br />
\( f'( x ) = \) \{ans_rule(40) \}<br />
$PAR<br />
Here is how to put some text, e.g. <br />
\{if ($envir{'Pizer_Calculus_5th'}) {<br />
"This is similar to Problems 29 and 31 of Section 5.2 of Calculus 5th ed by Pizer, "}<br />
\}<br />
in the middle of a BEGIN${US}TEXT/END${US}TEXT block.<br />
<br />
END_TEXT<br />
</pre><br />
</td><br />
<td style="background-color:#ffffcc;padding:7px;"><br />
<p><br />
Here we use the <code>\{ \}</code> construction to put the perl <code>if</code> statement inside <br />
of the BEGIN_TEXT/END_TEXT block. The <code>if</code> statement is the same as above. In this case, you <br />
should put the comment explaining how textbook specific messages work outside of the<br />
BEGIN_TEXT/END_TEXT block.<br />
</p><br />
</td><br />
</tr><br />
<br />
</table><br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br />
</p><br />
<br />
[[Category:Problem Techniques]]</div>Vojtahttps://webwork.maa.org/mediawiki_new/index.php?title=User_Stories&diff=14800User Stories2013-11-22T03:59:28Z<p>Vojta: /* Instructors */ added items about restricting TAs' access by section, fixing a student grade on a problem, and exporting detailed (problem-level) data on homework sets</p>
<hr />
<div>This is a list of basic tasks desired by WeBWorK users (Students, instructors, administrators, etc.), as motivated by [http://en.wikipedia.org/wiki/User_story]. The intention is for this document to motivate back-end and API development.<br />
<br />
Note that this is not intended to be a list of current functionality. It is a list of tasks that users desire to be able to do in the system.<br />
<br />
Please feel free to add any missing tasks to this list.<br />
<br />
=== Students ===<br />
* Problem/Problem Sets<br />
** View the list of my problem sets<br />
** View the list of problems in a problem set<br />
** Print my assignment<br />
** View a problem<br />
** Attempt a problem (enter answers and get feedback)<br />
** View my grades on the problems in a problem set<br />
** View my overall grades for all problem sets<br />
** View my performance compared to students in this class or this group from the current course or past classes <br />
** Get a new version of a problem<br />
** View my past answers to a problem<br />
** 'Save Progress' button for use with whiteboard or calculator resources<br />
** View assignments from different courses on same page<br />
** Sort assignments (e.g. by Course, by type, by completion or assigned date)<br />
** view completion status of each problem in an assignment while working on one of its problems<br />
** get context-sensitive help<br />
*** info about type of answer: numeric (real, rational), functional expression, equation<br />
*** info about necessary accuracy<br />
**** programed or spontaneuous popup<br />
**** decimal places vs significant figures<br />
**** absolute or relative tolerance<br />
**Get a new, blank version of an assignment for review for an exam<br />
***View list of acceptable units<br />
<br />
* Hardcopy of homework sets<br />
** Print hardcopy of active homework set as a supplement to viewing the homework on line<br />
** Print hardcopy of a completed (past answer date) homework set for review<br />
*** Option to print with or without hints.<br />
*** Option to print with or without solutions.<br />
<br />
* User Management<br />
** Change my email address<br />
** Change my password<br />
<br />
* Communication<br />
** Email the instructor<br />
<br />
* User Interface<br />
** Ability to customize the interface<br />
*** Ability to rearrange and resize components<br />
*** Ability to modify theme<br />
<br />
=== Instructors ===<br />
<br />
* User management<br />
** Add a user (or a few users) manually<br />
** Import users from a file<br />
** Update a student's information (login, email, name, id number, password, etc.)<br />
*** Student status that includes "enrolled," but "disallow logins" (e.g., for old semesters). This might be a characteristic of a course rather than a student.<br />
** Act as a student (see what an individual student sees)<br />
** Delete a student<br />
** List all students<br />
** List all students in a given section / recitation<br />
** Assign problem sets to one or more users<br />
** View grades / progress for one or more users<br />
** View a student's past answers on a problem<br />
** Export list of users<br />
** Create a group of students by hand or through rules. Default group is one class.<br />
** Edit a characteristic or characteristics of many students (e.g., set student status to inactive/drop)<br />
** Have students generate ad hoc groups on the fly for working cooperatively on WeBWorK problems in class<br />
** Restrict TAs' access to students not in their recitation section(s)<br />
<br />
* Communication<br />
** Email a student / group of students / all students<br />
** Provide a chat interface with other members of the class with problem threads.<br />
<br />
* Problem Sets<br />
** Create a new problem set<br />
** Delete problem sets (choose problem sets and be presented with a window that lists problem sets to be deleted and has a "confirm delete" button) <br />
** Set the order in which the sets appear on the homework page. (and/or set the rules that determine this order)<br />
** Change the details of a problem set<br />
*** Set Name<br />
*** Open, due, answer dates<br />
*** Reduced credit enable/period<br />
*** Give an individual student, or group of students an extension of the due date.<br />
*** Re-open a closed homework set for all students and set a new global due date. Should this override all local due dates (i.e., homework extensions given to individuals)<br />
**** Suggested solution: When resetting a global due date a pop-up window warns if there are any individual overrides. The instructor has a chance to adjust these individual extensions or not as the situation warrants.<br />
*** Whether to show hints / solutions, and when(should this be decided by the problem (e.g. PG code) or should it be set by the environment (webwork2)? Some combination?<br />
*** Merge two or more assignments.<br />
*** Edit the set header file (there should be only one set header file for both html and tex)<br />
*** Other set-specific parameters<br />
** Specify different types of assignments, with separate grading and assignment rules:<br />
*** Normal Homework Assignment (assigned to everyone in a (class or group), scored as normal homework)<br />
*** Prep Assignment (assigned to specific groups, not part of normal homework)<br />
*** Follow-up Prep Assignment (opened upon completion of Prep Assignment)<br />
*** In-Class Problems (paired to in-class lecture, option for everyone to have the same seed. Different than normal homework.)<br />
*** In-Class Group / Peer Problems (specific problem assigned to specific group for during class.)<br />
*** Gateway Quiz problem set ''(how is this defined?)''<br />
**** Timed Test/Quiz problem sets<br />
**** Userset Versioning of Test/Quiz problem sets<br />
**** Test/Quiz problem sets composed of groups of problems (e.g., sections, with characteristics---e.g., problem order---that can be set by section, but the sections appearing in a specified order)<br />
**** Allow restriction of student access to scores and previously submitted work<br />
**** Hooks for Respondus and SoftwareSecure.com type workstation isolation software.<br />
*** In-Class Quiz or In-Class exam set (scores distinguished differently from normal homework assignments)<br />
*** Placement Testing Mechanism (e.g. student registration, reporting of scores and post-quiz message)<br />
**** Read test scores/results for tests that run over-time and aren't otherwise allowed to be submitted<br />
*** Master Type Sets (future problems or groups of problems determined by a ruleset that uses results on previous problems or groups of problems)---this should be able to play with testing and homework assignment types<br />
** Add problems / problem pools to a problem set<br />
** multi-stage scoring<br />
*** current: reduced-credit period is offset backwards from dueDate<br />
*** also: bonus-credit period is offset backwards from dueDate<br />
*** also: full-credit with due-date, extend with reduced-credit for specified duration<br />
*** full-scoring up to n tries before dueDate, then show ans/sol and reseed with reduced-credit before dueDate<br />
** Change settings for an individual problem within a problem set<br />
*** Number of Attempts<br />
*** Value<br />
*** When to show hints (if available)<br />
** Assign problem sets to one or more users (possibly based on user criteria such as section / recitation)<br />
** Show or hide problem set to students. (visible/hidden) <br />
** View grades / progress for one or more problem sets<br />
** Set a student's score on a certain problem (e.g., to make up for a bug in the problem)<br />
** Export detailed information (as is shown under "student progress") on one or more problem sets<br />
** Export grades for one or more problem sets<br />
** Set whether a problem / problem set should be reseeded after a certain number of attempts<br />
** Import / Export homework sets<br />
*** Export a problem set with all of its auxiliary files and transmit it to a colleague.<br />
** Regrade a problem within a problem set after modification<br />
** Set default values for settings to apply to all newly created homework sets<br />
** Assign problem sets to students in specified group<br />
** Turn on / off universal resources for students:<br />
*** R<br />
*** Sage<br />
*** whiteboard<br />
*** graphing calculator (especially with whiteboard)<br />
*** geometry software (geogebra, jsxgraph)<br />
*** simple calculator<br />
** Option to log unrecorded attempts submitted after due date has passed.<br />
** Assign the same random seed to all students for a particular problem or an entire homework set<br />
<br />
* Hardcopy of problem sets<br />
** Print hardcopy for proof reading<br />
*** Option to include hints and/or solutions<br />
** Print hardcopy to distribute to a student or students<br />
*** Option to NOT show hints and/or solutions<br />
* Problem Pools<br />
** Create a problem pool<br />
** Add / remove problems from a problem pool<br />
<br />
* Problems<br />
** Edit a problem<br />
** Create a new problem<br />
** Copy a problem<br />
** Upload/Download one or more problems<br />
** View available problems<br />
*** identify/exclude problems already used<br />
**** in this assignment<br />
**** in any assignment for this course<br />
**** for a recycled course: identify when used in past<br />
*** enable a virtual library of problems<br />
**** used by this instructor in previous years<br />
**** used by colleagues, now or in past<br />
** Search for problems<br />
*** By topic<br />
**** DBcourse, DBchapter, DBsection<br />
**** keyword(s)<br />
**** text--author (edition), chapter, section<br />
*** By type (multiple choice, numerical, symbolic)<br />
*** by component: has solution, uses MathObjects,<br />
*** By author or directory<br />
*** By institution<br />
*** enable instructor preferences for starting new search<br />
** Tag problems with relevant metadata<br />
** Tag problems with private metadata (like favorites (stars), or when last used, or other instructor-specific information)<br />
** View a problem with a given seed (view a new version of a problem)<br />
** Add a problem to a problem set<br />
** Package a problem with all of its auxiliary files so that it can be shipped to a colleague (probably as part of a problem set)<br />
** Report a bug in a problem<br />
** report a common confusion with a problem<br />
<br />
* Course management<br />
** disable "Show Solution" for all students --- primarily for use in huge classes where fraternities have comprehensive solution files<br />
** Archive a copy of the course for safety backup or for use next semester.<br />
** reuse a course<br />
*** revise dates: open, close, show ans & sol<br />
*** revise dates, automatically following some rules + standard holidays factored in<br />
*** treat collection of problems used previously as a virtual library<br />
** Specify desired notation for<br />
*** Vectors<br />
**** Angle versus round brackets<br />
**** Arrow versus bar versus bold<br />
**** Step functions<br />
**** ijk notation versus coordinate form<br />
*** Complex numbers (i versus j)<br />
** Download scores in a format that can be easily imported into an LMS gradebook<br />
<br />
* Analytics<br />
** Store student performance for non-webwork assessments (e.g. paper/pencil tests, quizzes, etc.)<br />
** Provide statistics and performance by students on assignments for specified group(s) and specified course(s)<br />
** Provide performance across courses<br />
<br />
* User Interface<br />
** Ability to customize the interface<br />
*** Ability to rearrange and resize components<br />
*** Ability to modify theme<br />
<br />
=== Administrators ===<br />
* Courses<br />
** Create a course<br />
** Change the name of a course<br />
** Make a course available/unavailable to students<br />
** Copy content (users, sets, problems) from one course to another<br />
** Back up a course / courses<br />
** Restore a course from backup<br />
** Add / Remove / Edit users within a course<br />
* Use WeBWorK function calls in external scripts<br />
* System (with aid from IT expert)<br />
** backup crucial data<br />
** monitor important logfiles<br />
** identify which tasks to handle via cron, which by-hand<br />
* Easily import student demographic data from institutional data feeds.<br />
* enable easily-understood date display ($studetDateDisplayFormat !!)<br />
<br />
=== Authors ===<br />
* obtain data about common errors on a problem, perhaps gathered only from courses on an MAA site<br />
* digest of student queries/complaints/praise (a selection of Email Instructor items)<br />
<br />
=== Developers ===<br />
* Add a feature to webwork. E.G. Add the achievement system or some other feature which interacts with webwork in a non trivial way and requires persistence in such a way that it doesn't break installations of people who aren't using the feature.<br />
<br />
* Automated assignments for students taking placement tests<br />
* Sharing of problem pools<br />
* (Easy generation / inclusion of additional tables: meta-data about problem pools, how to define student groups, ... so that these can be shared across institutions and installations of WeBWorK)<br />
* Model courses<br />
* Master courses (e.g. institution standard course, assign assignments from master course to specific course)<br />
<br />
=== extended comments ===<br />
* A course-level schedule object could allow flexibility for an Instructor's tool to provide flexible management of dates for assignments together with associated actions.<br />
** dates for a single assignment (some selection/extension of the following)<br />
*** visible to students<br />
*** open<br />
*** dueDate<br />
*** date to show answers<br />
*** date to show solutions<br />
*** date ending opportunity for bonus credit<br />
*** date ending opportunity for reduced credit<br />
** flexible management of dates<br />
*** specify which event (previous list) has explicit calendar date<br />
*** specify delta-times for all other events (allowing "infinity" to hide all solutions from all students)<br />
*** specify fractions for bonus or reduced credit<br />
*** to simplify reuse of a course, allow use of a meta-schedule specifying just dates for the controlling event (but also allow revision of that during the term)<br />
*** select alternatives for summarizing the configuration to students (e.g., show text about dueDate together with icons indicating alternative credit stuff)<br />
** interface should clarify hierarchy for configuring this complexity, perhaps extra tab in Course Configuration which modifies course.conf as a record within an archived course<br />
<br />
[[Category:Developers]]</div>Vojta