33
33
<tbody>
34
34
% if ($pos->{PGML}) {
35
35
<tr><th>PGML</th><td>This problem uses PGML, the current preferred way to write problem (text), solution and hint
36
- blocks.</td></tr>
36
+ blocks.</td></tr>
37
37
% }
38
38
% if ($pos->{solution}) {
39
39
<tr><th>Solutions</th><td>This problem has a solution block. Every problem should have solutions that the
40
- student can view after the answer data. </td></tr>
40
+ student can view after the answer data. </td></tr>
41
41
% }
42
42
% if ($pos->{hint}) {
43
43
<tr><th>Hints</th><td>This problem has a hint. This can be helpful for students after attempting the problem
44
- a few times (this can be set by the instructor).
44
+ a few times (this can be set by the instructor).
45
+ % }
46
+ % if ($pos->{randomness}) {
47
+ <tr><th>Randomness</th><td>This problem uses randomness. This is desired to give to a class of students, each
48
+ of whom may have a different problem. </td>
45
49
% }
46
50
% # list of the positive contexts:
47
51
% my @good_contexts = grep { $pos->{contexts}{$_} } keys %{$pos->{parsers}};
48
52
% if (@good_contexts) {
49
53
<tr><th>Modern Contexts</th><td>This problem uses the following modern contexts:
50
- <%= join(', ', @good_contexts) %> </td>
54
+ <%= join(', ', @good_contexts) %> </td>
51
55
% }
52
56
% my @good_parsers = grep { $pos->{parsers}->{$_} } keys %{$pos->{parsers}};
53
57
% if (@good_parsers) {
54
58
<tr><th>Modern Parsers</th><td>This problem uses features of the following modern parsers:
55
- <%= join(', ', @good_parsers) %> </td>
59
+ <%= join(', ', @good_parsers) %> </td>
56
60
% }
57
61
% my @good_macros = grep { $pos->{macros}->{$_} } keys %{$pos->{macros}};
58
62
% if (@good_macros) {
59
63
<tr><th>Modern Macros</th><td>This problem uses functionality from the following modern macros:
60
- <%= join(', ', @good_macros) %> </td>
64
+ <%= join(', ', @good_macros) %> </td>
61
65
% }
62
66
</tbody>
63
67
</table>
68
72
<p>This problem has the following deprecated macros: <%= join(', ',@{$results->{deprecated_macros}} ) %> </p>
69
73
70
74
<p>These should be removed from the problem in that these macros will be deleted from PG in a future
71
- version. The functions from these macros may be listed below to help aid in transitioning away from
72
- these macros. </p>
75
+ version. The functions from these macros may be listed below to help aid in transitioning away from
76
+ these macros. </p>
73
77
% }
74
78
75
79
% my $has_bad_features = 0;
76
80
% $has_bad_features += $results->{negative}{$_} for (keys %{$results->{negative}});
77
81
78
82
% if ($has_bad_features || !$pos->{solution}) {
79
- <h3>You can improve on the following:</h3>
80
- <p> There are features in this problem that contain old or deprecated features. The following
81
- list gives feedback of how the problem can be improved. </p>
83
+ <h3>You can improve on the following:</h3>
84
+ <p> There are features in this problem that contain old or deprecated features. The following
85
+ list gives feedback of how the problem can be improved. </p>
82
86
%}
83
87
84
88
<ul>
85
89
% if ($results->{negative}{BEGIN_TEXT}) {
86
90
<li>This problem contains older formatting blocks like BEGIN_TEXT. Consider use PGML.
87
- In the <em>Format Code</em> section of the PG Editor, the "Convert to PGML" should be used
88
- as a start to get the problem switched.
89
- </li>
91
+ In the <em>Format Code</em> section of the PG Editor, the "Convert to PGML" should be used
92
+ as a start to get the problem switched.</li>
90
93
%}
91
94
% if ($results->{negative}{beginproblem}) {
92
95
<li>This problem contains the line <tt>TEXT(beginproblem())</tt>. This is no longer necessary and should be removed. </li>
@@ -96,43 +99,46 @@ list gives feedback of how the problem can be improved. </p>
96
99
%}
97
100
% if ($results->{negative}{oldtable}) {
98
101
<li>This problem contains the deprecated <tt>begintable</tt> command. This is not assessible and often cannot be
99
- converted to hardcopy. This table should be written using <tt>nicetables</tt> or a PGML table. </li>
102
+ converted to hardcopy. This table should be written using <tt>nicetables</tt> or a PGML table. </li>
100
103
%}
101
104
% if ($results->{negative}{showPartialCorrect}) {
102
105
<li>This problem contains the line <tt>$showPartialCorrectAnswers = 1</tt>. This is enabled by default and needed only
103
- if set to 0.</li>
106
+ if set to 0.</li>
104
107
% }
105
108
% if (!$pos->{solution}) {
106
109
<li>This problem does not have a solution. Consider adding one.</li>
107
110
% }
111
+ % if (!$pos->{randomness}) {
112
+ <li>This problem does not have randomness. Consider adding variables that take on random values.</li>
113
+ % }
108
114
% if ($results->{negative}{fun_cmp} || $results->{negative}{str_cmp} || $results->{negative}{num_cmp}) {
109
115
<li>This problem contains the functioins <tt>num_cmp</tt>, <tt>str_cmp</tt> or <tt>fun_cmp</tt>.
110
- These are old ways of checking answers. These should be converted to MathObjects.
116
+ These are old ways of checking answers. These should be converted to MathObjects.
111
117
% }
112
118
% if ($results->{negative}{multiple_loadmacros}) {
113
119
<li>This problem contains two <tt>loadMacros</tt> function call. Combine the function
114
- calls and make sure that all macros are needed for your problem. </li>
120
+ calls and make sure that all macros are needed for your problem. </li>
115
121
% }
116
122
% if ($results->{negative}{macros}{PGchoicemacros}) {
117
123
<li>This problem contains old versions of multiple choice. The sample problems
118
- <a target="_blank" href="https://openwebwork.github.io/pg-docs/sample-problems/Misc/MultipleChoiceCheckbox.html">
119
- Multiple Choice with Checkbox</a>, <a target="_blank" href="https://openwebwork.github.io/pg-docs/sample-problems/Misc/MultipleChoicePopup.html">
120
- Multiple Choice with Popup</a> and <a target="_blank" href="https://openwebwork.github.io/pg-docs/sample-problems/Misc/MultipleChoiceRadio.html">
121
- Multiple Choice with Radio Buttons</a> should be examined as well the macros:
122
- <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/parsers/parserPopUp.html">parserPopUp.pl</a>,
123
- <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/parsers/parserCheckboxList.html">parserCheckboxList.pl</a> and
124
- <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/parsers/parserRadioButtons.html">parserRadioButtons.pl</a>.
124
+ <a target="_blank" href="https://openwebwork.github.io/pg-docs/sample-problems/Misc/MultipleChoiceCheckbox.html">
125
+ Multiple Choice with Checkbox</a>, <a target="_blank" href="https://openwebwork.github.io/pg-docs/sample-problems/Misc/MultipleChoicePopup.html">
126
+ Multiple Choice with Popup</a> and <a target="_blank" href="https://openwebwork.github.io/pg-docs/sample-problems/Misc/MultipleChoiceRadio.html">
127
+ Multiple Choice with Radio Buttons</a> should be examined as well the macros:
128
+ <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/parsers/parserPopUp.html">parserPopUp.pl</a>,
129
+ <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/parsers/parserCheckboxList.html">parserCheckboxList.pl</a> and
130
+ <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/parsers/parserRadioButtons.html">parserRadioButtons.pl</a>.
125
131
126
132
</li>
127
133
% }
128
134
% if ($results->{negative}{macros}{PGgraphmacros}) {
129
135
<li>This problem uses <tt>PGgraphmacros</tt> a old plotting library. Consider using
130
- <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/graph/plots.html"><tt>Plots.pl</tt></a>
131
- or <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/graph/PGtikz.html"><tt>PGtikz.pl</tt></a>
136
+ <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/graph/plots.html"><tt>Plots.pl</tt></a>
137
+ or <a target="_blank" href="https://openwebwork.github.io/pg-docs/pod/pg/macros/graph/PGtikz.html"><tt>PGtikz.pl</tt></a></li >
132
138
%}
133
139
% if ($results->{negative}{lines_below_enddocument}) {
134
140
<li>There is content (code or other text), below the <tt>ENDDOCUMENT()</tt> line. Although this
135
- is ignored, there shouldn't be content in this area.</li>
141
+ is ignored, there shouldn't be content in this area.</li>
136
142
% }
137
143
138
144
</ul>
0 commit comments