Annotation of doc/homework/homework4.html, revision 1.4

1.1       albertel    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>
1.2       albertel   12:       <b> Outtext is gone now</b>
1.1       albertel   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>&lt;outtext&gt;</b> are
                     21: 	  valid and parsed by &parsed() inside a <b>&lt;script&gt;</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>&lt;outtext&gt;</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>&lt;target&gt;</b> This tag specifies data that is not in
                     37: 	    HTMl format inside an <b>&lt;outtext&gt;</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>&lt;tex&gt;</b> shorthand for &lt;target type=``tex''&gt;
                     50: 	    <i>dest</i> is a valid argument.
                     51: 	  </li>
                     52: 	  
                     53: 	  <li>
                     54: 	    <b>&lt;ascii&gt;</b> shorthand for &lt;target type=``ascii''&gt;
                     55: 	    <i>dest</i> is a valid argument.
                     56: 	  </li>
                     57: 	  
                     58: 	  <li>
                     59: 	    <b>&lt;web&gt;</b> shorthand for &lt;target type=``web''&gt;
                     60: 	    <i>dest</i> is a valid argument.
                     61: 	  </li>
                     62: 	  
                     63: 	  <li>
                     64: 	    <b>&lt;mathml&gt;</b> shorthand for &lt;target
                     65: 	    type=``mathml''&gt; <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>&lt;radio&gt;</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>&lt;answergroup&gt;</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>&lt;list&gt;</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>&lt;textline&gt;</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>&lt;textarea&gt;</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>&lt;check&gt;</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>&lt;button&gt;</b> -  Not sure this is useful
                    136: 	</li>
                    137:       </ul>
                    138:     </li>
                    139:     <li>
                    140:       Randomiztion
                    141:       <ul>
                    142: 	<li>
                    143: 	  <b>&lt;randomlist&gt;</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>&lt;randomlist&gt;</b>
                    149:         <b>&lt;tag1&gt;</b>
                    150: 		<b>&lt;subtag1&gt;</b>
                    151: 		<b>&lt;/subtag1&gt;</b>
                    152: 		<b>&lt;subtag2&gt;</b>
                    153: 		<b>&lt;/subtag2&gt;</b>
                    154: 	<b>&lt;/tag1&gt;</b>
                    155: 	<b>&lt;tag2&gt;</b>
                    156: 		<b>&lt;subtag1&gt;</b>
                    157: 		<b>&lt;/subtag1&gt;</b>
                    158: 		<b>&lt;subtag2&gt;</b>
                    159: 		<b>&lt;/subtag2&gt;</b>
                    160: 	<b>&lt;/tag2&gt;</b>
                    161: <b>&lt;/randomlist&gt;</b>
                    162: </pre>
                    163: 	  In this example, <b>&lt;tag1&gt;</b> or <b>&lt;tag2&gt;</b> will be
                    164: 	  done first, but <b>&lt;subtag1&gt;</b> will always happen before
                    165: 	  <b>&lt;subtag2&gt;</b>.
                    166: 	</li>
                    167: 	<li>
                    168: 	  <b>&lt;foil&gt;</b>, <b>&lt;showfoil/&gt;</b>,
                    169: 	  <b>&lt;showrandomfoil/&gt;</b> These tags combine to allow the
                    170: 	  user greater control over the exact placement of a
                    171: 	  randomized problem text. a <b>&lt;foil&gt;</b> tag defines a
                    172: 	  section of the problem that will appear in places a
                    173: 	  <b>&lt;showfoil/&gt;</b> or <b>&lt;showrandomfoil/&gt;</b> mark.
                    174: 	  Internally, the parser will make a pass over an entire
                    175: 	  answer group and count the number of <b>&lt;foil&gt;</b>,
                    176: 	  <b>&lt;showfoil/&gt;</b>, and <b>&lt;showrandomfoil/&gt;</b> tags
                    177: 	  that are used it will then make another pass and parse all
                    178: 	  of the <b>&lt;foil&gt;</b> storing the results of these parses,
                    179: 	  while parsing for each <b>&lt;show*&gt;</b> tag it hits it will
                    180: 	  send to the output device a foil, the <b>&lt;show*&gt;</b> it
                    181: 	  hit was a <b>&lt;showfoil&gt;</b> and this was the nth
                    182: 	  <b>&lt;show*&gt;</b> it hit, it will display the nth foil. For
                    183: 	  each <b>&lt;showrandomfoil&gt;</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>&lt;show*&gt;</b> tags than foils, the extra
                    186: 	  <b>&lt;show*&gt;</b> will have nothing sent out. If there are
                    187: 	  more <b>&lt;foil&gt;</b> tags, the extras won't appear.  When
                    188: 	  mixing <b>&lt;showfoil&gt;</b> and <b>&lt;showrandomfoil&gt;</b> the
                    189: 	  result is undefined.
                    190: 	</li>
                    191:       </ul>
                    192:     </li>
                    193:     <li>
                    194:       Answer Section
                    195:       <ul>
                    196: 	<li>
1.2       albertel  197: 	  <b> answergroup has little in the way of purpose anymore, showrandomfoil is it</b>
1.1       albertel  198: 	  <b>&lt;answergroup&gt;</b> this defines a grouping of
                    199: 	  <b>&lt;*response&gt;</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>&lt;*response&gt;</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>&lt;*response&gt;</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>
1.2       albertel  236: 	  <b>&lt;responseparam&gt;</b> can appear inside a <b>&lt;*response&gt;</b>,
1.1       albertel  237: 	  they provided config options for the <b>&lt;*response&gt;</b>
                    238: 	  
1.3       albertel  239: 	  <br><i>name</i> specifies the parameter name, what are
1.1       albertel  240: 	  possible values depends on the <b>&lt;*response&gt;</b>
                    241: 
1.3       albertel  242: 	  <br><i>type</i> specifies the possible values for this
1.1       albertel  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>&lt;problem&gt;</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>
1.2       albertel  268: 	  <b>part needs to get much of answergroups writeup</b>
1.1       albertel  269: 	  <b>&lt;part&gt;</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>&lt;block&gt;</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>&lt;block&gt;</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>&lt;import&gt;</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>&lt;import&gt;</b>
                    293: 	</li>
                    294: 	<li>
                    295: 	  <b>&lt;script&gt;</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>&lt;problem&gt;</b>. Except values which are expressly saved
                    300: 	  and restored
                    301: 	</li>
                    302: 	<li>
                    303: 	  <b>&lt;while&gt;</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>
1.4     ! albertel  315: 	  <b>&lt;parserlib&gt;</b> the enclosed name is a file that
1.1       albertel  316: 	  contains definition for new tags.
                    317: 	</li>
                    318: 	<li>
1.4     ! albertel  319: 	  <b>&lt;scriptlib&gt;</b> the enclosed name is a file that
1.1       albertel  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 -->
1.2       albertel  377: Last modified: Tue Nov 21 19:08:18 EST 2000
1.1       albertel  378: <!-- hhmts end -->
                    379:   </body>
                    380: </html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>