WeBWorK Problems
https://webwork.maa.org/moodle/mod/forum/view.php?f=3
The wiki and forum systems have changed encryption methods and some passwords need to be reset. If you can't login: first set (or reset) your password on the wiki (you can use the "forgot password" link). Make sure to complete the process to set a "new" permanent password. Then use that permanent password for moodle as well as the wiki.
Questions and comments related to WeBWorK problems, problem authoring, etc.Moodleen(c) 2020 WeBWorK: Online homework for math and sciencehttps://webwork.maa.org/moodle/theme/image.php/classic/core/1584125254/i/rsssitelogomoodle
https://webwork.maa.org/moodle
14035Issue with contextPercent.pl
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4827&parent=14411
Wed, 08 Jul 2020 18:15:42 GMTby Kyle Besing. <p><p>After an update of the Ubuntu distribution running out WeBWorK server, I have encountered the following error for a few of our problems. I have tried making the change to the XMLRPC/Lite.pm file mentioned <a href="https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4795&parent=14256">here</a> to try to deal with a possible issue with UTF-8 to no avail. Does anyone know what might be causing this?</p><p><br /></p><p>Thanks,</p><p>Kyle</p><p><a>
</a></p><h2><a>WeBWorK Error</a></h2><a></a><p><a>WeBWorK has encountered a software error while
attempting to process this problem. It is likely that there is an error
in the problem itself. If you are a student, report this error message
to your professor to have it corrected. If you are a professor, please
consult the error output below for more information.</a></p><a></a><h3><a>Error messages</a></h3><a></a><p><a><code>ERRORS from evaluating PG file: <br /> Error detected while loading [PG]/macros/contextPercent.pl:
PG_macro_file_eval detected error at line 124 of file [PG]/lib/PGloadfiles.pm
Malformed UTF-8 character (fatal) at line 1 of (eval 8503), chunk 1.
The calling package is PGloadfiles
Died within PGloadfiles::compile_file called at line 172 of [PG]/lib/PGloadfiles.pm
from within PGloadfiles::loadMacros called at line 581 of [PG]/macros/PG.pl
from within main::loadMacros called at line 24 of (eval 8256)
<br /></code></a></p><a></a><h3><a>Error details</a></h3><a><code></code></a><code></code><p><code><a>
</a><a></a></code></p><code></code><pre><code><a> Problem2
1. ERROR caught by Translator while processing problem file:Library/PCC/BasicMath/MeanMedianMode/MeanMedianMode230.pg
****************
ERRORS from evaluating PG file: <br /> Error detected while loading [PG]/macros/contextPercent.pl:
PG_macro_file_eval detected error at line 124 of file [PG]/lib/PGloadfiles.pm
Malformed UTF-8 character (fatal) at line 1 of (eval 8503), chunk 1.
The calling package is PGloadfiles
Died within PGloadfiles::compile_file called at line 172 of [PG]/lib/PGloadfiles.pm
from within PGloadfiles::loadMacros called at line 581 of [PG]/macros/PG.pl
from within main::loadMacros called at line 24 of (eval 8256)
<br />
****************<br />
------Input Read
1 # WeBWorK problem written by Carl Yao
2 # Portland Community College
3 #
4 # Given a bar graph with two colors of bars, find the mean of two groups of data.
5 #
6 # Last edited by Carl Yao on 12/20/13
7 #
8 # ENDDESCRIPTION
9
10 ## DBCCSS('6.SP')
11 ## DBsubject(Statistics)
12 ## DBchapter(Exploratory data analysis/descriptive statistics)
13 ## DBsection(Summary statistics)
14 ## Institution(PCC)
15 ## Author(Carl Yao)
16 ## Level(2)
17 ## MO(1)
18 ## KEYWORDS('mean','application','bar graph')
19
20 ##############################################
21
22 DOCUMENT();
23
24 loadMacros(
25 "PGstandard.pl",
26 "PGgraphmacros.pl",
27 "MathObjects.pl",
28 "PGML.pl",
29 "contextPercent.pl",
30 "parserPopUp.pl",
31 "PCCmacros.pl",
32 "PGcourse.pl"
33 );
34
35 ##############################################
36
37 sub drawSquare {
38 my ($x,$y,$color) = @_;
39 $xside = ($xmax-$xmin)/40;
40 $yside = ($ymax-$ymin)/40;
41 $picture->moveTo($x,$y);
42 $picture->lineTo($x, $y-$yside, $color, 1);
43 $picture->lineTo($x+$xside, $y-$yside, $color, 1);
44 $picture->lineTo($x+$xside, $y, $color, 1);
45 $picture->lineTo($x, $y, $color, 1);
46 $picture->fillRegion([ $x+$xside/2, $y-$yside/2, $color ]);
47 }
48
49 sub sortSB {
50 my $ref_array = shift;
51 my $num = @$ref_array;
52 for my $i (0..$num-2) {
53 for my $j ($i+1..$num-1) {
54 if (${$ref_array}[$i]>${$ref_array}[$j]) {
55 (${$ref_array}[$i],${$ref_array}[$j]) = (${$ref_array}[$j],${$ref_array}[$i]);
56 }
57 }
58 }
59 }
60
61 ##############################################
62
63 Context("LimitedNumeric");
64
65 $numBars = 4;
66 $maxLimit = 30;
67
68 @terms = ("Fall","Winter","Spring","Summer");
69 @numMale = ();
70 @numFemale = ();
71
72 do {
73
74 $totalMale = 0;
75 $totalFemale = 0;
76
77 for my $i (0..$numBars-1) {
78 $numMale[$i] = int($maxLimit/2)+random(-1,1,2)*random(1,int($maxLimit/3),1);
79 $numFemale[$i] = $maxLimit - $numMale[$i];
80
81 $totalMale = $totalMale+$numMale[$i];
82 $totalFemale = $totalFemale+$numFemale[$i];
83 }
84
85 $meanMale = $totalMale/$numBars;
86 $meanFemale = $totalFemale/$numBars;
87
88 @numMaleSorted = @numMale;
89 sortSB(~~@numMaleSorted);
90 @numFemaleSorted = @numFemale;
91 sortSB(~~@numFemaleSorted);
92
93 $orderedMale = "";
94 $orderedFemale = "";
95 for my $i (0..$numBars-1) {
96 $orderedMale = $orderedMale."`$numMaleSorted[$i]`, ";
97 $orderedFemale = $orderedFemale."`$numFemaleSorted[$i]`, ";
98 }
99 chop($orderedMale);chop($orderedMale);
100 chop($orderedFemale);chop($orderedFemale);
101
102 $medianMale =
103 ($numMaleSorted[int($numBars/2)-1]+$numMaleSorted[int($numBars/2)])/2;
104 $medianFemale =
105 ($numFemaleSorted[int($numBars/2)-1]+$numFemaleSorted[int($numBars/2)])/2;
106
107 } until ( (($meanMale>$meanFemale) && ($medianMale<$medianFemale)) || (($meanMale<$meanFemale) && ($medianMale>$medianFemale)) );
108
109 $popup = PopUp(["?", "mean", "median"], "mean");
110
111 $yCover = $maxLimit;
112 $ystep = $yCover/6;
113 $xstep = 1;
114
115 $xmin = -$xstep; #The viewing window
116 $xmax = $numBars+2*$xstep;
117 $ymin = -$ystep;
118 $ymax = $yCover+$ystep;
119
120 $picture = init_graph($xmin,$ymin,$xmax,$ymax,
121 pixels=>[400,400]);
122 $picture->lb('reset');
123
124 $picture->moveTo(0,0);
125 $picture->lineTo($xmax-$xstep/2, 0, 'black',3);
126 $picture->moveTo(0,0);
127 $picture->arrowTo(0, $ymax-$ystep/2, 'black',3);
128
129 for my $i (0..$yCover/$ystep) {
130 $picture->stamps( closed_circle(0,$i*$ystep,'blue') );
131 $mark = $i*$ystep;
132 $picture->lb( new Label(-$xstep/2,$i*$ystep,"$mark",'black','center','middle'));
133 }
134
135 $picture->lb( new Label($xmax-$xstep/3,-$ystep/4,"terms",'black','right','middle'));
136 $picture->lb( new Label($xstep/4,$ymax-$ystep/3,"number of students",'black','left','middle'));
137
138 drawSquare($numBars-1,$ymax-$ystep/3,'red');
139 $picture->lb( new Label($numBars-1+$xstep/3,$ymax-$ystep/3,"male students",'red','left','top'));
140 drawSquare($numBars-1,$ymax-$ystep*2/3,'green');
141 $picture->lb( new Label($numBars-1+$xstep/3,$ymax-$ystep*2/3,"female students",'green','left','top'));
142
143 $alt = "This graph has two sets of bar graphs comparing male and female students in a certain class. ";
144 for my $i (0..$numBars-1) {
145 $picture->lb( new Label(($i+1)*$xstep,-$ystep/4,
146 $terms[$i],'black','center','middle'));
147
148 $picture->moveTo(($i+1-0.4)*$xstep,0);
149 $picture->lineTo(($i+1-0.4)*$xstep,$numMale[$i],'red',1);
150 $picture->lineTo(($i+1)*$xstep,$numMale[$i],'red',1);
151 $picture->lineTo(($i+1)*$xstep,0,'red',1);
152 $picture->fillRegion([ ($i+1-0.2)*$xstep,$numMale[$i]/2,'red' ]);
153 $picture->lb( new Label(($i+1-0.2)*$xstep,$numMale[$i]+$ystep/4,
154 "$numMale[$i]",'red','center','middle'));
155
156 $picture->moveTo(($i+1+0.4)*$xstep,0);
157 $picture->lineTo(($i+1+0.4)*$xstep,$numFemale[$i],'green',1);
158 $picture->lineTo(($i+1)*$xstep,$numFemale[$i],'green',1);
159 $picture->lineTo(($i+1)*$xstep,0,'green',1);
160 $picture->fillRegion([ ($i+1+0.2)*$xstep,$numFemale[$i]/2,'green' ]);
161 $picture->lb( new Label(($i+1+0.2)*$xstep,$numFemale[$i]+$ystep/4,
162 "$numFemale[$i]",'green','center','middle'));
163
164 $alt = $alt."In $terms[$i] Term, this class had $numMale[$i] male students and $numFemale[$i] female students. ";
165 }
166 chop($alt);
167
168 ##############################################
169
170 TEXT(beginproblem());
171 $refreshCachedImages = 1;
172
173 BEGIN_TEXT
174
175 This bar graph compares male and female student enrollment in a certain class at a community college in a certain school year. $PAR
176
177 $BCENTER
178 \{ image(insertGraph( $picture ), tex_size=>400, height=>400, width=>400, extra_html_tags => 'alt = "$alt" title = "$alt"') \}
179 $ECENTER
180 $PAR
181
182 END_TEXT
183 BEGIN_PGML
184
185 Answer the following questions.
186
187 *Question 1:* In these [`4`] terms, the mean number of male students in this class was [__________]{$meanMale}.
188
189 *Question 2:* In these [`4`] terms, the mean number of female students in this class was [__________]{$meanFemale}.
190
191 *Question 3:* In these [`4`] terms, the median of male students in this class was [__________]{$medianMale}.
192
193 *Question 4:* In these [`4`] terms, the median of female students in this class was [__________]{$medianFemale}.
194
195 *Question 5:* If you want to know, in all [`4`] terms, there are more male or female students, should you compare the mean or median?
196
197 [@$popup->menu()@]*
198
199 END_PGML
200
201 ##############################################
202
203 ANS( $popup->cmp() );
204
205 $midM1 = $numMaleSorted[$numBars/2-1];
206 $midM2 = $numMaleSorted[$numBars/2];
207 $outputM = "There are two numbers in the middle: `$midM1` and `$midM2`. The median is the mean of these two numbers: `\frac{$midM1+$midM2}{2}=$medianMale`.";
208
209 $midF1 = $numFemaleSorted[$numBars/2-1];
210 $midF2 = $numFemaleSorted[$numBars/2];
211 $outputF = "There are two numbers in the middle: `$midF1` and `$midF2`. The median is the mean of these two numbers: `\frac{$midF1+$midF2}{2}=$medianFemale`.";
212
213 if ($meanMale>$meanFemale) {
214 $output1 = "The mean of male students is bigger than that of female students, so more male students attended this class in all four terms. Notice that the median of female students is actually bigger than that of male students.";
215 } else {
216 $output1 = "The mean of female students is bigger than that of male students, so more female students attended this class in all four terms. Notice that the median of male students is actually bigger than that of female students.";
217 }
218
219 ##############################################
220
221 BEGIN_PGML_SOLUTION
222
223 ####Question 1
224
225 To find the mean number of male students in this class, we first add up the number of male students in all [`4`] terms:
226
227 [`` [@$numMale[0]@] + [@$numMale[1]@] + [@$numMale[2]@] + [@$numMale[3]@] = [$totalMale] ``]
228
229 Now we can find the mean by dividing the sum by the number of terms ([`4`]):
230
231 [`` \text{mean} = \frac{[$totalMale]}{4} = [$meanMale] ``]
232
233 *Solution:* In these [`4`] terms, the mean number of male students in this class was [`[$meanMale]`].
234
235 ----
236
237 ####Question 2
238
239 To find the mean number of female students in this class, we first add up the number of female students in all [`4`] terms:
240
241 [`` [@$numFemale[0]@] + [@$numFemale[1]@] + [@$numFemale[2]@] + [@$numFemale[3]@] = [$totalFemale] ``]
242
243 Now we can find the mean by dividing the sum by the number of terms ([`4`]):
244
245 [`` \text{mean} = \frac{[$totalFemale]}{4} = [$meanFemale] ``]
246
247 *Solution:* In these [`4`] terms, the mean number of female students in this class was [`[$meanFemale]`].
248
249 ----
250
251 ####Question 3
252
253 To find the median number of male students, we first need to order the number of male students in all [`4`] terms:
254
255 [$orderedMale]
256
257 [$outputM]
258
259 *Solution:* In these [`4`] terms, the median of male students in this class was [`[$medianMale]`].
260
261 ----
262
263 ####Question 4
264
265 To find the median number of female students, we first need to order the number of female students in all [`4`] terms:
266
267 [$orderedFemale]
268
269 [$outputF]
270
271 *Solution:* In these [`4`] terms, the median of female students in this class was [`[$medianFemale]`].
272
273 ----
274
275 ####Question 5
276
277 To compare the total number of male and female students in all [`4`] terms, we should compare the mean. The median is not accurate because some numbers were not considered; as a comparison, each number is used when the mean is calculated.
278
279 [$output1]
280
281 Don't think that the median is not useful. When there are outliers (very big or small numbers compared to most numbers in the group), the median is better than mean. That's why in newspapers, you will more than likely see "the median house price" than "the mean house price," etc.
282
283 END_PGML_SOLUTION
284
285 ENDDOCUMENT();</a></code></pre><code></code><br /></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4827&parent=14411Re: Combining Functions
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14410
Wed, 08 Jul 2020 16:13:37 GMTby Gregory Varner. <p><p>No worries. The ability to let them know that their answer is equivalent but not in the expected form could be very useful. So thank you for letting me know about that option.</p><p>Since it serves my purposes currently (and is fairly easy to randomize later if I want), I am going the route of defining the answer the way I expect it to be.</p><p>I will certainly have to look into the Sage tie in though as that could be useful!</p></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14410Re: Combining Functions
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14409
Wed, 08 Jul 2020 14:44:39 GMTby Alex Jordan. <p><div class="text_to_html">Oh, sorry. You clearly said "I currently am not as concerned about students simplifying" but my eyes read that to be the opposite. So you don't need contextForm.pl. You just need to construct the answer the way you want it to look and define it that way. <br /><br />
I said WW is not a CAS. That's true, but there is a way to get WW to use Sage, and maybe it can do this sort of thing automatically. You have to have a Sage cell running somewhere and get WW and Sage to communicate with each other. It's been a while since I tried to use this. But for completeness, take a look at: https://webwork.maa.org/wiki/AskSage.</div></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14409Re: Combining Functions
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14408
Wed, 08 Jul 2020 12:42:07 GMTby Gregory Varner. <p><p>Thank you for the reply. You are correct that the reduce commands were not doing much (and nothing in most instances). I left them there in case I needed to go back and do it the long way.</p><p>It seems like the contextForm.pl messes with my display of negative numbers (puts parenthesis around them...), but otherwise could work.</p><p>I will have to look into it more, though my other options is to write the answer as I expect them to display it and be okay with any form (which works for what I am currently testing).</p></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14408Re: Combining Functions
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14407
Wed, 08 Jul 2020 04:19:19 GMTby Alex Jordan. <p><p>You can use contextForm.pl: https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/macros/PCC/contextForm.pl</p><p>WeBWorK is not a Computer Algebra System, so it can't honestly do what you would like it to do for this. But contextForm.pl is one way that can sufficiently "fake it".</p><p>In your example:<br /><span>$f = Formula("3/(x^2 -x -2)")->reduce;</span><br />the "reduce" does nothing, since this fixed Formula has no applicable reductions from the reduction set. The same happens with:<span></span><span><br />Formula("-5/(x^2 -4)")->reduce;</span></p><p><span>Then:<br /><span>Formula("$f+$g")->reduce;</span></span><br />is the same as:<br /><span>Formula("<span>3/(x^2-x-2)</span>+<span>-5/(x^2-4)</span>")->reduce;<br />and the "reduce" might be what turns the "+-" into just a "-". But I am guessing you would like the answer to be<br />Formula("(-2x+1) / ((x-2)(x+1)(x+2))</span>")</p><p>To do that and use contextForm.pl, you as the problem coder have to come up with that simplified expression. And then if a student answers with <span>"<span>3/(x^2-x-2)</span><span>-5/(x^2 -4)</span>"</span>, they will be told that they have an answer that is equivalent to the right answer, but not in the expected form. There is a suggestion to simplify, factor, etc.</p><p>It is flexible enough to accept:<br /><span>(2x-1) / ((2-x)(x+2)(x+1))<br />etc.<br /></span></p><p>However it will count the following as something different:<br /><span>(-2x+1) / (x^3+x^2-4x-4)</span></p><p><span>Your options are either to give specific instructions to the student, account for multiple answers using OneOf, or adjust the bizarro arithmetic settings that you can see described in contextForm.pl's commentary.</span><br /></p></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14407Combining Functions
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14406
Wed, 08 Jul 2020 01:58:13 GMTby Gregory Varner. <p><p>I have run into an issue. I am working on authoring questions that use the algebra of functions (and later composition of functions). I currently am not as concerned about students simplifying (though I may change on that), but I want the answers that they see to be the simplified version.</p><p>For instance, perhaps I am adding/subtracting/dividing/multiplying rational functions. Is there a way to define the functions (I am currently using formula), say as f and g, and then do f+g simplified. </p><p>Ideally this would also work for cases where there is no reasonable simplification as well like adding a polynomial and radical expression together.</p><p>What I have is included below. It accepts the simplified and unsimplified version (as they are equivalent formulas). </p><p>Thank you!</p><p><br /></p><p>DOCUMENT(); </p><p><br /></p><p>loadMacros(</p><p> "PGstandard.pl", # Standard macros for PG language</p><p> "MathObjects.pl",</p><p> "PGML.pl",</p><p> "contextLimitedPolynomial.pl",</p><p>);</p><p><br /></p><p># Print problem number and point value (weight) for the problem</p><p>TEXT(beginproblem());</p><p><br /></p><p># Show which answers are correct and which ones are incorrect</p><p>$showPartialCorrectAnswers = 1;</p><p>######</p><p>Context("Numeric");</p><p>Context()->noreduce('(-x)-y','(-x)+y');</p><p><span style="font-size:.9375rem;"><br /></span></p><p><span style="font-size:.9375rem;">$f = Formula("3/(x^2 -x -2)")->reduce;</span><br /></p><p><span style="font-size:.9375rem;">$g = Formula("-5/(x^2 -4)")->reduce;</span><br /></p><p><span style="font-size:.9375rem;">$fPlusg = Formula("$f+$g")->reduce;</span><br /></p><p>$gMinusf = Formula("$g-$f")->reduce;</p><p>$fTimesg = Formula("$f*$g")->reduce;</p><p>$fByg = Formula("$f/$g")->reduce;</p><p><br /></p><p>##############################################################</p><p><span style="font-size:.9375rem;">BEGIN_PGML</span><br /></p><p><span style="font-size:.9375rem;">Consider [` f(x) = [$f] `] and [` g(x) = [$g] `].</span><br /></p><p><span style="font-size:.9375rem;">a. What is the sum of [`f(x)`] and [`g(x)`]? </span><br /></p><p>[`(f+g)(x) = `][_____________________________]{$fPlusg}</p><p><span style="font-size:.9375rem;"><br /></span></p><p><span style="font-size:.9375rem;">b. What is the difference of [`f(x)`] from [`g(x)`]? </span><br /></p><p>[`(g-f)(x) = `][_____________________________]{$gMinusf}</p><p><br /></p><p>c. What is the product of [`f(x)`] and [`g(x)`]? </p><p>[`(fg)(x) = `][_____________________________]{$fTimesg}</p><p><br /></p><p>d. What is the quotient of [`f(x)`] by [`g(x)`]? </p><p>[`\left(\dfrac{f}{g}\right)(x) = `][_____________________________]{$fByg}</p><p>END_PGML</p><p><span style="font-size:.9375rem;">ENDDOCUMENT(); </span><br /></p></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4826&parent=14406Re: Upload your solution
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14403
Mon, 06 Jul 2020 06:31:39 GMTby Eugene Belchev. <p><div class="text_to_html">Our LMS is BrightSpace (D2L) which has this functionality if one uses an assignment submission folder. Unfortunately, this does not work well for a longer comprehensive exam, such as a final or even a midterm as it assumes that the whole exam is made available to students at the same time and opens the exam wide open to contract cheating or unauthorized group work. It is much better to implement such an exam as a quiz where questions are randomized and students are allowed to move from one question to the next one but not back. Thus a student will read a question and if it requires written solution, it is easy and natural to solve it on paper, scan and upload, then move to the next one. Ideally, it should be possible to annotate the uploaded solution in place, then using a tablet and a pen will make marking and providing feedback very easy (this is a functionality that Crowdmark has).</div></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14403Re: Upload your solution
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14402
Mon, 06 Jul 2020 03:52:01 GMTby Sean Fitzpatrick. <p><div class="text_to_html">I'm somewhat curious as to the scenarios that are leading people to wish to do this through WeBWorK. I get the desire to minimize the number of platforms we expose students to.<br /><br />
But WeBWorK is not really meant to be an LMS. And every LMS I've used has a nice assignment function that lets you do this. (Maybe some places still do not use an LMS?) Usually you can even generate many versions of a question, upload them, and have the LMS choose one at random for each student.<br /><br />
The only downside is that the grading workflow is often tedious, which is why people are willing to give money to companies like Crowdmark.<br />
But I can't imagine WeBWorK including a streamlined grading workflow for scanned work without a massive amount of development work. (This really amounts to building a brand new product and then grafting it onto WeBWorK, no?)</div></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14402Re: Upload your solution
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14401
Sun, 05 Jul 2020 11:29:43 GMTby Glenn Rice. <p><p>The reason it does not is that it is not implemented. There is some recent work toward this end. There is a discussion in these forums about this, but I can't find it right now.</p></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14401Upload your solution
https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14400
Sun, 05 Jul 2020 06:58:54 GMTby Eugene Belchev. <p><p>Hello, I was wondering why an open-end essay type of math question would not have the option of a student uploading his/her scanned handwritten solution.</p></p>https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4824&parent=14400