Annotation of doc/homework/homework5.html, revision 1.2
1.1 albertel 1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2: <html>
3: <head>
4: <title>LON-CAPA Homework System</title>
5: </head>
6:
7: <body>
8: <h1>LON-CAPA Homework System</h1>
9:
10: <h2>Tags</h2>
11: <ul>
12: <li>
13: Response tags
14: <p>
15: Arguments for all response tags
16: </p>
17: <ul>
18: <li>
19: <i>ID</i>, if this isn't set it will be set during
20: the publication step. It is used to assign parameters names
21: in a way that can be tracked if an instructor modifies
22: things by hand.
23: </li>
24: <li>
25: <i>name</i> optional, if set, it will be used by the
26: resource assembly tool when one is modifying parameters.
27: </li>
28: </ul>
29: <p>
30: Implemented response tags
31: </p>
32: <ul>
33: <li>
1.2 ! albertel 34: <b><responseparam></b> if it appears it should be
! 35: inside of a <*response> tag, defines an externally
! 36: adjustable parameter for this question. Arguments:
! 37: <ul>
! 38: <li>
! 39: <i>default</i> required, specifies a default value for
! 40: the parameter
! 41: </li>
! 42: <li>
! 43: <i>name</i> required, specifies an internal name for
! 44: the parameter
! 45: </li>
! 46: <li>
! 47: <i>type</i> required specifies the type of parameter,
! 48: one of "tolerance", "int", "float", "string", "date"
! 49: (configuration of paramters is handled by
! 50: lonparmset.pm and parameter.html)
! 51: </li>
! 52: <li>
! 53: <i>description</i> a string describing the parameter,
! 54: this is what is used to talk about a parameter outside
! 55: of a problem
! 56: </li>
! 57: </ul>
! 58: </li>
! 59: <li>
1.1 albertel 60: <b><numericalresponse></b> implements a numerical
61: answer, it needs an internal <b><textline></b> for
62: the response to go in. It checks all styles of numerical
63: supported in CAPA. Possible args are:
64: <ul>
65: <li><i>answer</i> required, specifies the correct answer, must be a perl list</li>
66: <li><i>type</i> optional, CAPA style str args, cs/ci/mc</li>
67: <li><i>units</i> optional, specifies unit of correct answer, CAPA style</li>
68: </ul>
69: </li>
70: <li>
71: <b><essayresponse></b> implements a ungraded large
72: text response, it need an internal <b><textarea></b>
73: for the response to go in.
74: </li>
75: <li>
76: <b><imageresponse></b> implements a image click
77: style image submission, uses the foil structure tags <a
78: href="#foil">below</a>. Additional tags that should appear
79: in a <foil> are:
80: <ul>
81: <li><b><image></b> required, the contained text
82: specifies a published graphical resource that is the
83: image used, should only appear once per foil</li>
84: <li><b><rectangle></b> required, the contained text
85: specifies a rectangular area that is correct, should
86: look like (1,2)-(3,4), at least 1 required</li>
87: <li><b><text></b> required, the contained text is
88: printed on top of the image.</li>
89: </ul>
90: </li>
91: <li>
92: <b><optionresponse></b> implements a "select from
93: these choices" style question, the choices are specified
94: by the instructor, it uses the foil structure tags <a
95: href="#foil">below</a> with this additional args:
96: <ul>
97: <li>
98: <b><foilgroup></b> is required to have
99: <i>options</i> which should be a perl list of possible
100: options for the student.
101: </li>
102: </ul>
103: </li>
104: <li>
105: <b><radiobuttonresponse></b> implements a true / false
106: style question with 1 correct answer.it uses the foil
107: structure tags <a href="#foil">below</a> but the
108: <i>value</i> of a <foil>can only be "true" or
109: "false" or "unused"
110: </li>
111: </ul>
112: <li>
113: <a name="foil">Foil Structure Tags</a>
114: <p>
115: All tags that implement a foil structure have an optional
116: arg of <i>max</i> that controls the maximum number of total
117: foils to show.
118: </p>
119: <ul>
120: <li>
121: <b><foilgroup></b> required, must be the tag that
122: surrounds all foil definitions
123: </li>
124: <li>
125: <b><foil></b> required, all data inside is a possible foil
126: </li>
127: <li>
128: <b><conceptgroup></b> optional, surrounds a
129: collection of <foil>, when a problem is displayed
130: only one of the contained <foil>is selected for
131: display. It receives one required argument
132: <i>concept</i>.
133: </li>
134: </ul>
135: </li>
136: <li>
137: Hint structure
138: <p>
139: All of these tags must appear inside a <b><*response></b> tag.
140: </p>
141: <ul>
142: <li>
143: <b><hintgroup></b> Tag that surrounds all of a hint.
144: </li>
145: <li>
146: <b><hintpart></b> required, Tag to implement
147: conditional hints. It has a required argument
148: <i>on</i>. When a <*hint> tag named the same as the
149: value the </i>on</i> attribute evaluates to be correct the
150: <hintpart> will show. If no other <hintpart>
151: are to show then all hintparts with a <i>on</i> of
152: "default" will show
153: </li>
154: <li>
155: <b><numericalhint></b> has all the arguments that
156: <numericalresponse>, does and the required attribute
157: <i>name</i> which should be set to the value of which
158: <hintpart> will be shown.
159: </li>
160: </ul>
161: </li>
162: <li>
163: Input Tags
164: <p>
165: This group of tags implement a mechanism for getting data
166: for students, they will usually be used by a
167: <*response>.
168: </p>
169: <ul>
170: <li>
171: <b><textarea></b> creates a Large text input box, If
172: data appears between the start and end tags, the data will
173: appear i the textarea if the student has not yet made a
174: submission. Additionally it takes two arguments <i>rows</i>
175: and <i>cols</i> which control the height and width of the
176: area respectively. It defaults to 10 and 80.
177: </li>
178: <li>
179: <b><textline></b> creates a single line of input
180: element, it accepts 1 argument <i>size</i> which controls
181: the width on the textline, it defaults to 20.
182: </li>
183: </ul>
184: </li>
185: <li>
186: Output Tags
187: <p>
188: This group of tags generate useful pieces of output.
189: </p>
190: <ul>
191: <li>
192: <b><displayduedate></b> this will insert the current
193: duedate if one is set into the document. It is generated
194: to be inside a table of 1x1 elements
195: </li>
196: <li>
197: <b><displaytitle></b> this will insert the title of
198: the problem from the metadata of the problem
199: </li>
200: <li>
201: <b><window></b> the text in between is put in a
202: popup javascript window
203: </li>
204: </ul>
205: </li>
206: <li>
207: Scripting
208: <p>
209: These tags allow the document to behave programatically
210: </p>
211: <ul>
212: <li>
213: <b><display></b> the intervening perl script is
214: evaluated in the safe space and the return value of the
215: script replaces the entire tag
216: </li>
217: <li>
218: <b><import></b> causes the parse to read in the file
219: named in the body of the tag and parse it as if the entire
220: text of the file had existed at location of the tag
221: </li>
222: <li>
223: <b><parserlib></b> the enclosed filename contains
224: definitions for new tags
225: </li>
226: <li>
227: <b><script></b> if the argument <i>type</i> is set
228: to "loncapa/perl" the enclosed data is a perl script which
229: is evaluated inside the perl Safe space. The return value
230: of the script is ignored.
231: </li>
232: <li>
233: <b><scriptlib></b> the enclosed filename contains
234: perl code to run in the safe space
235: </li>
236: <li>
237: <b><block></b> has a required argument
238: <i>condition</i> that is evaluated, it the condition is
239: true everything inside the tag is evaluated, if it is false
240: everything inside the block tag is skipped
241: </li>
242: <li>
243: <b><notsolved></b> everything inside the tag is
244: skipped if the problem is "solved"
245: </li>
246: <li>
247: <b><postanswerdate></b> everything inside the tag is
248: skipped if the problem is before the answer date
249: </li>
250: <li>
251: <b><preduedate></b> everything inside the tag is
252: skipped if the problem is after the due date
253: </li>
254: <li>
255: <b><randomlist></b> the enclosed tags are parsed in
256: a stable random order
257: </li>
258: <li>
259: <b><solved></b> everything inside the tag is
260: skipped if the problem is "not solved"
261: </li>
262: <li>
263: <b><while></b> implements a while loop, required
264: argument <i>condition</i> is a perl scriptlet that when
265: evaluated results in a true or false value, on true the
266: entirety of the text between the whiles is parsed. The
267: condition is tested again, etc. If false it goes to the
268: next node in the parse.
269: </li>
270: </ul>
271: </li>
272: <li>
273: Structure Tags
274: <p>
275: These tags give the problem a structure and take care of the
276: recording of data and giving the student messages.
277: </p>
278: <ul>
279: <li>
280: <b><problem></b> must be the first tag in the file,
281: this tag sets up the header of the webpage and generates
282: the submit buttons, it also handles due dates properly
283: </li>
284: <li>
285: <b><part></b> must be below <problem> if it is
286: going to be used. It does many of the same tasks as
287: <problem> but allows multiple separate problems to
288: exist in a single file.
289: </li>
290: <li>
291: <b><startouttext></b><b><endouttext></b> these
292: tags are somewhat special, they must have no internal text
293: and occur in pairs. Their use is to mark up the problem so
294: the web editor knows what sections should be edited in a
295: plain text block on the web.
296: </li>
297: </ul>
298: </li>
299: </ul>
300: <h2><script> Functions</h2>
301: <p>
302: A list of functions that have been written that are available in
303: the Safe space scripting environment inside a problem. The eventual
304: goal is to provide all of the functions available in CAPA
305: </p>
306: <ul>
307: <li>random</li>
308: <li>tan</li>
309: <li>atan</li>
310: <li>acos</li>
311: <li>asin</li>
312: <li>log10</li>
313: <li>pow</li>
314: <li>ceil</li>
315: <li>floor</li>
316: <li>format</li>
317: <li>map</li>
318: <li>choose</li>
319: <li>caparesponse_check</li>
320: <li>caparesponse_check_list</li>
321: </ul>
322: <h2><script> Variables</h2>
323: <ul>
324: <li>
325: $external::target - set to the current target the xml parser
326: is parsing for
327: </li>
328: <li>
329: $external::part - set to the <i>id</i> of the current problem
330: <part>; zero if there are now <part>
331: </li>
332: <li>
333: $external::gradestatus - set to the value of the current
334: resource.partid.solved value
335: </li>
336: <li>
337: $external::datestatus - set to the current status of the clock
338: either CLOSED, CAN_ANSWER, CANNOT_ANSWER, or SHOW_ANSWER
339: </li>
340: <li>
341: $external::randomseed - set to the number that was used to
342: seed the random number generator
343: </li>
344: <li>$pi - set to PI </li>
345: </ul>
346:
347: <hr>
348: <address><a href="mailto:albertel@marvin.lite.msu.edu">Guy Albertelli</a></address>
349: <!-- Created: Thu May 17 15:05:35 EDT 2001 -->
350: <!-- hhmts start -->
1.2 ! albertel 351: Last modified: Fri May 18 21:29:39 EDT 2001
1.1 albertel 352: <!-- hhmts end -->
353: </body>
354: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>