1: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//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: <b> Outtext is gone now</b>
13: <li>
14: Output Tags
15:
16: <p>
17: This set of tags control how and when data gets sent to the
18: student, it also provides hints to the data's markup and
19: when it should be autoconverted, and when it should be
20: ignored. All of these tags except <b><outtext></b> are
21: valid and parsed by &parsed() inside a <b><script></b>.
22: </p>
23: <p>
24: Additionaly any perl style variables are replaced with the
25: values of the variable in the problem namespace.
26: </p>
27: <ul>
28:
29: <li>
30: <b><outtext></b> all data inside is assumed to be valid
31: html, the handler will attempt to autoconvert to the
32: output type. The only thing tags allowed inside are the
33: ones listed below.
34: </li>
35: <li>
36: <b><target></b> This tag specifies data that is not in
37: HTMl format inside an <b><outtext></b>. Takes a required
38: argument <i>type</i> and an optional argument
39: <i>dest</i>. <i>type</i> specifies a known valid
40: output target which is the format of the
41: data. <i>dest</i> specifies a list of possible output
42: targets that the data should be autoconverted for. The
43: <i>type</i> of the data is assumed to be a
44: <i>dest</i>. If the current target is not a
45: <i>dest</i> then the data is ignored.
46: </li>
47:
48: <li>
49: <b><tex></b> shorthand for <target type=``tex''>
50: <i>dest</i> is a valid argument.
51: </li>
52:
53: <li>
54: <b><ascii></b> shorthand for <target type=``ascii''>
55: <i>dest</i> is a valid argument.
56: </li>
57:
58: <li>
59: <b><web></b> shorthand for <target type=``web''>
60: <i>dest</i> is a valid argument.
61: </li>
62:
63: <li>
64: <b><mathml></b> shorthand for <target
65: type=``mathml''> <i>dest</i> is a valid argument,
66: mathml may be passed along unconverted in a web output
67: target.
68: </li>
69:
70: </ul>
71: </li>
72: <br>
73: <li>
74: Form Elements:
75:
76: <p>
77: This set of tags soley generate a representation of the proper
78: form element on the output device. Need to look at what should
79: be provided when an exam is wanted.
80: </p>
81: <ul>
82: <li>
83: <b><radio></b>
84:
85: <p>
86: web - provides a single button to check on and off, when
87: checked on all other radio buttons in the current
88: <b><answergroup></b> level will be set to off.
89: </p>
90:
91: <p>
92: tex - generates a circle before the data inside
93: </p>
94: </li>
95: <li>
96: <b><list></b>
97: <p>
98: web - provides a drop down box of all the possible options
99: </p>
100: <p>
101: tex - the list is displayed an students can select the
102: correct option
103: </p>
104: </li>
105: <li>
106: <b><textline></b>
107: <p>
108: web - a single line of reponse is provided to type into.
109: </p>
110: <p>
111: tex - a line is provided.
112: </p>
113: </li>
114: <li>
115: <b><textarea></b>
116: <p>
117: web - a textarea form is provided allowing multiples
118: lines of response
119: </p>
120: <p>
121: tex - a configureable number of lines is provided,
122: configured through the argument numlines, defaults to 10
123: </p>
124: </li>
125: <li>
126: <b><check></b>
127: <p>
128: web - either a checkbutton, or two radio buttons are provided
129: </p>
130: <p>
131: tex - a small box that can be checked is provided.
132: </p>
133: </li>
134: <li>
135: <b><button></b> - Not sure this is useful
136: </li>
137: </ul>
138: </li>
139: <li>
140: Randomiztion
141: <ul>
142: <li>
143: <b><randomlist></b> this tag will cause the parser to
144: randomly select the order that it parses the next level of
145: tags, tags another leveldown will be done in order
146: though. Example:
147: <pre>
148: <b><randomlist></b>
149: <b><tag1></b>
150: <b><subtag1></b>
151: <b></subtag1></b>
152: <b><subtag2></b>
153: <b></subtag2></b>
154: <b></tag1></b>
155: <b><tag2></b>
156: <b><subtag1></b>
157: <b></subtag1></b>
158: <b><subtag2></b>
159: <b></subtag2></b>
160: <b></tag2></b>
161: <b></randomlist></b>
162: </pre>
163: In this example, <b><tag1></b> or <b><tag2></b> will be
164: done first, but <b><subtag1></b> will always happen before
165: <b><subtag2></b>.
166: </li>
167: <li>
168: <b><foil></b>, <b><showfoil/></b>,
169: <b><showrandomfoil/></b> These tags combine to allow the
170: user greater control over the exact placement of a
171: randomized problem text. a <b><foil></b> tag defines a
172: section of the problem that will appear in places a
173: <b><showfoil/></b> or <b><showrandomfoil/></b> mark.
174: Internally, the parser will make a pass over an entire
175: answer group and count the number of <b><foil></b>,
176: <b><showfoil/></b>, and <b><showrandomfoil/></b> tags
177: that are used it will then make another pass and parse all
178: of the <b><foil></b> storing the results of these parses,
179: while parsing for each <b><show*></b> tag it hits it will
180: send to the output device a foil, the <b><show*></b> it
181: hit was a <b><showfoil></b> and this was the nth
182: <b><show*></b> it hit, it will display the nth foil. For
183: each <b><showrandomfoil></b> it hits it will randomly pick
184: from the remaining foils a foil to send to the output. If
185: there are more <b><show*></b> tags than foils, the extra
186: <b><show*></b> will have nothing sent out. If there are
187: more <b><foil></b> tags, the extras won't appear. When
188: mixing <b><showfoil></b> and <b><showrandomfoil></b> the
189: result is undefined.
190: </li>
191: </ul>
192: </li>
193: <li>
194: Answer Section
195: <ul>
196: <li>
197: <b> answergroup has little in the way of purpose anymore, showrandomfoil is it</b>
198: <b><answergroup></b> this defines a grouping of
199: <b><*response></b> that when responded to must all be
200: right in order for any to be right, this also allows
201: subgroups to exist. For example 1 of N questions that have a
202: 1 of N hint question for a leaf in the orginal 1of N
203: question. The closing tag in this group uses the results
204: from the <b><*response></b>s to decide whether this
205: grouping was correct, and assigns a grade, and provides any
206: feedback.
207:
208: <br><i>ID</i>, if this isn't set it will be set during
209: the publication step. It is used to assign parameters names
210: in a way that can be tracked if an instructor modifies
211: things by hand.
212:
213: <br><i>name</i> optional, if set, it will be used by the
214: resource assembly tool when one is modfiying parameters.
215:
216: </li>
217: <li>
218: <b><*response></b> further documentation will be available
219: in the future. Roughly these will take a set of data from
220: the enclosed input structures, and one or more correct
221: answers and return a correct of incorrect result, it may
222: also suggest a consumption of a try, and may provide a
223: reason for the incorrectness.
224:
225: <br>Required possible arguments:
226:
227: <br><i>ID</i>, if this isn't set it will be set during
228: the publication step. It is used to assign parameters names
229: in a way that can be tracked if an instructor modifies
230: things by hand.
231:
232: <br><i>name</i> optional, if set, it will be used by the
233: resource assembly tool when one is modfiying parameters.
234: </li>
235: <li>
236: <b><responseparam></b> can appear inside a <b><*response></b>,
237: they provided config options for the <b><*response></b>
238:
239: <br><i>name</i> specifies the parameter name, what are
240: possible values depends on the <b><*response></b>
241:
242: <br><i>type</i> specifies the possible values for this
243: type, possible arguments are: "option1|option2|option3" or
244: "numerictype,lownum-highnum" numeric type can be either int
245: or float
246:
247: <br><i>default</i> specifies the default value for this
248: parameter if the instructor doesn't specifiy it
249:
250: <br><i>ID</i>, if this isn't set it will be set during
251: the publication step. It is used to assign parameters names
252: in a way that can be tracked if an instructor modifies
253: things by hand.
254: </li>
255: </ul>
256: </li>
257: <li>
258: Problem Contruction
259: <ul>
260: <li>
261: <b><problem></b> highest level tag, tells the parser that
262: this is a problem file
263:
264: <br><i>name</i> optional, if set, it will be used by the
265: resource assembly tool when one is modfiying parameters.
266: </li>
267: <li>
268: <b>part needs to get much of answergroups writeup</b>
269: <b><part></b> a problem can consist of multiple parts,
270: each of these parts can be included or not included through
271: the construction of a page using the RAT,
272:
273: <br><i>ID</i>, if this isn't set it will be set during
274: the publication step. It is used to assign parameters names
275: in a way that can be tracked if an instructor modifies
276: things by hand.
277:
278: <br><i>name</i> optional, if set, it will be used by the
279: resource assembly tool when one is modfiying parameters.
280: </li>
281: <li>
282: <b><block></b> are section of the problem that can be
283: conditional, and provide visual grouping clues. The optional
284: arg <i>condition</i> is set to a perl snippet that
285: controls whether the parser will evaluate the
286: <b><block></b> or not. Helper function will be created for
287: making hints and other study aids easy to contruct.
288: </li>
289: <li>
290: <b><import></b> causes the parse to read an additional
291: file in and parse it as if the entire text of file had
292: existed at the location of the <b><import></b>
293: </li>
294: <li>
295: <b><script></b> the enclosed body of text is parsed
296: directly in a safe Perl enviroment. Variables set here are
297: available throught the rest of the problem code, but all
298: actions taken persit only for the scope of the
299: <b><problem></b>. Except values which are expressly saved
300: and restored
301: </li>
302: <li>
303: <b><while></b> implements a while loop, required argument
304: <i>condition</i> is a perl scriptlet that when evaluated
305: results in a true or false value, on true the entirty of the
306: text between the whiles is parsed. The condition is tested
307: again, etc. If false it goes to the next node in the parse.
308: </li>
309: </ul>
310: </li>
311: <li>
312: Libraries
313: <ul>
314: <li>
315: <b><scriptlib></b> the enclosed name is a file that
316: contains definition for new tags.
317: </li>
318: <li>
319: <b><parserlib></b> the enclosed name is a file that
320: contains extensions to the parser.
321: </li>
322: </ul>
323: </li>
324: </ul>
325:
326:
327: <h2>CAPA compatability function Calls</h2> Please refer to the
328: CAPA manual for documentation on what these functions do.
329: <ul>
330: <li> random </li>
331: <li> random_normal </li>
332: <li> random_beta </li>
333: <li> random_gamma </li>
334: <li> random_poisson </li>
335: <li> random_exponential </li>
336: <li> random_chi </li>
337: <li> random_noncentral_chi </li>
338: <li> choose </li>
339: <li> var_in_tex </li>
340: <li> capa_id </li>
341: <li> class, section, set, problem, name, student_number </li>
342: <li> due_date, open_date, answer_date </li>
343: <li> to_string </li>
344: <li> sub_string </li>
345: <li> strlen </li>
346: <li> get_seed </li>
347: <li> set_seed </li>
348: <li> init_array </li>
349: <li> array_max, array_min </li>
350: <li> array_moments </li>
351: <li> to_int </li>
352: <li> format </li>
353: <li> pick </li>
354: <li> sin, cos, tan, asin, acos, atan, atan2 </li>
355: <li> sinh, cosh, tanh, asinh, acosh, atanh </li>
356: <li> j0, j1, jn, y0, y1, yn </li>
357: <li> log, log10 </li>
358: <li> exp, pow </li>
359: <li> erf, erfc </li>
360: <li> sqrt </li>
361: <li> min, max </li>
362: <li> abs, floor, ceil, sgn, mod, remainder </li>
363: <li> factorial </li>
364: <li> roundto </li>
365: <li> eval_formula </li>
366: <li> capa_id_plus </li>
367: <li> seat_number </li>
368: <li> duration </li>
369: <li> is_open, is_due, is_answer </li>
370: <li> managermode </li>
371: </ul>
372:
373: <hr>
374: <address><a href="mailto:albertel@marvin.lite.msu.edu">Guy Albertelli</a></address>
375: <!-- Created: Mon Mar 27 16:14:28 EST 2000 -->
376: <!-- hhmts start -->
377: Last modified: Tue Nov 21 19:08:18 EST 2000
378: <!-- hhmts end -->
379: </body>
380: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>