Annotation of doc/gutshtml/SessionOn2.html, revision 1.3

1.2       bowersj2    1: <html>
                      2: 
                      3: <head>
                      4: 
                      5: <meta name=Title
                      6: 
                      7: content="Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)">
                      8: 
                      9: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
                     10: 
                     11: <link rel=Edit-Time-Data href="Session%20On2_files/editdata.mso">
                     12: 
                     13: <title>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</title>
                     14: 
                     15: <style><!--
                     16: 
                     17: .MsoHeader
                     18: 
                     19: 	{tab-stops:center 3.0in right 6.0in;
                     20: 
                     21: 	font-size:10.0pt;
                     22: 
                     23: 	font-family:"Times New Roman";}
                     24: 
                     25: .H5
                     26: 
                     27: 	{font-size:10.0pt;
                     28: 
                     29: 	font-family:"Times New Roman";
                     30: 
                     31: 	layout-grid-mode:line;
                     32: 
                     33: 	font-weight:bold;}
                     34: 
                     35: .Section1
                     36: 
                     37: 	{page:Section1;}
                     38: 
                     39: .Section2
                     40: 
                     41: 	{page:Section2;}
                     42: 
                     43: -->
                     44: 
                     45: </style>
                     46: 
                     47: </head>
                     48: 
                     49: <body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US>
                     50: 
                     51: <div class=Section1> 
                     52: 
                     53:   <h2>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</h2>
                     54: 
                     55:   <h3><a name="_Toc421867127">Tags</a></h3>
                     56: 
                     57:   <ul type=disc>
                     58: 
                     59:     <li><b>Response tags </b></li>
                     60: 
                     61:   </ul>
                     62: 
                     63:   <p>Arguments for all response tags </p>
                     64: 
                     65:   <ul type=disc>
                     66: 
                     67:     <ul type=circle>
                     68: 
                     69:       <li><i>ID</i><span style='font-style:
                     70: 
                     71:       normal'>, if this isn't set it will be set during the publication step. 
                     72: 
                     73:         It is used to assign parameters names in a way that can be tracked if 
                     74: 
                     75:         an instructor modifies things by hand. </span></li>
                     76: 
                     77:       <li><i>name</i><span
                     78: 
                     79:       style='font-style:normal'> optional, if set, it will be used by the resource 
                     80: 
                     81:         assembly tool when one is modifying parameters. </span></li>
                     82: 
                     83:     </ul>
                     84: 
                     85:   </ul>
                     86: 
                     87:   <p>Implemented response tags </p>
                     88: 
                     89:   <ul type=disc>
                     90: 
                     91:     <ul type=circle>
                     92: 
                     93:       <li><b>&lt;responseparam&gt;</b><span
                     94: 
                     95:       style='font-weight:normal'> if it appears it should be inside of a &lt;*response&gt; 
                     96: 
                     97:         tag, defines an externally adjustable parameter for this question. Arguments: 
                     98: 
                     99:         </span></li>
                    100: 
                    101:       <ul type=square>
                    102: 
                    103:         <li><i>default</i><span
                    104: 
                    105:        style='font-style:normal'> required, specifies a default value for the 
                    106: 
                    107:           parameter </span></li>
                    108: 
                    109:         <li><i>name</i><span
                    110: 
                    111:        style='font-style:normal'> required, specifies an internal name for the 
                    112: 
                    113:           parameter </span></li>
                    114: 
                    115:         <li><i>type</i><span
                    116: 
                    117:        style='font-style:normal'> required specifies the type of parameter, one 
                    118: 
                    119:           of &quot;tolerance&quot;, &quot;int&quot;, &quot;float&quot;, &quot;string&quot;, 
                    120: 
                    121:           &quot;date&quot; (configuration of paramters is handled by lonparmset.pm 
                    122: 
                    123:           and parameter.html) </span></li>
                    124: 
                    125:         <li><i>description</i><span
                    126: 
                    127:        style='font-style:normal'> a string describing the parameter, this is what 
                    128: 
                    129:           is used to talk about a parameter outside of a problem </span></li>
                    130: 
                    131:       </ul>
                    132: 
                    133:       <li><b>&lt;parameter&gt;</b><span
                    134: 
                    135:       style='font-weight:normal'> exactly the same as &lt;responseparam&gt; currently, 
                    136: 
                    137:         but should not appear inside of a &lt;*response&gt; </span></li>
                    138: 
                    139:       <li><b>&lt;numericalresponse&gt;</b><span
                    140: 
                    141:       style='font-weight:normal'> implements a numerical answer, it needs an internal 
                    142: 
                    143:         </span><b>&lt;textline&gt;</b><span style='font-weight:normal'> for the 
                    144: 
                    145:         response to go in. It checks all styles of numerical supported in CAPA. 
                    146: 
                    147:         Possible args are: </span></li>
                    148: 
                    149:       <ul type=square>
                    150: 
                    151:         <li><i>answer</i><span
                    152: 
                    153:        style='font-style:normal'> required, specifies the correct answer, may 
                    154: 
                    155:           be either a perl list or scalar</span></li>
                    156: 
                    157:         <li><i>units</i><span
                    158: 
                    159:        style='font-style:normal'> optional, specifies unit of correct answer, 
                    160: 
                    161:           CAPA style</span></li>
                    162: 
                    163:       </ul>
                    164: 
                    165:       <li><b>&lt;stringresponse&gt;</b><span
                    166: 
                    167:       style='font-weight:normal'> implements a string answer, it needs an internal 
                    168: 
                    169:         </span><b>&lt;textline&gt;</b><span style='font-weight:normal'> for the 
                    170: 
                    171:         response to go in. It can check the string for either case or order. </span></li>
                    172: 
                    173:       <ul type=square>
                    174: 
                    175:         <li><i>answer</i><span
                    176: 
                    177:        style='font-style:normal'> required, specifies the correct answer, may 
                    178: 
                    179:           be either a perl list or scalar</span></li>
                    180: 
                    181:         <li><i>type</i><span
                    182: 
                    183:        style='font-style:normal'> optional, CAPA style str args, cs/ci/mc </span></li>
                    184: 
                    185:         <ul type=square>
                    186: 
                    187:           <li>cs - case senesitive, order important</li>
                    188: 
                    189:           <li>ci - case insenesitive, order important</li>
                    190: 
                    191:           <li>mc - case insenesitive, order unimportant</li>
                    192: 
                    193:         </ul>
                    194: 
                    195:       </ul>
                    196: 
                    197:       <li><b>&lt;essayresponse&gt;</b><span
                    198: 
                    199:       style='font-weight:normal'> implements a ungraded large text response, it 
                    200: 
                    201:         need an internal </span><b>&lt;textarea&gt;</b><span style='font-weight:
                    202: 
                    203:       normal'> for the response to go in. </span></li>
                    204: 
                    205:       <li><b>&lt;imageresponse&gt;</b><span
                    206: 
                    207:       style='font-weight:normal'> implements a image click style image submission, 
                    208: 
                    209:         uses the foil structure tags <a href="#foil">below</a>. Additional tags 
                    210: 
                    211:         that should appear in a &lt;foil&gt; are: </span></li>
                    212: 
                    213:       <ul type=square>
                    214: 
                    215:         <li><b>&lt;image&gt;</b><span
                    216: 
                    217:        style='font-weight:normal'> required, the contained text specifies a published 
                    218: 
                    219:           graphical resource that is the image used, should only appear once per 
                    220: 
                    221:           foil</span></li>
                    222: 
                    223:         <li><b>&lt;rectangle&gt;</b><span
                    224: 
                    225:        style='font-weight:normal'> required, the contained text specifies a rectangular 
                    226: 
                    227:           area that is correct, should look like (1,2)-(3,4), at least 1 required</span></li>
                    228: 
                    229:         <li><b>&lt;text&gt;</b><span
                    230: 
                    231:        style='font-weight:normal'> required, the contained text is printed on 
                    232: 
                    233:           top of the image.</span></li>
                    234: 
                    235:       </ul>
                    236: 
                    237:       <li><b>&lt;optionresponse&gt;</b><span
                    238: 
                    239:       style='font-weight:normal'> implements a &quot;select from these choices&quot; 
                    240: 
                    241:         style question, the choices are specified by the instructor, it uses the 
                    242: 
                    243:         foil structure tags <a href="#foil">below</a> with this additional args: 
                    244: 
                    245:         </span></li>
                    246: 
                    247:       <ul type=square>
                    248: 
                    249:         <li><b>&lt;foilgroup&gt;</b><span
                    250: 
                    251:        style='font-weight:normal'> is required to have <i>options</i></span> which 
                    252: 
                    253:           should be a perl list of possible options for the student. </li>
                    254: 
                    255:       </ul>
                    256: 
                    257:       <li><b>&lt;radiobuttonresponse&gt;</b><span
                    258: 
                    259:       style='font-weight:normal'> implements a true / false style question with 
                    260: 
                    261:         1 correct answer.it uses the foil structure tags <a href="#foil">below</a> 
                    262: 
                    263:         but the <i>value</i></span> of a &lt;foil&gt;can only be &quot;true&quot; 
                    264: 
                    265:         or &quot;false&quot; or &quot;unused&quot; </li>
                    266: 
                    267:       <li><b>&lt;dataresponse&gt;</b><span
                    268: 
                    269:       style='font-weight:normal'> implements a straight data storage entry idea, 
                    270: 
                    271:         needs and interveing input tag like &lt;textline&gt; to work correctly.<br>
                    272: 
                    273:         Arguments: </span></li>
                    274: 
                    275:       <ul type=square>
                    276: 
                    277:         <li><i>name</i><span
                    278: 
                    279:        style='font-style:normal'> internal name for the value, it will have the 
                    280: 
                    281:           part id and respose id added on to it </span></li>
                    282: 
                    283:         <li><i>type</i><span
                    284: 
                    285:        style='font-style:normal'> type of data stored in this response field, 
                    286: 
                    287:           should be one of the types supported by parameter.html </span></li>
                    288: 
                    289:         <li><i>display</i><span
                    290: 
                    291:        style='font-style:normal'> a string that will be used to describe the field 
                    292: 
                    293:           when interfacing with humans </span></li>
                    294: 
                    295:       </ul>
                    296: 
                    297:     </ul>
                    298: 
                    299:   </ul>
                    300: 
                    301:   <p> <span style='font-size:10.0pt;
                    302: 
                    303: font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                    304: 
                    305:     </span></span> <b>&lt;externalresponse&gt;</b><span style='font-weight:
                    306: 
                    307: normal'> implements the ability to have an external program grade a response, 
                    308: 
                    309:     expects either a &lt;textline&gt; or &lt;textfield&gt; inside the tag. </span></p>
                    310: 
                    311:   <p>Arguments: </p>
                    312: 
                    313:   <ul type=disc>
                    314: 
                    315:     <ul type=circle>
                    316: 
                    317:       <ul type=square>
                    318: 
                    319:         <li><i>url</i><span
                    320: 
                    321:        style='font-style:normal'> the url to submit the answer and form to, does 
                    322: 
                    323:           not need to be a LON-CAPA machine. </span></li>
                    324: 
                    325:         <li><i>answer</i><span
                    326: 
                    327:        style='font-style:normal'> a string or scalar variable that can encode 
                    328: 
                    329:           something that should encode the correct answer, in some cases this 
                    330: 
                    331:           may be nothing. </span></li>
                    332: 
                    333:         <li><i>form</i><span
                    334: 
                    335:        style='font-style:normal'> a hash variable name that will be submitted 
                    336: 
                    337:           to the remote site as a HTTP form. </span></li>
                    338: 
                    339:       </ul>
                    340: 
                    341:     </ul>
                    342: 
                    343:   </ul>
                    344: 
                    345:   <p>The response of the remote server needs to be in XML as follows. </p>
                    346: 
                    347:   <pre>&nbsp;&lt;loncapagrade&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;awardetail&gt; CORRECT&nbsp;&nbsp;&nbsp;&nbsp; &lt;/awardetail&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message&gt; A message to be shown to the students&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt; &lt;/loncapagrade&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</pre>
                    348: 
                    349:   <ul type=disc>
                    350: 
                    351:     <ul type=circle>
                    352: 
                    353:       <ul type=square>
                    354: 
                    355:         <li><b>&lt;loncapagrade&gt;</b><span
                    356: 
                    357:        style='font-weight:normal'> no arguments but must surround the response. 
                    358: 
                    359:           </span></li>
                    360: 
                    361:         <li><b>&lt;awardetail&gt;</b><span
                    362: 
                    363:        style='font-weight:normal'> required inner tag, the response inside must 
                    364: 
                    365:           be one of the detailed responses that appears in the data storage documentation 
                    366: 
                    367:           (CVS:loncapa/doce/homework/datastorage) </span></li>
                    368: 
                    369:         <li><b>&lt;message&gt;</b><span
                    370: 
                    371:        style='font-weight:normal'> optional message to have shown to the student 
                    372: 
                    373:           </span></li>
                    374: 
                    375:       </ul>
                    376: 
                    377:     </ul>
                    378: 
                    379:   </ul>
                    380: 
                    381:   <ul type=disc>
                    382: 
                    383:     <li><a name=foil><b>Foil Structure Tags</b></a><b> </b></li>
                    384: 
                    385:   </ul>
                    386: 
                    387:   <p>All tags that implement a foil structure have an optional arg of <i>max</i><span style='font-style:normal'> 
                    388: 
                    389:     that controls the maximum number of total foils to show. </span></p>
                    390: 
                    391:   <ul type=disc>
                    392: 
                    393:     <ul type=circle>
                    394: 
                    395:       <li><b>&lt;foilgroup&gt;</b><span
                    396: 
                    397:       style='font-weight:normal'> required, must be the tag that surrounds all 
                    398: 
                    399:         foil definitions </span></li>
                    400: 
                    401:       <li><b>&lt;foil&gt;</b><span
                    402: 
                    403:       style='font-weight:normal'> required, all data inside is a possible foil 
                    404: 
                    405:         </span></li>
                    406: 
                    407:       <li><b>&lt;conceptgroup&gt;</b><span
                    408: 
                    409:       style='font-weight:normal'> optional, surrounds a collection of &lt;foil&gt;, 
                    410: 
                    411:         when a problem is displayed only one of the contained &lt;foil&gt;is selected 
                    412: 
                    413:         for display. It receives one required argument <i>concept</i></span>. 
                    414: 
                    415:       </li>
                    416: 
                    417:     </ul>
                    418: 
                    419:     <li><b>Hint structure </b></li>
                    420: 
                    421:   </ul>
                    422: 
                    423:   <p>All of these tags must appear inside a <b>&lt;*response&gt;</b><span
                    424: 
                    425: style='font-weight:normal'> tag. </span></p>
                    426: 
                    427:   <ul type=disc>
                    428: 
                    429:     <ul type=circle>
                    430: 
                    431:       <li><b>&lt;hintgroup&gt;</b><span
                    432: 
                    433:       style='font-weight:normal'> Tag that surrounds all of a hint. </span></li>
                    434: 
                    435:       <li><b>&lt;hintpart&gt;</b><span
                    436: 
                    437:       style='font-weight:normal'> required, Tag to implement conditional hints. 
                    438: 
                    439:         It has a required argument <i>on</i></span>. When a &lt;*hint&gt; tag 
                    440: 
                    441:         named the same as the value the on attribute evaluates to be correct the 
                    442: 
                    443:         &lt;hintpart&gt; will show. If no other &lt;hintpart&gt; are to show then 
                    444: 
                    445:         all hintparts with a <i>on</i><span style='font-style:normal'> of &quot;default&quot; 
                    446: 
                    447:         will show </span></li>
                    448: 
                    449:       <li><b>&lt;numericalhint&gt;</b><span
                    450: 
                    451:       style='font-weight:normal'> has all the arguments that &lt;numericalresponse&gt;, 
                    452: 
                    453:         does and the required attribute <i>name</i></span> which should be set 
                    454: 
                    455:         to the value of which &lt;hintpart&gt; will be shown. </li>
                    456: 
                    457:     </ul>
                    458: 
                    459:     <li><b>Input Tags </b></li>
                    460: 
                    461:   </ul>
                    462: 
                    463:   <p>This group of tags implement a mechanism for getting data for students, they 
                    464: 
                    465:     will usually be used by a &lt;*response&gt;. </p>
                    466: 
                    467:   <ul type=disc>
                    468: 
                    469:     <ul type=circle>
                    470: 
                    471:       <li><b>&lt;textarea&gt;</b><span
                    472: 
                    473:       style='font-weight:normal'> creates a Large text input box, If data appears 
                    474: 
                    475:         between the start and end tags, the data will appear i the textarea if 
                    476: 
                    477:         the student has not yet made a submission. Additionally it takes two arguments 
                    478: 
                    479:         <i>rows</i></span> and <i>cols</i><span
                    480: 
                    481:       style='font-style:normal'> which control the height and width of the area 
                    482: 
                    483:         respectively. It defaults to 10 and 80. </span></li>
                    484: 
                    485:       <li><b>&lt;textline&gt;</b><span
                    486: 
                    487:       style='font-weight:normal'> creates a single line of input element, it accepts 
                    488: 
                    489:         1 argument <i>size</i></span> which controls the width on the textline, 
                    490: 
                    491:         it defaults to 20. </li>
                    492: 
                    493:     </ul>
                    494: 
                    495:     <li><b>Output Tags </b></li>
                    496: 
                    497:   </ul>
                    498: 
                    499:   <p>This group of tags generate useful pieces of output. </p>
                    500: 
                    501:   <ul type=disc>
                    502: 
                    503:     <ul type=circle>
                    504: 
                    505:       <li><b>&lt;standalone&gt;</b><span
                    506: 
                    507:       style='font-weight:normal'> everything in between the start and end tag 
                    508: 
                    509:         is shown only on the web, and only if the resource is not part of a course. 
                    510: 
                    511:         </span></li>
                    512: 
                    513:       <li><b>&lt;displayduedate&gt;</b><span
                    514: 
                    515:       style='font-weight:normal'> this will insert the current duedate if one 
                    516: 
                    517:         is set into the document. It is generated to be inside a table of 1x1 
                    518: 
                    519:         elements </span></li>
                    520: 
                    521:       <li><b>&lt;displaytitle&gt;</b><span
                    522: 
                    523:       style='font-weight:normal'> this will insert the title of the problem from 
                    524: 
                    525:         the metadata of the problem </span></li>
                    526: 
                    527:       <li><b>&lt;window&gt;</b><span
                    528: 
                    529:       style='font-weight:normal'> the text in between is put in a popup javascript 
                    530: 
                    531:         window </span></li>
                    532: 
                    533:       <li><b>&lt;m&gt;</b><span
                    534: 
                    535:       style='font-weight:normal'> the inside text is LaTeX, and is converted to 
                    536: 
                    537:         HTML (or MathML) on the fly, if the argument <i>eval</i></span> is set 
                    538: 
                    539:         to &quot;on&quot; the intervening text will have a perl var expansion 
                    540: 
                    541:         done to it before being converted. </li>
                    542: 
                    543:       <li><b>&lt;randomlabel&gt;</b><span
                    544: 
                    545:       style='font-weight:normal'> shows a specified image with images or text 
                    546: 
                    547:         labels randomly assigned to a set of specific locations, those locations 
                    548: 
                    549:         may also have values assigned to them. There is a hash generated conating 
                    550: 
                    551:         the mapping of labels to locations, labels to values, and locations to 
                    552: 
                    553:         values. Example: </span></li>
                    554: 
                    555:     </ul>
                    556: 
                    557:   </ul>
                    558: 
                    559:   <pre>&nbsp; &lt;randomlabel bgimg=&quot;URL&quot; width=&quot;12&quot; height=&quot;45&quot; texwidth=&quot;50&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;labelgroup name=&quot;GroupOne&quot; type=&quot;image&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;123&quot; y=&quot;456&quot; value=&quot;10&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;321&quot; y=&quot;654&quot; value=&quot;20&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;213&quot; y=&quot;546&quot; value=&quot;13&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-1&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-2&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-3&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/labelgroup&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;labelgroup name=&quot;GroupTwo&quot; type=&quot;text&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;12&quot; y=&quot;45&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;32&quot; y=&quot;65&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;21&quot; y=&quot;54&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-1&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-2&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-3&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/labelgroup&gt;&nbsp;&nbsp;&nbsp; &lt;/randomlabel&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</pre>
                    560: 
                    561:   <p>Arguments: </p>
                    562: 
                    563:   <ul type=disc>
                    564: 
                    565:     <ul type=circle>
                    566: 
                    567:       <ul type=square>
                    568: 
                    569:         <li><i>bgimg</i><span
                    570: 
                    571:        style='font-style:normal'> either a fully qualified URL for an external 
                    572: 
                    573:           image, or a loncapa resource, it supports relative references (../images/apicture.gif), 
                    574: 
                    575:           the image must either be a GIF or JPEG </span></li>
                    576: 
                    577:         <li><i>width</i><span
                    578: 
                    579:        style='font-style:normal'> the width of the image in pixels </span></li>
                    580: 
                    581:         <li><i>height</i><span
                    582: 
                    583:        style='font-style:normal'> the height of the image in pixels </span></li>
                    584: 
                    585:         <li><i>texwidth</i><span
                    586: 
                    587:        style='font-style:normal'> the width of the image in millimeters </span></li>
                    588: 
                    589:       </ul>
                    590: 
                    591:     </ul>
                    592: 
                    593:   </ul>
                    594: 
                    595:   <p>Internal tags: </p>
                    596: 
                    597:   <ul type=disc>
                    598: 
                    599:     <ul type=circle>
                    600: 
                    601:       <ul type=square>
                    602: 
                    603:         <li><b>&lt;labelgroup&gt;</b><span
                    604: 
                    605:        style='font-weight:normal'> 1 required, multiple allowed. Declares a group 
                    606: 
                    607:           of locations and labels associated with them. <br>
                    608: 
                    609:           Arguments: </span></li>
                    610: 
                    611:         <ul type=square>
                    612: 
                    613:           <li><i>name</i><span
                    614: 
                    615:         style='font-style:normal'> this is the name of the group, a hash with 
                    616: 
                    617:             this name will be generated holding the mappings for later use in 
                    618: 
                    619:             the problem. For each location a value will be set for which label 
                    620: 
                    621:             is there, (EX. $hash{'1'}=&quot;TEXT-2&quot;). For locations with 
                    622: 
                    623:             values the hash will contain 2 items, a location to value mapping 
                    624: 
                    625:             ($hash{'value_1'}=10), and a label to value mapping ($hash{'labelvalue_2'}=10). 
                    626: 
                    627:             For all image style of labels there will also be a label description 
                    628: 
                    629:             to label URL mapping ($hash{'image_2'}=IMG-URL). Also the entry 'numlocations 
                    630: 
                    631:             will be set to the total number of locations that exist. (Note that 
                    632: 
                    633:             locations and labels start counting from 1.) </span></li>
                    634: 
                    635:           <li><i>type</i><span
                    636: 
                    637:         style='font-style:normal'> the type of labels in this group, either 'image' 
                    638: 
                    639:             or 'text' </span></li>
                    640: 
                    641:         </ul>
                    642: 
                    643:         <li><b>&lt;location&gt;</b><span
                    644: 
                    645:        style='font-weight:normal'> declares a location on the image that a label 
                    646: 
                    647:           should appear at <br>
                    648: 
                    649:           Arguments: </span></li>
                    650: 
                    651:         <ul type=square>
                    652: 
                    653:           <li><i>x</i><span
                    654: 
                    655:         style='font-style:normal'> the x value of the location in pixels </span></li>
                    656: 
                    657:           <li><i>y</i><span
                    658: 
                    659:         style='font-style:normal'> the y value of the location in pixels </span></li>
                    660: 
                    661:           <li><i>value</i><span
                    662: 
                    663:         style='font-style:normal'> a scalar value to associate at this location 
                    664: 
                    665:             (optional) </span></li>
                    666: 
                    667:         </ul>
                    668: 
                    669:         <li><b>&lt;label&gt;</b><span
                    670: 
                    671:        style='font-weight:normal'> declaration of a label, if this is a text type 
                    672: 
                    673:           labelgroup the internal text should be the text of the label (HTML is 
                    674: 
                    675:           not currently supported), if this is an image type of label the internal 
                    676: 
                    677:           text must be a LON-CAPA resource specification, and the description 
                    678: 
                    679:           filed must be set. <br>
                    680: 
                    681:           Arguments: </span></li>
                    682: 
                    683:         <ul type=square>
                    684: 
                    685:           <li><i>description</i><span
                    686: 
                    687:         style='font-style:normal'> a required field for image labels, it will 
                    688: 
                    689:             be used when setting values in the hash. </span></li>
                    690: 
                    691:         </ul>
                    692: 
                    693:       </ul>
                    694: 
                    695:     </ul>
                    696: 
                    697:     <li><b>Scripting </b></li>
                    698: 
                    699:   </ul>
                    700: 
                    701:   <p>These tags allow the document to behave programatically </p>
                    702: 
                    703:   <ul type=disc>
                    704: 
                    705:     <ul type=circle>
                    706: 
                    707:       <li><b>&lt;display&gt;</b><span
                    708: 
                    709:       style='font-weight:normal'> the intervening perl script is evaluated in 
                    710: 
                    711:         the safe space and the return value of the script replaces the entire 
                    712: 
                    713:         tag </span></li>
                    714: 
                    715:       <li><b>&lt;import&gt;</b><span
                    716: 
                    717:       style='font-weight:normal'> causes the parse to read in the file named in 
                    718: 
                    719:         the body of the tag and parse it as if the entire text of the file had 
                    720: 
                    721:         existed at location of the tag </span></li>
                    722: 
                    723:       <li><b>&lt;parserlib&gt;</b><span
                    724: 
                    725:       style='font-weight:normal'> the enclosed filename contains definitions for 
                    726: 
                    727:         new tags </span></li>
                    728: 
                    729:       <li><b>&lt;script&gt;</b><span
                    730: 
                    731:       style='font-weight:normal'> if the argument <i>type</i></span> is set to 
                    732: 
                    733:         &quot;loncapa/perl&quot; the enclosed data is a perl script which is evaluated 
                    734: 
                    735:         inside the perl Safe space. The return value of the script is ignored. 
                    736: 
                    737:       </li>
                    738: 
                    739:       <li><b>&lt;scriptlib&gt;</b><span
                    740: 
                    741:       style='font-weight:normal'> the enclosed filename contains perl code to 
                    742: 
                    743:         run in the safe space </span></li>
                    744: 
                    745:       <li><b>&lt;block&gt;</b><span
                    746: 
                    747:       style='font-weight:normal'> has a required argument <i>condition</i></span> 
                    748: 
                    749:         that is evaluated, it the condition is true everything inside the tag 
                    750: 
                    751:         is evaluated, if it is false everything inside the block tag is skipped 
                    752: 
                    753:       </li>
                    754: 
                    755:       <li><b>&lt;notsolved&gt;</b><span
                    756: 
                    757:       style='font-weight:normal'> everything inside the tag is skipped if the 
                    758: 
                    759:         problem is &quot;solved&quot; </span></li>
                    760: 
                    761:       <li><b>&lt;postanswerdate&gt;</b><span
                    762: 
                    763:       style='font-weight:normal'> everything inside the tag is skipped if the 
                    764: 
                    765:         problem is before the answer date </span></li>
                    766: 
                    767:       <li><b>&lt;preduedate&gt;</b><span
                    768: 
                    769:       style='font-weight:normal'> everything inside the tag is skipped if the 
                    770: 
                    771:         problem is after the due date </span></li>
                    772: 
                    773:       <li><b>&lt;randomlist&gt;</b><span
                    774: 
                    775:       style='font-weight:normal'> the enclosed tags are parsed in a stable random 
                    776: 
                    777:         order, optional argument <i>show</i></span> restricts the number of tags 
                    778: 
                    779:         indie that are actually parsed the no more than <i>show</i><span
                    780: 
                    781:       style='font-style:normal'>. </span></li>
                    782: 
                    783:       <li><b>&lt;solved&gt;</b><span
                    784: 
                    785:       style='font-weight:normal'> everything inside the tag is skipped if the 
                    786: 
                    787:         problem is &quot;not solved&quot; </span></li>
                    788: 
                    789:       <li><b>&lt;while&gt;</b><span
                    790: 
                    791:       style='font-weight:normal'> implements a while loop, required argument <i>condition</i></span> 
                    792: 
                    793:         is a perl scriptlet that when evaluated results in a true or false value, 
                    794: 
                    795:         on true the entirety of the text between the whiles is parsed. The condition 
                    796: 
                    797:         is tested again, etc. If false it goes to the next node in the parse. 
                    798: 
                    799:       </li>
                    800: 
                    801:     </ul>
                    802: 
                    803:     <li><b>Structure Tags </b></li>
                    804: 
                    805:   </ul>
                    806: 
                    807:   <p>These tags give the problem a structure and take care of the recording of 
                    808: 
                    809:     data and giving the student messages. </p>
                    810: 
                    811:   <ul type=disc>
                    812: 
                    813:     <ul type=circle>
                    814: 
                    815:       <li><b>&lt;problem&gt;</b><span
                    816: 
                    817:       style='font-weight:normal'> must be the first tag in the file, this tag 
                    818: 
                    819:         sets up the header of the webpage and generates the submit buttons, it 
                    820: 
                    821:         also handles due dates properly </span></li>
                    822: 
                    823:       <li><b>&lt;part&gt;</b><span
                    824: 
                    825:       style='font-weight:normal'> must be below &lt;problem&gt; if it is going 
                    826: 
                    827:         to be used. It does many of the same tasks as &lt;problem&gt; but allows 
                    828: 
                    829:         multiple separate problems to exist in a single file. </span></li>
                    830: 
                    831:       <li><b>&lt;startouttext&gt;&lt;endouttext&gt;</b><span
                    832: 
                    833:       style='font-weight:normal'> these tags are somewhat special, they must have 
                    834: 
                    835:         no internal text and occur in pairs. Their use is to mark up the problem 
                    836: 
                    837:         so the web editor knows what sections should be edited in a plain text 
                    838: 
                    839:         block on the web. </span></li>
                    840: 
                    841:     </ul>
                    842: 
                    843:   </ul>
                    844: 
                    845:   <h3><a name="_Toc421867128">&lt;script&gt; Functions</a></h3>
                    846: 
                    847:   <p>A list of functions that have been written that are available in the Safe 
                    848: 
                    849:     space scripting environment inside a problem. </p>
                    850: 
                    851:   <ul type=disc>
                    852: 
                    853:     <li>sin(x), cos(x), tan(x)</li>
                    854: 
                    855:     <li>asin(x), acos(x), atan(x), atan2(y,x)</li>
                    856: 
                    857:     <li>log(x), log10(x)</li>
                    858: 
                    859:     <li>exp(), pow(x,y), sqrt(x)</li>
                    860: 
                    861:     <li>abs(x), sgn(x)</li>
                    862: 
                    863:     <li>erf(x), erfc(x)</li>
                    864: 
                    865:     <li>ceil(x), floor(x)</li>
                    866: 
                    867:     <li>min(...), max(...)</li>
                    868: 
                    869:     <li>factorial(n)</li>
                    870: 
                    871:     <li>N%M</li>
                    872: 
                    873:     <li>sinh(x), cosh(x), tanh(x)</li>
                    874: 
                    875:     <li>asinh(x), acosh(x), atanh(x)</li>
                    876: 
                    877:     <li>roundto(x,n)</li>
                    878: 
                    879:     <li>web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) or web(a,b,c)</li>
                    880: 
                    881:     <li>html(&quot;a&quot;) or html(a)</li>
                    882: 
                    883:     <li>j0(x), j1(x), jn(n,x), jv(y,x)</li>
                    884: 
                    885:     <li>y0(x), y1(x), yn(n,x), yv(y,x)</li>
                    886: 
                    887:     <li>random</li>
                    888: 
                    889:     <li>choose</li>
                    890: 
                    891:     <li>tex(&quot;a&quot;,&quot;b&quot;) or tex(a,b)</li>
                    892: 
                    893:     <li>var_in_tex(a)</li>
                    894: 
                    895:     <li>to_string(x), to_string(x,y)</li>
                    896: 
                    897:     <li>class(), section()</li>
                    898: 
                    899:     <li>name(), student_number()</li>
                    900: 
                    901:     <li>open_date(), due_date(), answer_date()</li>
                    902: 
                    903:     <li>sub_string()</li>
                    904: 
                    905:     <li>array_moments(array)</li>
                    906: 
                    907:     <li>format(x,y),prettyprint(x,y)</li>
                    908: 
                    909:     <li>map(...)</li>
                    910: 
                    911:     <li>caparesponse_check</li>
                    912: 
                    913:     <li>caparesponse_check_list</li>
                    914: 
                    915:   </ul>
                    916: 
                    917:   <h3><a name="_Toc421867129">Detailed descriptions of each function and comparison 
                    918: 
                    919:     with CAPA</a></h3>
                    920: 
                    921:   <table border=1 cellpadding=0>
                    922: 
                    923:     <tr> 
                    924: 
                    925:       <td width=131 valign=top class="Normal"> <p><b>CAPA Functions</b></p></td>
                    926: 
                    927:       <td width=134 valign=top class="Normal"> <p><b>LON-CAPA</b></p></td>
                    928: 
                    929:       <td width=147 valign=top class="Normal"> <p><b>Descriptions</b></p></td>
                    930: 
                    931:       <td width=101 valign=top class="Normal"> <p><b>Differences (if any)</b></p></td>
                    932: 
                    933:     </tr>
                    934: 
                    935:     <tr> 
                    936: 
                    937:       <td width=131 valign=top class="Normal"> <p>sin(x), cos(x), tan(x)</p></td>
                    938: 
                    939:       <td width=134 valign=top class="Normal"> <p>&amp;sin($x), &amp;cos($x), 
                    940: 
                    941:           &amp;tan($x)</p></td>
                    942: 
                    943:       <td width=147 valign=top class="Normal"> <p>Trigonometric functions where 
                    944: 
                    945:           x is in radians. $x can be a pure number, i.e., you can call &amp;sin(3.1415)</p></td>
                    946: 
                    947:       <td width=101 valign=top class="Normal">&nbsp; </td>
                    948: 
                    949:     </tr>
                    950: 
                    951:     <tr> 
                    952: 
                    953:       <td width=131 valign=top class="Normal"> <p>asin(x), acos(x), atan(x), atan2(y,x)</p></td>
                    954: 
                    955:       <td width=134 valign=top class="Normal"> <p>&amp;asin($x), &amp;acos($x), 
                    956: 
                    957:           &amp;atan($x), &amp;atan2($y,$x)</p></td>
                    958: 
                    959:       <td width=147 valign=top class="Normal"> <p>Inverse trigonometric functions. 
                    960: 
                    961:           Return value is in radians. For asin and acos the value of x must be 
                    962: 
                    963:           between -1 and 1. The atan2 returns a value between -pi and pi the sign 
                    964: 
                    965:           of which is determined by y. $x and $y can be pure numbers</p></td>
                    966: 
                    967:       <td width=101 valign=top class="Normal">&nbsp; </td>
                    968: 
                    969:     </tr>
                    970: 
                    971:     <tr> 
                    972: 
                    973:       <td width=131 valign=top class="Normal"> <p>log(x), log10(x)</p></td>
                    974: 
                    975:       <td width=134 valign=top class="Normal"> <p>&amp;log($x), &amp;log10($x)</p></td>
                    976: 
                    977:       <td width=147 valign=top class="Normal"> <p>Natural and base-10 logarithm. 
                    978: 
                    979:           $x can be a pure number</p></td>
                    980: 
                    981:       <td width=101 valign=top class="Normal">&nbsp; </td>
                    982: 
                    983:     </tr>
                    984: 
                    985:     <tr> 
                    986: 
                    987:       <td width=131 valign=top class="Normal"> <p>exp(x), pow(x,y), sqrt(x)</p></td>
                    988: 
                    989:       <td width=134 valign=top class="Normal"> <p>&amp;exp($x), &amp;pow($x,$y), 
                    990: 
                    991:           &amp;sqrt($x)</p></td>
                    992: 
                    993:       <td width=147 valign=top class="Normal"> <p>Exponential, power and square 
                    994: 
                    995:           root, i.e.,e<sup>x</sup>, x<sup>y</sup> and /x. $x and $y can be pure 
                    996: 
                    997:           numbers</p></td>
                    998: 
                    999:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1000: 
                   1001:     </tr>
                   1002: 
                   1003:     <tr> 
                   1004: 
                   1005:       <td width=131 valign=top class="Normal"> <p>abs(x), sgn(x)</p></td>
                   1006: 
                   1007:       <td width=134 valign=top class="Normal"> <p>&amp;abs($x), &amp;sgn($x)</p></td>
                   1008: 
                   1009:       <td width=147 valign=top class="Normal"> <p>Abs takes the absolute value 
                   1010: 
                   1011:           of x while sgn(x) returns 1, 0 or -1 depending on the value of x. For 
                   1012: 
                   1013:           x&gt;0, sgn(x) = 1, for x=0, sgn(x) = 0 and for x&lt;0, sgn(x) = -1. 
                   1014: 
                   1015:           $x can be a pure number</p></td>
                   1016: 
                   1017:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1018: 
                   1019:     </tr>
                   1020: 
                   1021:     <tr> 
                   1022: 
                   1023:       <td width=131 valign=top class="Normal"> <p>erf(x), erfc(x)</p></td>
                   1024: 
                   1025:       <td width=134 valign=top class="Normal"> <p>&amp;erf($x), &amp;erfc($x)</p></td>
                   1026: 
                   1027:       <td width=147 valign=top class="Normal"> <p>Error function.&nbsp; erf = 
                   1028: 
                   1029:           2/sqrt(pi) integral (0,x) e<sup>t-sq</sup> and <i>erfx(x)</i><span style='font-style:normal'> 
                   1030: 
                   1031:           = 1.0 - </span><i>erf(x)</i><span
                   1032: 
                   1033:   style='font-style:normal'>.&nbsp; $x can be a pure number</span></p></td>
                   1034: 
                   1035:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1036: 
                   1037:     </tr>
                   1038: 
                   1039:     <tr> 
                   1040: 
                   1041:       <td width=131 valign=top class="Normal"> <p>ceil(x), floor(x)</p></td>
                   1042: 
                   1043:       <td width=134 valign=top class="Normal"> <p>&amp;ceil($x), &amp;floor($x)</p></td>
                   1044: 
                   1045:       <td width=147 valign=top class="Normal"> <p>Ceil function returns an integer 
                   1046: 
                   1047:           rounded up whereas floor function returns and integer rounded down. 
                   1048: 
                   1049:           If x is an integer than it returns the value of the integer. $x can 
                   1050: 
                   1051:           be a pure number</p></td>
                   1052: 
                   1053:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1054: 
                   1055:     </tr>
                   1056: 
                   1057:     <tr> 
                   1058: 
                   1059:       <td width=131 valign=top class="Normal"> <p>min(...), max(...)</p></td>
                   1060: 
                   1061:       <td width=134 valign=top class="Normal"> <p>&amp;min(...), &amp;max(...)</p></td>
                   1062: 
                   1063:       <td width=147 valign=top class="Normal"> <p>Returns the minimum/ maximum 
                   1064: 
                   1065:           value of a list of arguments if the arguments are numbers. If the arguments 
                   1066: 
                   1067:           are strings then it returns a string sorted according to the ASCII codes</p></td>
                   1068: 
                   1069:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1070: 
                   1071:     </tr>
                   1072: 
                   1073:     <tr> 
                   1074: 
                   1075:       <td width=131 valign=top class="Normal"> <p>factorial(n)</p></td>
                   1076: 
                   1077:       <td width=134 valign=top class="Normal"> <p>&amp;factorial($n)</p></td>
                   1078: 
                   1079:       <td width=147 valign=top class="Normal"> <p>Argument (n) must be an integer 
                   1080: 
                   1081:           else it will round down. The largest value for n is 170. $n can be a 
                   1082: 
                   1083:           pure number</p></td>
                   1084: 
                   1085:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1086: 
                   1087:     </tr>
                   1088: 
                   1089:     <tr> 
                   1090: 
                   1091:       <td width=131 valign=top class="Normal"> <p>N%M</p></td>
                   1092: 
                   1093:       <td width=134 valign=top class="Normal"> <p>$N%$M</p></td>
                   1094: 
                   1095:       <td width=147 valign=top class="Normal"> <p>N and M are integers and returns 
                   1096: 
                   1097:           the remainder (in integer) of N/M. $N and $M can be pure numbers</p></td>
                   1098: 
                   1099:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1100: 
                   1101:     </tr>
                   1102: 
                   1103:     <tr> 
                   1104: 
                   1105:       <td width=131 valign=top class="Normal"> <p>sinh(x), cosh(x), tanh(x)</p></td>
                   1106: 
                   1107:       <td width=134 valign=top class="Normal"> <p>&amp;sinh($x), &amp;cosh($x), 
                   1108: 
                   1109:           &amp;tanh($x)</p></td>
                   1110: 
                   1111:       <td width=147 valign=top class="Normal"> <p>Hyperbolic functions. $x can 
                   1112: 
                   1113:           be a pure number</p></td>
                   1114: 
                   1115:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1116: 
                   1117:     </tr>
                   1118: 
                   1119:     <tr> 
                   1120: 
                   1121:       <td width=131 valign=top class="Normal"> <p>asinh(x), acosh(x), atanh(x)</p></td>
                   1122: 
                   1123:       <td width=134 valign=top class="Normal"> <p>&amp;asinh($x), &amp;acosh($x), 
                   1124: 
                   1125:           &amp;atanh($x)</p></td>
                   1126: 
                   1127:       <td width=147 valign=top class="Normal"> <p>Inverse hyperbolic functions. 
                   1128: 
                   1129:           $x can be a pure number</p></td>
                   1130: 
                   1131:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1132: 
                   1133:     </tr>
                   1134: 
                   1135:     <tr> 
                   1136: 
                   1137:       <td width=131 valign=top class="Normal"> <p>/DIS($x,&quot;nn&quot;)</p></td>
                   1138: 
                   1139:       <td width=134 valign=top class="Normal"> <p>&amp;format($x,&quot;nn&quot;)</p></td>
                   1140: 
                   1141:       <td width=147 valign=top class="Normal"> <p>Display or format $x as nn where 
                   1142: 
                   1143:           nn is nF or nE and n is an integer.</p></td>
                   1144: 
                   1145:       <td width=101 valign=top class="Normal"> <p>&nbsp;The difference is obvious.</p></td>
                   1146: 
                   1147:     </tr>
                   1148: 
                   1149:     <tr> 
                   1150: 
                   1151:       <td width=131 valign=top class="Normal"> <p>Not in CAPA</p></td>
                   1152: 
                   1153:       <td width=134 valign=top class="Normal"> <p>&amp;prettyprint($x,&quot;nn&quot;)</p></td>
                   1154: 
                   1155:       <td width=147 valign=top class="Normal"> <p>Display or format $x as nn where 
                   1156: 
                   1157:           nn is nF or nE and n is an integer. In E mode it will attempt to generate 
                   1158: 
                   1159:           a pretty x10^3 rather than a E3 following the number</p></td>
                   1160: 
                   1161:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1162: 
                   1163:     </tr>
                   1164: 
                   1165:     <tr> 
                   1166: 
                   1167:       <td width=131 valign=top class="Normal"> <p>roundto(x,n)</p></td>
                   1168: 
                   1169:       <td width=134 valign=top class="Normal"> <p>&amp;roundto($x,$n)</p></td>
                   1170: 
                   1171:       <td width=147 valign=top class="Normal"> <p>Rounds a real number to n decimal 
                   1172: 
                   1173:           points. $x and $n can be pure numbers</p></td>
                   1174: 
                   1175:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1176: 
                   1177:     </tr>
                   1178: 
                   1179:     <tr> 
                   1180: 
                   1181:       <td width=131 valign=top class="Normal"> <p>web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) 
                   1182: 
                   1183:           or web(a,b,c)</p></td>
                   1184: 
                   1185:       <td width=134 valign=top class="Normal"> <p>&amp;web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) 
                   1186: 
                   1187:           or &amp;web($a,$b,$c)</p></td>
                   1188: 
                   1189:       <td width=147 valign=top class="Normal"> <p>Returns either a, b or c depending 
                   1190: 
                   1191:           on the output medium. a is for plain ASCII, b for tex output and c for 
                   1192: 
                   1193:           html output</p></td>
                   1194: 
                   1195:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1196: 
                   1197:     </tr>
                   1198: 
                   1199:     <tr> 
                   1200: 
                   1201:       <td width=131 valign=top class="Normal"> <p>html(&quot;a&quot;) or html(a)</p></td>
                   1202: 
                   1203:       <td width=134 valign=top class="Normal"> <p>&amp;html(&quot;a&quot;) or 
                   1204: 
                   1205:           &amp;html($a)</p></td>
                   1206: 
                   1207:       <td width=147 valign=top class="Normal"> <p>Output only if the output mode 
                   1208: 
                   1209:           chosen is in html format</p></td>
                   1210: 
                   1211:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1212: 
                   1213:     </tr>
                   1214: 
                   1215:     <tr> 
                   1216: 
                   1217:       <td width=131 valign=top class="Normal"> <p>jn(m,x)</p></td>
                   1218: 
                   1219:       <td width=134 valign=top class="Normal"> <p>&amp;j0($x), &amp;j1($x), &amp;jn($m,$x), 
                   1220: 
                   1221:           &amp;jv($y,$x)</p></td>
                   1222: 
                   1223:       <td width=147 valign=top class="Normal"> <p>Bessel functions of the first 
                   1224: 
                   1225:           kind with orders 0, 1 and m respectively. For jn(m,x), m must be an 
                   1226: 
                   1227:           integer whereas for jv(y,x), y is real. $x can be a pure number. $m 
                   1228: 
                   1229:           must be an integer and can be a pure integer number. $y can be a pure 
                   1230: 
                   1231:           real number</p></td>
                   1232: 
                   1233:       <td width=101 valign=top class="Normal"> <p>In CAPA, j0, j1 and jn are contained 
                   1234: 
                   1235:           in one function, jn(m,x) where m takes the value of 0, 1 or 2. jv(y,x) 
                   1236: 
                   1237:           is new to LON-CAPA.</p></td>
                   1238: 
                   1239:     </tr>
                   1240: 
                   1241:     <tr> 
                   1242: 
                   1243:       <td width=131 valign=top class="Normal"> <p>yn(m,x)</p></td>
                   1244: 
                   1245:       <td width=134 valign=top class="Normal"> <p>&amp;y0($x), &amp;y1($x), &amp;yn($m,$x), 
                   1246: 
                   1247:           &amp;yv($y,$x)</p></td>
                   1248: 
                   1249:       <td width=147 valign=top class="Normal"> <p>Bessel functions of the second 
                   1250: 
                   1251:           kind with orders 0, 1 and m respectively. For yn(m,x), m must be an 
                   1252: 
                   1253:           integer whereas for yv(y,x), y is real. $x can be a pure number. $m 
                   1254: 
                   1255:           must be an integer and can be a pure integer number. $y can be a pure 
                   1256: 
                   1257:           real number</p></td>
                   1258: 
                   1259:       <td width=101 valign=top class="Normal"> <p>In CAPA, y0, y1 and yn are contained 
                   1260: 
                   1261:           in one function, yn(m,x) where m takes the value of 0, 1 or 2. yv(y,x) 
                   1262: 
                   1263:           is new to LON-CAPA.</p></td>
                   1264: 
                   1265:     </tr>
                   1266: 
                   1267:     <tr> 
                   1268: 
                   1269:       <td width=131 valign=top class="Normal"> <p>random(l,u,d)</p></td>
                   1270: 
                   1271:       <td width=134 valign=top class="Normal"> <p>&amp;random($l,$u,$d)</p></td>
                   1272: 
                   1273:       <td width=147 valign=top class="Normal"> <p>Returns a uniformly distributed 
                   1274: 
                   1275:           random number between the lower bound, l and upper bound, u in steps 
                   1276: 
                   1277:           of d. $l, $u and $d can be pure numbers</p></td>
                   1278: 
                   1279:       <td width=101 valign=top class="Normal"> <p>In CAPA, all the 3 arguments 
                   1280: 
                   1281:           must be of the same type. However, now you can mix the type</p></td>
                   1282: 
                   1283:     </tr>
                   1284: 
                   1285:     <tr> 
                   1286: 
                   1287:       <td width=131 valign=top class="Normal"> <p>choose(i,...)</p></td>
                   1288: 
                   1289:       <td width=134 valign=top class="Normal"> <p>&amp;choose($i,...)</p></td>
                   1290: 
                   1291:       <td width=147 valign=top class="Normal"> <p>Choose the ith item from the 
                   1292: 
                   1293:           argument list. i must be an integer greater than 0 and the value of 
                   1294: 
                   1295:           i should not exceed the number of items. $i can be a pure integer</p></td>
                   1296: 
                   1297:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1298: 
                   1299:     </tr>
                   1300: 
                   1301:     <tr> 
                   1302: 
                   1303:       <td width=131 valign=top class="Normal"> <p>/MAP(seed;w,x,y,z;a,b,c,d)</p></td>
                   1304: 
                   1305:       <td width=134 valign=top class="Normal"> <p>Option 1 - &amp;map($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) 
                   1306: 
                   1307:           or <br>
                   1308: 
                   1309:           Option 2 - &amp;map($seed,\@mappedArray,[$a,$b,$c,$d]) <br>
                   1310: 
                   1311:           Option 3 - @mappedArray = &amp;map($seed,[$a,$b,$c,$d]) <br>
                   1312: 
                   1313:           Option 4 - ($w,$x,$y,$z) = &amp;map($seed,\@a) <br>
                   1314: 
                   1315:           where $a='A'<br>
                   1316: 
                   1317:           $b='B'<br>
                   1318: 
                   1319:           $c='B'<br>
                   1320: 
                   1321:           $d='B'<br>
                   1322: 
                   1323:           $w, $x, $y, and $z are variables</p></td>
                   1324: 
                   1325:       <td width=147 valign=top class="Normal"> <p>Assigns to the variables $w, 
                   1326: 
                   1327:           $x, $y and $z the values of the $a, $b, $c and $c (A, B, C and D). The 
                   1328: 
                   1329:           precise value for $w .. depends on the seed. (Option 1 of calling map). 
                   1330: 
                   1331:           In option 2, the values of $a, $b .. are mapped into the array, @mappedArray. 
                   1332: 
                   1333:           The two options illustrate the different grouping. Options 3 and 4 give 
                   1334: 
                   1335:           a consistent way (with other functions) of mapping the items. For each 
                   1336: 
                   1337:           option, the group can be passed as an array, for example, [$a,$b,$c,$d] 
                   1338: 
                   1339:           =&gt; \@a.</p></td>
                   1340: 
                   1341:       <td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided 
                   1342: 
                   1343:           into three groups separated by a semicolon ;. In LON-CAPA, the separation 
                   1344: 
                   1345:           is done by using [] brackets or using an array @a. Note the backslash 
                   1346: 
                   1347:           (\) before the arguments in the second and third groups.</p></td>
                   1348: 
                   1349:     </tr>
                   1350: 
                   1351:     <tr> 
                   1352: 
                   1353:       <td width=131 valign=top class="Normal"> <p>rmap(seed;a,b,c,d;w,x,y,z)</p></td>
                   1354: 
                   1355:       <td width=134 valign=top class="Normal"> <p>Option 1 - &amp;rmap($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) 
                   1356: 
                   1357:           or <br>
                   1358: 
                   1359:           Option 2 - &amp;rmap($seed,\@rmappedArray,[$a,$b,$c,$d]) <br>
                   1360: 
                   1361:           Option 3 - @rmapped_array = &amp;rmap($seed,[$a,$b,$c,$d]) <br>
                   1362: 
                   1363:           Option 4 - ($w,$x,$y,$z) = &amp;rmap($seed,\@a) <br>
                   1364: 
                   1365:           where $a='A'<br>
                   1366: 
                   1367:           $b='B'<br>
                   1368: 
                   1369:           $c='B'<br>
                   1370: 
                   1371:           $d='B'<br>
                   1372: 
                   1373:           $w, $x, $y, and $z are variables</p></td>
                   1374: 
                   1375:       <td width=147 valign=top class="Normal"> <p>The rmap functions does the 
                   1376: 
                   1377:           reverse action of map if the same seed is used in calling map and rmap. 
                   1378: 
                   1379:         </p></td>
                   1380: 
                   1381:       <td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided 
                   1382: 
                   1383:           into three groups separated by a semicolon ;. In LON-CAPA, the separation 
                   1384: 
                   1385:           is done by using [] brackets (with create an unamed vector reference) 
                   1386: 
                   1387:           or using an array @a. Note the backslash (\) before the arguments in 
                   1388: 
                   1389:           the second and third groups (Which cause Perl to send to variable locations 
                   1390: 
                   1391:           rather than the variable values, similar to a C pointer).</p></td>
                   1392: 
                   1393:     </tr>
                   1394: 
                   1395:     <tr> 
                   1396: 
                   1397:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1398: 
                   1399:       <td width=134 valign=top class="Normal"> <p>$a=&amp;xmlparse($string) </p></td>
                   1400: 
                   1401:       <td width=147 valign=top class="Normal"> <p>Runs the internal parser over 
                   1402: 
                   1403:           the argument parsing for display. <b>Warning</b><span style='font-weight:normal'> 
                   1404: 
                   1405:           This will result in different strings in different targets. Don't use 
                   1406: 
                   1407:           the results of this function as an answer.</span></p></td>
                   1408: 
                   1409:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1410: 
                   1411:     </tr>
                   1412: 
                   1413:     <tr> 
                   1414: 
                   1415:       <td width=131 valign=top class="Normal"> <p>tex(a,b), tex(&quot;a&quot;,&quot;b&quot;)</p></td>
                   1416: 
                   1417:       <td width=134 valign=top class="Normal"> <p>&amp;tex($a,$b), &amp;tex(&quot;a&quot;,&quot;b&quot;)</p></td>
                   1418: 
                   1419:       <td width=147 valign=top class="Normal"> <p>Returns a if the output mode 
                   1420: 
                   1421:           is in tex otherwise returns b</p></td>
                   1422: 
                   1423:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1424: 
                   1425:     </tr>
                   1426: 
                   1427:     <tr> 
                   1428: 
                   1429:       <td width=131 valign=top class="Normal"> <p>var_in_tex(a)</p></td>
                   1430: 
                   1431:       <td width=134 valign=top class="Normal"> <p>&amp;var_in_tex($a)</p></td>
                   1432: 
                   1433:       <td width=147 valign=top class="Normal"> <p>Equivalent to tex(&quot;a&quot;,&quot;&quot;)</p></td>
                   1434: 
                   1435:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1436: 
                   1437:     </tr>
                   1438: 
                   1439:     <tr> 
                   1440: 
                   1441:       <td width=131 valign=top class="Normal"> <p>to_string(x), to_string(x,y)</p></td>
                   1442: 
                   1443:       <td width=134 valign=top class="Normal"> <p>&amp;to_string($x), &amp;to_string($x,$y)</p></td>
                   1444: 
                   1445:       <td width=147 valign=top class="Normal"> <p>If x is an integer, returns 
                   1446: 
                   1447:           a string. If x is real than the output is a string with format given 
                   1448: 
                   1449:           by y. For example, if x = 12.3456, &amp;to_string(x,&quot;.3F&quot;) 
                   1450: 
                   1451:           = 12.345 and &amp;to_string(x,&quot;.3E&quot;) = 1.234E+01.</p></td>
                   1452: 
                   1453:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1454: 
                   1455:     </tr>
                   1456: 
                   1457:     <tr> 
                   1458: 
                   1459:       <td width=131 valign=top class="Normal"> <p>capa_id(), class(), section(), 
                   1460: 
                   1461:           set(), problem()</p></td>
                   1462: 
                   1463:       <td width=134 valign=top class="Normal"> <p>&amp;class(), &amp;section()</p></td>
                   1464: 
                   1465:       <td width=147 valign=top class="Normal"> <p>Returns null string, class descriptive 
                   1466: 
                   1467:           name, section number, set number and null string.</p></td>
                   1468: 
                   1469:       <td width=101 valign=top class="Normal"> <p>capa_id(), set() and problem() 
                   1470: 
                   1471:           are no longer used. Currently, they return a null value.</p></td>
                   1472: 
                   1473:     </tr>
                   1474: 
                   1475:     <tr> 
                   1476: 
                   1477:       <td width=131 valign=top class="Normal"> <p>name(), student_number()</p></td>
                   1478: 
                   1479:       <td width=134 valign=top class="Normal"> <p>&amp;name(), &amp;student_number()</p></td>
                   1480: 
                   1481:       <td width=147 valign=top class="Normal"> <p>Return the full name in the 
                   1482: 
                   1483:           following format: lastname, firstname initial. Student_number returns 
                   1484: 
                   1485:           the student 9-alphanumeric string. If undefined, the functions return 
                   1486: 
                   1487:           null.</p></td>
                   1488: 
                   1489:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1490: 
                   1491:     </tr>
                   1492: 
                   1493:     <tr> 
                   1494: 
                   1495:       <td width=131 valign=top class="Normal"> <p>open_date(), due_date(), answer_date()</p></td>
                   1496: 
                   1497:       <td width=134 valign=top class="Normal"> <p>&amp;open_date(), &amp;due_date(), 
                   1498: 
                   1499:           &amp;answer_date()</p></td>
                   1500: 
                   1501:       <td width=147 valign=top class="Normal"> <p>Problem open date, due date 
                   1502: 
                   1503:           and answer date. The time is also included in 24-hr format.</p></td>
                   1504: 
                   1505:       <td width=101 valign=top class="Normal"> <p>Output format for time is changed 
                   1506: 
                   1507:           slightly. If pass noon, it displays ..pm else it displays ..am. So 23:59 
                   1508: 
                   1509:           is displayed as 11:59 pm.</p></td>
                   1510: 
                   1511:     </tr>
                   1512: 
                   1513:     <tr> 
                   1514: 
                   1515:       <td width=131 valign=top class="Normal"> <p>get_seed(), set_seed()</p></td>
                   1516: 
                   1517:       <td width=134 valign=top class="Normal"> <p>Not implemented</p></td>
                   1518: 
                   1519:       <td width=147 valign=top class="Normal"> <p>Get and set the random seed.</p></td>
                   1520: 
                   1521:       <td width=101 valign=top class="Normal">&nbsp; </td>
                   1522: 
                   1523:     </tr>
                   1524: 
                   1525:     <tr> 
                   1526: 
                   1527:       <td width=131 valign=top class="Normal"> <p>sub_string(a,b,c)</p></td>
                   1528: 
                   1529:       <td width=134 valign=top class="Normal"> <p>&amp;sub_string($a,$b,$c) <br>
                   1530: 
                   1531:           perl&nbsp; substr function. However, note the differences</p></td>
                   1532: 
                   1533:       <td width=147 valign=top class="Normal"> <p>Retrieve a portion of string 
                   1534: 
                   1535:           a starting from b and length c. For example,&nbsp; $a = &quot;Welcome 
                   1536: 
                   1537:           to LON-CAPA&quot;; $result=&amp;sub_string($a,4,4); then $result is 
                   1538: 
                   1539:           &quot;come&quot;</p></td>
                   1540: 
                   1541:       <td width=101 valign=top class="Normal"> <p>Perl intrinsic function, substr(string,b,c) 
                   1542: 
                   1543:           starts counting from 0 (as opposed to 1). In the example to the left, 
                   1544: 
                   1545:           substr($a,4,4) returns &quot;ome &quot;.</p></td>
                   1546: 
                   1547:     </tr>
                   1548: 
                   1549:     <tr> 
                   1550: 
                   1551:       <td width=131 valign=top class="Normal"> <p>array[xx]</p></td>
                   1552: 
                   1553:       <td width=134 valign=top class="Normal"> <p>@arrayname <br>
                   1554: 
                   1555:           Array is intrinsic in perl. To access a specific element use $arrayname[$n] 
                   1556: 
                   1557:           where $n is the $n+1 element since the array count starts from 0</p></td>
                   1558: 
                   1559:       <td width=147 valign=top class="Normal"> <p>&quot;xx&quot; can be a variable 
                   1560: 
                   1561:           or a calculation.</p></td>
                   1562: 
                   1563:       <td width=101 valign=top class="Normal"> <p>In LON-CAPA, an array is defined 
                   1564: 
                   1565:           by @arrayname. It is not necessary to specify the dimension of the array.&nbsp;</p></td>
                   1566: 
                   1567:     </tr>
                   1568: 
                   1569:     <tr> 
                   1570: 
                   1571:       <td width=131 valign=top class="Normal"> <p>array_moments(B,A)</p></td>
                   1572: 
                   1573:       <td width=134 valign=top class="Normal"> <p>@B=&amp;array_moments(@A)</p></td>
                   1574: 
                   1575:       <td width=147 valign=top class="Normal"> <p>Evaluates the moments of an 
                   1576: 
                   1577:           array A and place the result in array B[i] where i = 0 to 4. The contents 
                   1578: 
                   1579:           of B are as follows: B[0] = number of elements, B[1] = mean, B[2] = 
                   1580: 
                   1581:           variance, B[3] = skewness and B[4] = kurtosis.</p></td>
                   1582: 
                   1583:       <td width=101 valign=top class="Normal"> <p>In CAPA, the moments are passed 
                   1584: 
                   1585:           as an array in the first argument whereas in LON-CAPA, the array containing 
                   1586: 
                   1587:           the moments are set equal to the function.</p></td>
                   1588: 
                   1589:     </tr>
                   1590: 
                   1591:     <tr> 
                   1592: 
                   1593:       <td width=131 valign=top class="Normal"> <p>array_max(Name), array_min(Name)</p></td>
                   1594: 
                   1595:       <td width=134 valign=top class="Normal"> <p>&amp;min(@Name), &amp;max(@Name)</p></td>
                   1596: 
                   1597:       <td width=147 valign=top class="Normal"> <p>In LON-CAPA to find the maximum 
                   1598: 
                   1599:           value of an array, use &amp;max(@arrayname)&nbsp; and to find the minimum 
                   1600: 
                   1601:           value of an array, use &amp;min(@arrayname)</p></td>
                   1602: 
                   1603:       <td width=101 valign=top class="Normal"> <p>Combined with the min and max 
                   1604: 
                   1605:           functions defined earlier.</p></td>
                   1606: 
                   1607:     </tr>
                   1608: 
                   1609:     <tr> 
                   1610: 
                   1611:       <td width=131 valign=top class="Normal"> <p>init_array(Name)</p></td>
                   1612: 
                   1613:       <td width=134 valign=top class="Normal"> <p>undef @name</p></td>
                   1614: 
                   1615:       <td width=147 valign=top class="Normal"> <p>To destroy the contents of an 
                   1616: 
                   1617:           array, use</p></td>
                   1618: 
                   1619:       <td width=101 valign=top class="Normal"> <p>Use perl intrinsic undef function.</p></td>
                   1620: 
                   1621:     </tr>
                   1622: 
                   1623:     <tr> 
                   1624: 
                   1625:       <td width=131 valign=top class="Normal"> <p>random_normal (return_array,item_cnt,seed,av,std_dev)</p></td>
                   1626: 
                   1627:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_normal 
                   1628: 
                   1629:           ($item_cnt,$seed,$av,$std_dev)</p></td>
                   1630: 
                   1631:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1632: 
                   1633:           of normal distribution of average $av and standard deviation $std_dev. 
                   1634: 
                   1635:           The distribution is generated from seed $seed</p></td>
                   1636: 
                   1637:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1638: 
                   1639:           as the first argument whereas in LON-CAPA the results are set equal 
                   1640: 
                   1641:           to the function.</p></td>
                   1642: 
                   1643:     </tr>
                   1644: 
                   1645:     <tr> 
                   1646: 
                   1647:       <td width=131 valign=top class="Normal"> <p>random_beta (return_array,item_cnt,seed,aa,bb)</p></td>
                   1648: 
                   1649:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_beta 
                   1650: 
                   1651:           ($item_cnt,$seed,$aa,$bb) <br>
                   1652: 
                   1653:           NOTE: Both $aa and $bb MUST be greater than 1.0E-37.</p></td>
                   1654: 
                   1655:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1656: 
                   1657:           of beta distribution. The density of beta is: X^($aa-1) *(1-X)^($bb-1) 
                   1658: 
                   1659:           /B($aa,$bb) for 0&lt;X&lt;1.</p></td>
                   1660: 
                   1661:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1662: 
                   1663:           as the first argument whereas in LON-CAPA the results are set equal 
                   1664: 
                   1665:           to the function.</p></td>
                   1666: 
                   1667:     </tr>
                   1668: 
                   1669:     <tr> 
                   1670: 
                   1671:       <td width=131 valign=top class="Normal"> <p>random_gamma (return_array,item_cnt,seed,a,r)</p></td>
                   1672: 
                   1673:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_gamma 
                   1674: 
                   1675:           ($item_cnt,$seed,$a,$r) <br>
                   1676: 
                   1677:           NOTE: Both $a and $r MUST be positive.</p></td>
                   1678: 
                   1679:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1680: 
                   1681:           of gamma distribution. The density of gamma is: ($a**$r)/gamma($r) * 
                   1682: 
                   1683:           X**($r-1) * exp(-$a*X).</p></td>
                   1684: 
                   1685:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1686: 
                   1687:           as the first argument whereas in LON-CAPA the results are set equal 
                   1688: 
                   1689:           to the function.</p></td>
                   1690: 
                   1691:     </tr>
                   1692: 
                   1693:     <tr> 
                   1694: 
                   1695:       <td width=131 valign=top class="Normal"> <p>random_exponential (return_array,item_cnt,seed,av)</p></td>
                   1696: 
                   1697:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_exponential 
                   1698: 
                   1699:           ($item_cnt,$seed,$av) <br>
                   1700: 
                   1701:           NOTE: $av MUST be non-negative.</p></td>
                   1702: 
                   1703:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1704: 
                   1705:           of exponential distribution. </p></td>
                   1706: 
                   1707:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1708: 
                   1709:           as the first argument whereas in LON-CAPA the results are set equal 
                   1710: 
                   1711:           to the function.</p></td>
                   1712: 
                   1713:     </tr>
                   1714: 
                   1715:     <tr> 
                   1716: 
                   1717:       <td width=131 valign=top class="Normal"> <p>random_poisson (return_array,item_cnt,seed,mu)</p></td>
                   1718: 
                   1719:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_poisson 
                   1720: 
                   1721:           ($item_cnt,$seed,$mu) <br>
                   1722: 
                   1723:           NOTE: $mu MUST be non-negative.</p></td>
                   1724: 
                   1725:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1726: 
                   1727:           of poisson distribution. </p></td>
                   1728: 
                   1729:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1730: 
                   1731:           as the first argument whereas in LON-CAPA the results are set equal 
                   1732: 
                   1733:           to the function.</p></td>
                   1734: 
                   1735:     </tr>
                   1736: 
                   1737:     <tr> 
                   1738: 
                   1739:       <td width=131 valign=top class="Normal"> <p>random_chi (return_array,item_cnt,seed,df)</p></td>
                   1740: 
                   1741:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_chi 
                   1742: 
                   1743:           ($item_cnt,$seed,$df) <br>
                   1744: 
                   1745:           NOTE: $df MUST be positive.</p></td>
                   1746: 
                   1747:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1748: 
                   1749:           of chi_square distribution with $df degrees of freedom. </p></td>
                   1750: 
                   1751:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1752: 
                   1753:           as the first argument whereas in LON-CAPA the results are set equal 
                   1754: 
                   1755:           to the function.</p></td>
                   1756: 
                   1757:     </tr>
                   1758: 
                   1759:     <tr> 
                   1760: 
                   1761:       <td width=131 valign=top class="Normal"> <p>random_noncentral_chi (return_array,item_cnt,seed,df,nonc)</p></td>
                   1762: 
                   1763:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_noncentral_chi 
                   1764: 
                   1765:           ($item_cnt,$seed,$df,$nonc) <br>
                   1766: 
                   1767:           NOTE: $df MUST be at least 1 and $nonc MUST be non-negative.</p></td>
                   1768: 
                   1769:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1770: 
                   1771:           of noncentral_chi_square distribution with $df degrees of freedom and 
                   1772: 
                   1773:           noncentrality parameter $nonc. </p></td>
                   1774: 
                   1775:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
                   1776: 
                   1777:           as the first argument whereas in LON-CAPA the results are set equal 
                   1778: 
                   1779:           to the function.</p></td>
                   1780: 
                   1781:     </tr>
                   1782: 
                   1783:     <tr> 
                   1784: 
                   1785:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1786: 
                   1787:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_f 
                   1788: 
                   1789:           ($item_cnt,$seed,$dfn,$dfd) <br>
                   1790: 
                   1791:           NOTE: Both $dfn and $dfd MUST be positive.</p></td>
                   1792: 
                   1793:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1794: 
                   1795:           of F (variance ratio) distribution with degrees of freedom $dfn (numerator) 
                   1796: 
                   1797:           and $dfd (denominator). </p></td>
                   1798: 
                   1799:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1800: 
                   1801:     </tr>
                   1802: 
                   1803:     <tr> 
                   1804: 
                   1805:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1806: 
                   1807:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_noncentral_f 
                   1808: 
                   1809:           ($item_cnt,$seed,$dfn,$dfd,$nonc) <br>
                   1810: 
                   1811:           NOTE: $dfn must be at least 1, $dfd MUST be positive, and $nonc must 
                   1812: 
                   1813:           be non-negative.</p></td>
                   1814: 
                   1815:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1816: 
                   1817:           of noncentral F (variance ratio) distribution with degrees of freedom 
                   1818: 
                   1819:           $dfn (numerator) and $dfd (denominator). $nonc is the noncentrality 
                   1820: 
                   1821:           parameter. </p></td>
                   1822: 
                   1823:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1824: 
                   1825:     </tr>
                   1826: 
                   1827:     <tr> 
                   1828: 
                   1829:       <td width=131 valign=top class="Normal"> <p>NOT DOCUMENTED IN CAPA</p></td>
                   1830: 
                   1831:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_multivariate_normal 
                   1832: 
                   1833:           ($item_cnt,$seed,\@mean,\@covar) <br>
                   1834: 
                   1835:           NOTE: @mean should be of length p array of real numbers. @covar should 
                   1836: 
                   1837:           be a length p array of references to length p arrays of real numbers 
                   1838: 
                   1839:           (i.e. a p by p matrix.</p></td>
                   1840: 
                   1841:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1842: 
                   1843:           of multivariate_normal distribution with mean vector @mean and variance-covariance 
                   1844: 
                   1845:           matrix. </p></td>
                   1846: 
                   1847:       <td width=101 valign=top class="Normal"> <p>Note the backslash before the 
                   1848: 
                   1849:           @mean and @covar arrays.</p></td>
                   1850: 
                   1851:     </tr>
                   1852: 
                   1853:     <tr> 
                   1854: 
                   1855:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1856: 
                   1857:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_multinomial 
                   1858: 
                   1859:           ($item_cnt,$seed,@p) <br>
                   1860: 
                   1861:           NOTE: $item_cnt is rounded with int() and the result must be non-negative. 
                   1862: 
                   1863:           The number of elements in @p must be at least 2.</p></td>
                   1864: 
                   1865:       <td width=147 valign=top class="Normal"> <p>Returns single observation from 
                   1866: 
                   1867:           multinomial distribution with $item_cnt events classified into as many 
                   1868: 
                   1869:           categories as the length of @p. The probability of an event being classified 
                   1870: 
                   1871:           into category i is given by ith element of @p. The observation is an 
                   1872: 
                   1873:           array with length equal to @p, so when called in a scalar context it 
                   1874: 
                   1875:           returns the length of @p. The sum of the elements of the obervation 
                   1876: 
                   1877:           is equal to $item_cnt.</p></td>
                   1878: 
                   1879:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1880: 
                   1881:     </tr>
                   1882: 
                   1883:     <tr> 
                   1884: 
                   1885:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1886: 
                   1887:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_permutation 
                   1888: 
                   1889:           ($item_cnt,@array) </p></td>
                   1890: 
                   1891:       <td width=147 valign=top class="Normal"> <p>Returns @array randomly permuted.</p></td>
                   1892: 
                   1893:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1894: 
                   1895:     </tr>
                   1896: 
                   1897:     <tr> 
                   1898: 
                   1899:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1900: 
                   1901:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_uniform 
                   1902: 
                   1903:           ($item_cnt,$seed,$low,$high) <br>
                   1904: 
                   1905:           NOTE: $low must be less than or equal to $high.</p></td>
                   1906: 
                   1907:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1908: 
                   1909:           from a uniform distribution. </p></td>
                   1910: 
                   1911:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1912: 
                   1913:     </tr>
                   1914: 
                   1915:     <tr> 
                   1916: 
                   1917:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1918: 
                   1919:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_uniform_integer 
                   1920: 
                   1921:           ($item_cnt,$seed,$low,$high) <br>
                   1922: 
                   1923:           NOTE: $low and $high are both passed through int(). $low must be less 
                   1924: 
                   1925:           than or equal to $high.</p></td>
                   1926: 
                   1927:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1928: 
                   1929:           from a uniform distribution in integers. </p></td>
                   1930: 
                   1931:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1932: 
                   1933:     </tr>
                   1934: 
                   1935:     <tr> 
                   1936: 
                   1937:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1938: 
                   1939:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_binomial 
                   1940: 
                   1941:           ($item_cnt,$seed,$nt,$p) <br>
                   1942: 
                   1943:           NOTE: $nt is rounded using int() and the result must be non-negative. 
                   1944: 
                   1945:           $p must be between 0 and 1 inclusive.</p></td>
                   1946: 
                   1947:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
                   1948: 
                   1949:           from the binomial distribution with $nt trials and the probabilty of 
                   1950: 
                   1951:           an event in each trial is $p. </p></td>
                   1952: 
                   1953:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1954: 
                   1955:     </tr>
                   1956: 
                   1957:     <tr> 
                   1958: 
                   1959:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
                   1960: 
                   1961:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_negative_binomial 
                   1962: 
                   1963:           ($item_cnt,$seed,$ne,$p) <br>
                   1964: 
                   1965:           NOTE: $ne is rounded using int() and the result must be positive. $p 
                   1966: 
                   1967:           must be between 0 and 1 exclusive.</p></td>
                   1968: 
                   1969:       <td width=147 valign=top class="Normal"> <p>Generate an array of $item_cnt 
                   1970: 
                   1971:           outcomes generated from negative binomial distribution with $ne events 
                   1972: 
                   1973:           and the probabilty of an event in each trial is $p. </p></td>
                   1974: 
                   1975:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
                   1976: 
                   1977:     </tr>
                   1978: 
                   1979:   </table>
                   1980: 
                   1981:   <h3><a name="_Toc421867130">&lt;script&gt; Variables</a></h3>
                   1982: 
                   1983:   <ul type=disc>
                   1984: 
                   1985:     <li>$external::target - set to the current target the xml parser is parsing 
                   1986: 
                   1987:       for </li>
                   1988: 
                   1989:     <li>$external::part - set to the <i>id</i><span style='font-style:normal'> 
                   1990: 
                   1991:       of the current problem &lt;part&gt;; zero if there are no &lt;part&gt; </span></li>
                   1992: 
                   1993:     <li>$external::gradestatus - set to the value of the current resource.partid.solved 
                   1994: 
                   1995:       value </li>
                   1996: 
                   1997:     <li>$external::datestatus - set to the current status of the clock either 
                   1998: 
                   1999:       CLOSED, CAN_ANSWER, CANNOT_ANSWER, SHOW_ANSWER, or UNCHECKEDOUT </li>
                   2000: 
                   2001:     <li>$external::randomseed - set to the number that was used to seed the random 
                   2002: 
                   2003:       number generator </li>
                   2004: 
                   2005:     <li>$pi - set to PI </li>
                   2006: 
                   2007:     <li>$rad2deg - converts radians to degrees </li>
                   2008: 
                   2009:     <li>$deg2rad - converts degrees to radians </li>
                   2010: 
                   2011:   </ul>
                   2012: 
                   2013:   <h3><a name="_Toc421867131">Form internals</a> </h3>
                   2014: 
                   2015:   <p>Form elements used for homework editing/response </p>
                   2016: 
                   2017:   <p>the form is named lonhomework </p>
                   2018: 
                   2019:   <h3><a name="_Toc421867132">Viewing a problem (either CSTR or RES space)</a></h3>
                   2020: 
                   2021:   <ul type=disc>
                   2022: 
                   2023:     <li>grade_target, grade_username, grade_domain, grade_symb - the vaules take 
                   2024: 
1.3     ! albertel 2025:       precedence over the the normal env settings of these, use &amp;Apache::lonxml::whichuser() 
1.2       bowersj2 2026: 
                   2027:       to get back the correct vaues of the items </li>
                   2028: 
                   2029:     <li>HWVAL_response:number - the name of the input elements for each response. 
                   2030: 
                   2031:       The response is the response's ID, and the :number part exists only for 
                   2032: 
                   2033:       response with multiple foils, and is a unique number in order of the submission 
                   2034: 
                   2035:     </li>
                   2036: 
                   2037:     <li>changerandseed - the 'Change' button, only exists right after the Change 
                   2038: 
                   2039:       button is clicked </li>
                   2040: 
                   2041:     <li>problemmode - in CSTR, it is either 'View','Edit','EditXML' or 'Analyze' 
                   2042: 
                   2043:       depending on the desired view </li>
                   2044: 
                   2045:     <li>rndseed - the currently requested random seed </li>
                   2046: 
                   2047:     <li>showallfoils - if it exists, and we are in CSTR space, the problem should 
                   2048: 
                   2049:       ignore &lt;conceptgroup&gt; and the response's max setting and show all 
                   2050: 
                   2051:       possible foils </li>
                   2052: 
                   2053:     <li>submit - the name of the Submit button </li>
                   2054: 
                   2055:     <li>submitted - a hidden form parameter that can be used to tell if the student 
                   2056: 
                   2057:       has submitted answers or not, if it is set, there should be answers to grade. 
                   2058: 
                   2059:     </li>
                   2060: 
                   2061:   </ul>
                   2062: 
                   2063:   <h3><a name="_Toc421867133">Editing a problem (Edit mode)</a></h3>
                   2064: 
                   2065:   <p>tagdepth referes to the current value of the xmlparsers tagdepth couter ($Apache::lonxml::currentdepth)</p>
                   2066: 
                   2067:   <p>Note: the file edit.pm has many helper functions for creating the standard 
                   2068: 
                   2069:     elements for editing a tag and it's attributes, all of those functions follow 
                   2070: 
                   2071:     these conventions </p>
                   2072: 
                   2073:   <ul type=disc>
                   2074: 
                   2075:     <li>tagdepth_argname - I.E. 1_3.max, a parameter editing value, max is the 
                   2076: 
                   2077:       name of the parameter and it is for the third tag inside the first tag </li>
                   2078: 
                   2079:     <li>delete_tagdepth - if set to yes, delete tag tagdepth and all tags inside 
                   2080: 
                   2081:       of it </li>
                   2082: 
                   2083:     <li>homework_edit_tagdepth - used by both &amp;Apache::edit::editline and 
                   2084: 
                   2085:       &amp;Apache::edit::editfield for the &lt;textarea&gt; and &lt;input&gt; 
                   2086: 
                   2087:       form elements they create </li>
                   2088: 
                   2089:     <li>insert_tagdepth - used to request an tag insert, it is set to the id number 
                   2090: 
                   2091:       of the requested tag in the %Apache::lonxml::insertlist </li>
                   2092: 
                   2093:   </ul>
                   2094: 
                   2095:   <ul type=disc>
                   2096: 
                   2097:     <li> &nbsp; </li>
                   2098: 
                   2099:   </ul>
                   2100: 
                   2101:   <h3><a name="_Toc421867134">Symbs</a></h3>
                   2102: 
                   2103:   <p>To identify a specific instance of a resource, LON-CAPA uses symbols or Òsymbs.Ó 
                   2104: 
                   2105:     These identifiers are built from the URL of the map, the resource number of 
                   2106: 
                   2107:     the resource in the map, and the URL of the resource itself. The latter is 
                   2108: 
                   2109:     somewhat redundant, but might help if maps change.</p>
                   2110: 
                   2111:   <p>An example is</p>
                   2112: 
                   2113:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;msu/korte/parts/part1.sequence___19___msu/korte/tests/part12.problem</span></p>
                   2114: 
                   2115:   <p class=MsoHeader>The respective map entry is</p>
                   2116: 
                   2117:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;&lt;resource 
                   2118: 
                   2119:     id=&quot;19&quot; src=&quot;/res/msu/korte/tests/part12.problem&quot;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2120: 
                   2121:     </span></p>
                   2122: 
                   2123:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp; title=&quot;Problem 
                   2124: 
                   2125:     2&quot;&gt;</span></p>
                   2126: 
                   2127:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;&lt;/resource&gt;</span></p>
                   2128: 
                   2129:   <p class=MsoHeader>Symbs are used by the random number generator, as well as 
                   2130: 
                   2131:     to store and restore data specific to a certain instance of for example a 
                   2132: 
                   2133:     problem.</p>
                   2134: 
                   2135:   <h3><a name="_Toc421867135">Store / Restore</a></h3>
                   2136: 
                   2137:   <p><span style='color:black'>2 important functions in lonnet.pm are </span><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore()</span><span
                   2138: 
                   2139: style='color:black'> and </span><span style='font-family:"Courier New";
                   2140: 
                   2141: color:black'>&amp;Apache::lonnet:restore()</span><span style='color:black'> (and 
                   2142: 
                   2143:     </span><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::store()</span><span
                   2144: 
                   2145: style='color:black'>, which is is the non-critical message twin of </span><span
                   2146: 
                   2147: style='font-family:"Courier New";color:black'>cstore</span><span
                   2148: 
                   2149: style='color:black'>). These functions are for handlers to store a perl hash to 
                   2150: 
                   2151:     a userÕs permanent data space in an easy manner, and to retrieve it again 
                   2152: 
                   2153:     on another call. It is expected that a handler would use this once at the 
                   2154: 
                   2155:     beginning to retrieve data, and then again once at the end to send only the 
                   2156: 
                   2157:     new data back. </span></p>
                   2158: 
                   2159:   <p><span style='color:black'>The data is stored in the userÕs data directory 
                   2160: 
                   2161:     on the userÕs homeserver under the ID of the course.</span></p>
                   2162: 
                   2163:   <p><span style='color:black'>The hash that is returned by </span><span
                   2164: 
                   2165: style='font-family:"Courier New";color:black'>restore</span><span
                   2166: 
                   2167: style='color:black'> will have all of the previous value for all of the elements 
                   2168: 
                   2169:     of the hash. </span></p>
                   2170: 
                   2171:   <p><span style='color:black'>Example: </span></p>
                   2172: 
                   2173:   <p><span style='font-family:"Courier New";color:black'>#creating a hash</span></p>
                   2174: 
                   2175:   <p><span style='font-family:"Courier New";color:black'>my %hash;</span></p>
                   2176: 
                   2177:   <p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='bar';</span></p>
                   2178: 
                   2179:   <p><span style='font-family:"Courier New";color:black'>#storing it</span></p>
                   2180: 
                   2181:   <p><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore(\%hash);</span></p>
                   2182: 
                   2183:   <p><span style='font-family:"Courier New";color:black'>#changing a value </span></p>
                   2184: 
                   2185:   <p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='notbar';</span></p>
                   2186: 
                   2187:   <p><span style='font-family:"Courier New";color:black'>#adding a new value</span></p>
                   2188: 
                   2189:   <p><span style='font-family:"Courier New";color:black'>$hash{'bar'}='foo';</span></p>
                   2190: 
                   2191:   <p><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore(\%hash);</span></p>
                   2192: 
                   2193:   <p><span style='font-family:"Courier New";color:black'>#retrieving the hash</span></p>
                   2194: 
                   2195:   <p><span style='font-family:"Courier New";color:black'>my %history=&amp;Apache::lonnet::restore();</span></p>
                   2196: 
                   2197:   <p><span style='font-family:"Courier New";color:black'>#print the hash</span></p>
                   2198: 
                   2199:   <p><span style='font-family:"Courier New";color:black'>foreach my $key (sort(keys(%history))) 
                   2200: 
                   2201:     {</span></p>
                   2202: 
                   2203:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; print(&quot;\%history{$key} 
                   2204: 
                   2205:     = $history{$key}&quot;);</span></p>
                   2206: 
                   2207:   <p><span style='font-family:"Courier New";color:black'>}</span></p>
                   2208: 
                   2209:   <p><span style='color:black'>Will print out: </span></p>
                   2210: 
                   2211:   <p><span style='font-family:"Courier New";color:black'>%history{1:foo} = bar</span></p>
                   2212: 
                   2213:   <p><span style='font-family:"Courier New";color:black'>%history{1:keys} = foo:timestamp</span></p>
                   2214: 
                   2215:   <p><span style='font-family:"Courier New";color:black'>%history{1:timestamp} 
                   2216: 
                   2217:     = 990455579</span></p>
                   2218: 
                   2219:   <p><span style='font-family:"Courier New";color:black'>%history{2:bar} = foo</span></p>
                   2220: 
                   2221:   <p><span style='font-family:"Courier New";color:black'>%history{2:foo} = notbar</span></p>
                   2222: 
                   2223:   <p><span style='font-family:"Courier New";color:black'>%history{2:keys} = foo:bar:timestamp</span></p>
                   2224: 
                   2225:   <p><span style='font-family:"Courier New";color:black'>%history{2:timestamp} 
                   2226: 
                   2227:     = 990455580</span></p>
                   2228: 
                   2229:   <p><span style='font-family:"Courier New";color:black'>%history{bar} = foo</span></p>
                   2230: 
                   2231:   <p><span style='font-family:"Courier New";color:black'>%history{foo} = notbar</span></p>
                   2232: 
                   2233:   <p><span style='font-family:"Courier New";color:black'>%history{timestamp} = 
                   2234: 
                   2235:     990455580</span></p>
                   2236: 
                   2237:   <p><span style='font-family:"Courier New";color:black'>%history{version} = 2</span></p>
                   2238: 
                   2239:   <p><span style='color:black'>Note that the special hash entries <i>keys</i></span><span style='color:black'>, 
                   2240: 
                   2241:     <i>version</i></span><span
                   2242: 
                   2243: style='color:black'> and <i>timestamp</i></span><span style='color:black'> were 
                   2244: 
                   2245:     added to the hash. <i>version</i></span><span style='color:black'> will be 
                   2246: 
                   2247:     equal to the total number of versions of the data that have been stored. The 
                   2248: 
                   2249:     <i>timestamp</i></span><span
                   2250: 
                   2251: style='color:black'> attribute will be the UNIX time the hash was stored. <i>keys</i></span><span
                   2252: 
                   2253: style='color:black'> is available in every historical section to list which keys 
                   2254: 
                   2255:     were added or changed at a specific historical revision of a hash. </span></p>
                   2256: 
                   2257:   <p><span style='color:black'><b>Warning</b></span><span
                   2258: 
                   2259: style='color:black'> do not store the hash that restore returns directly. This 
                   2260: 
                   2261:     will cause a mess since it will restore the historical keys as if the were 
                   2262: 
                   2263:     new keys. I.E. </span><span style='font-family:"Courier New";color:black'>1:foo</span><span
                   2264: 
                   2265: style='color:black'> will become </span><span style='font-family:"Courier New";
                   2266: 
                   2267: color:black'>1:1:foo</span><span style='color:black'> etc. </span></p>
                   2268: 
                   2269:   <p><span style='color:black'><b>Calling convention: </b></span></p>
                   2270: 
                   2271:   <p><span style='font-size:8.0pt;font-family:"Courier New";
                   2272: 
                   2273: color:black'>&nbsp; my %record=&amp;Apache::lonnet::restore($symb,$courseid,$domain,$uname,$home);</span></p>
                   2274: 
                   2275:   <p><span style='font-size:8.0pt;font-family:"Courier New";
                   2276: 
                   2277: color:black'>&nbsp; &amp;Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$uname,$home);</span></p>
                   2278: 
                   2279:   <p><span style='color:black'><b>Arguments (only %newrecord is required the rest 
                   2280: 
                   2281:     are somewhat optional, read the details): </b></span></p>
                   2282: 
                   2283:   <p> <span style='font-family:Symbol;
                   2284: 
                   2285: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2286: 
                   2287:     </span></span> <span style='color:black'><i>$symb</i></span><span
                   2288: 
                   2289: style='color:black'> - a string containing the internal name of the specific instance 
                   2290: 
                   2291:     of a resource. Usually this value can be gotten from </span><span
                   2292: 
                   2293: style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::symbread($filename)</span><span
                   2294: 
                   2295: style='color:black'>. If the argument is blank, it will attempt to use </span><span
                   2296: 
                   2297: style='font-family:"Courier New";color:black'>symbread()</span><span
                   2298: 
                   2299: style='color:black'> for it. If the result is ambiguous store/restore will fail. 
                   2300: 
                   2301:     </span></p>
                   2302: 
                   2303:   <p> <span style='font-family:Symbol;
                   2304: 
                   2305: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2306: 
                   2307:     </span></span> <span style='color:black'><i>$courseid</i></span><span
                   2308: 
                   2309: style='color:black'> - the internal name for a course, usually found in </span><span
                   2310: 
1.3     ! albertel 2311: style='font-family:"Courier New";color:black'>$env{'request.course.id'}</span><span
1.2       bowersj2 2312: 
                   2313: style='color:black'> which is what will be looked at if no value is passed to 
                   2314: 
                   2315:     the functions. </span></p>
                   2316: 
                   2317:   <p> <span style='font-family:Symbol;
                   2318: 
                   2319: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2320: 
                   2321:     </span></span> <span style='color:black'><i>$domain</i></span><span
                   2322: 
                   2323: style='color:black'> - the domain that the user belongs to, usually found in </span><span
                   2324: 
1.3     ! albertel 2325: style='font-family:"Courier New";color:black'>$env{'user.domain'}</span><span
1.2       bowersj2 2326: 
                   2327: style='color:black'> which is what will be looked at if no value is passed to 
                   2328: 
                   2329:     the functions. </span></p>
                   2330: 
                   2331:   <p> <span style='font-family:Symbol;
                   2332: 
                   2333: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2334: 
                   2335:     </span></span> <span style='color:black'><i>$uname</i></span><span
                   2336: 
                   2337: style='color:black'> - the login name for the user, usually found in </span><span
                   2338: 
1.3     ! albertel 2339: style='font-family:"Courier New";color:black'>$env{'user.name'}</span><span
1.2       bowersj2 2340: 
                   2341: style='color:black'> which is what will be looked at if no value is passed to 
                   2342: 
                   2343:     the functions. </span></p>
                   2344: 
                   2345:   <p> <span style='font-family:Symbol;
                   2346: 
                   2347: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2348: 
                   2349:     </span></span> <span style='color:black'><i>$home</i></span><span
                   2350: 
                   2351: style='color:black'> - the homeserver for the user, usually found in </span><span
                   2352: 
1.3     ! albertel 2353: style='font-family:"Courier New";color:black'>$env{'user.home'}</span><span
1.2       bowersj2 2354: 
                   2355: style='color:black'> but can be easily gotten from a domain and name through </span><span
                   2356: 
                   2357: style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::homeserver($uname,$domain)</span><span
                   2358: 
1.3     ! albertel 2359: style='color:black'>. If no value is passed to store/restore the value in %env 
1.2       bowersj2 2360: 
                   2361:     will be used. </span></p>
                   2362: 
                   2363:   <p> <span style='font-family:Symbol;
                   2364: 
                   2365: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2366: 
                   2367:     </span></span> <span style='color:black'><i>%newrecord</i></span><span
                   2368: 
                   2369: style='color:black'> - the hash to store being passed by reference </span></p>
                   2370: 
                   2371:   <p><span style='color:black'><b>Return values: </b></span></p>
                   2372: 
                   2373:   <p> <span style='font-family:Symbol;
                   2374: 
                   2375: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2376: 
                   2377:     </span></span> <span style='color:black'><i>an empty string</i></span><span
                   2378: 
                   2379: style='color:black'> - the function was unable to determine exactly where to store 
                   2380: 
                   2381:     or restore from. At least one of the &quot;optional&quot; arguments was unable 
                   2382: 
                   2383:     to be determined. </span></p>
                   2384: 
                   2385:   <p> <span style='font-family:Symbol;
                   2386: 
                   2387: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2388: 
                   2389:     </span></span> <span style='color:black'><i>a hash</i></span><span
                   2390: 
                   2391: style='color:black'> - restore successfully read a old hash for this specific 
                   2392: 
                   2393:     user / resource instance. </span></p>
                   2394: 
                   2395:   <p> <span style='font-family:Symbol;
                   2396: 
                   2397: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2398: 
                   2399:     </span></span> <span style='color:black'><i>no_such_host</i></span><span
                   2400: 
                   2401: style='color:black'> - the <i>$home</i></span><span style='color:black'> specfied 
                   2402: 
                   2403:     desn't exist in the network. </span></p>
                   2404: 
                   2405:   <p> <span style='font-family:Symbol;
                   2406: 
                   2407: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2408: 
                   2409:     </span></span> <span style='color:black'><i>con_delayed</i></span><span
                   2410: 
                   2411: style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable 
                   2412: 
                   2413:     at this time. The store will be delayed until it is again available. </span></p>
                   2414: 
                   2415:   <p> <span style='font-family:Symbol;
                   2416: 
                   2417: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2418: 
                   2419:     </span></span> <span style='color:black'><i>con_failed</i></span><span
                   2420: 
                   2421: style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable 
                   2422: 
                   2423:     at this time and store was unable to delay the store until a later time. The 
                   2424: 
                   2425:     store failed. </span></p>
                   2426: 
                   2427:   <p> <span style='font-family:Symbol;
                   2428: 
                   2429: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2430: 
                   2431:     </span></span> <span style='color:black'><i>ok</i></span><span
                   2432: 
                   2433: style='color:black'> - the store completed succesfully </span></p>
                   2434: 
                   2435:   <p> <span style='font-family:Symbol;
                   2436: 
                   2437: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2438: 
                   2439:     </span></span> <span style='color:black'><i>error:</i></span><span
                   2440: 
                   2441: style='color:black'> - remote server failied to store or restore the reason follows 
                   2442: 
                   2443:     the </span><span style='font-family:"Courier New";color:black'>:</span><span
                   2444: 
                   2445: style='color:black'> </span></p>
                   2446: 
                   2447:   <h3><a name="_Toc421867136">Mandatory Homework Data</a></h3>
                   2448: 
                   2449:   <pre>&nbsp;</pre>
                   2450: 
                   2451:   <pre><span
                   2452: 
                   2453: style='font-size:9.0pt'>&lt;Provided by &amp;EXT() and set external to the resource, required&gt;</span></pre>
                   2454: 
                   2455:   <pre><span
                   2456: 
                   2457: style='font-size:9.0pt'>resource.partid.opendate&nbsp;&nbsp; #unix time of when the local machine should let the</span></pre>
                   2458: 
                   2459:   <pre><span
                   2460: 
                   2461: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #student in</span></pre>
                   2462: 
                   2463:   <pre><span
                   2464: 
                   2465: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2466: 
                   2467:   <pre><span
                   2468: 
                   2469: style='font-size:9.0pt'>resource.partid.duedate&nbsp;&nbsp;&nbsp; #unix time of when the local machine should stop</span></pre>
                   2470: 
                   2471:   <pre><span
                   2472: 
                   2473: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #accepting answers</span></pre>
                   2474: 
                   2475:   <pre><span
                   2476: 
                   2477: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2478: 
                   2479:   <pre><span
                   2480: 
                   2481: style='font-size:9.0pt'>resource.partid.answerdate #unix time of when the local machine should</span></pre>
                   2482: 
                   2483:   <pre><span
                   2484: 
                   2485: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #provide the correct answer to the student</span></pre>
                   2486: 
                   2487:   <pre><span
                   2488: 
                   2489: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2490: 
                   2491:   <pre><span
                   2492: 
                   2493: style='font-size:9.0pt'>resource.partid.weight&nbsp;&nbsp;&nbsp;&nbsp; # points the problem is worth</span></pre>
                   2494: 
                   2495:   <pre><span
                   2496: 
                   2497: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2498: 
                   2499:   <pre><span
                   2500: 
                   2501: style='font-size:9.0pt'>resource.partid.maxtries&nbsp;&nbsp; # maximum number of attempts the student can have</span></pre>
                   2502: 
                   2503:   <pre><span
                   2504: 
                   2505: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2506: 
                   2507:   <pre><span
                   2508: 
                   2509: style='font-size:9.0pt'>resource.partid.type&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;# type of problem homework can be:</span></pre>
                   2510: 
                   2511:   <pre><span
                   2512: 
                   2513: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # homework - randomized, graded, stored with </span></pre>
                   2514: 
                   2515:   <pre><span
                   2516: 
                   2517: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, full feeback</span></pre>
                   2518: 
                   2519:   <pre><span
                   2520: 
                   2521: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # exam - randomized, graded, stored with </span></pre>
                   2522: 
                   2523:   <pre><span
                   2524: 
                   2525: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, minimal feedback</span></pre>
                   2526: 
                   2527:   <pre><span
                   2528: 
                   2529: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # form - unrandomized, ungraded, stored with </span></pre>
                   2530: 
                   2531:   <pre><span
                   2532: 
                   2533: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specified user, full feedback</span></pre>
                   2534: 
                   2535:   <pre><span
                   2536: 
                   2537: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # survey - unrandomized, ungraded, stored with </span></pre>
                   2538: 
                   2539:   <pre><span
                   2540: 
                   2541: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, full feedback</span></pre>
                   2542: 
                   2543:   <pre><span
                   2544: 
                   2545: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2546: 
                   2547:   <pre><span
                   2548: 
                   2549: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2550: 
                   2551:   <pre><span
                   2552: 
                   2553: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2554: 
                   2555:   <pre><span
                   2556: 
                   2557: style='font-size:9.0pt'>&lt;numerical/formula/response needed: (has a default if nonexistant)&gt;</span></pre>
                   2558: 
                   2559:   <pre><span
                   2560: 
                   2561: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2562: 
                   2563:   <pre><span
                   2564: 
                   2565: style='font-size:9.0pt'>resource.partid.responseid.tol&nbsp;&nbsp; # lots of possibilities here</span></pre>
                   2566: 
                   2567:   <pre><span
                   2568: 
                   2569: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # percentage, range (inclusive and exclusive),</span></pre>
                   2570: 
                   2571:   <pre><span
                   2572: 
                   2573: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; # variable name, etc</span></pre>
                   2574: 
                   2575:   <pre><span
                   2576: 
                   2577: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 3%</span></pre>
                   2578: 
                   2579:   <pre><span
                   2580: 
                   2581: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 0.5</span></pre>
                   2582: 
                   2583:   <pre><span
                   2584: 
                   2585: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # .05+</span></pre>
                   2586: 
                   2587:   <pre><span
                   2588: 
                   2589: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 3%+</span></pre>
                   2590: 
                   2591:   <pre><span
                   2592: 
                   2593: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 0.5+,.005</span></pre>
                   2594: 
                   2595:   <pre><span
                   2596: 
                   2597: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2598: 
                   2599:   <pre><span
                   2600: 
                   2601: style='font-size:9.0pt'>resource.partid.responseid.sig&nbsp; # one or two comma sepearted integers,&nbsp;&nbsp;&nbsp; </span></pre>
                   2602: 
                   2603:   <pre><span
                   2604: 
                   2605: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# specifying the number of significatn figures</span></pre>
                   2606: 
                   2607:   <pre><span
                   2608: 
                   2609: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # a student must use</span></pre>
                   2610: 
                   2611:   <pre><span
                   2612: 
                   2613: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2614: 
                   2615:   <pre><span
                   2616: 
                   2617: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2618: 
                   2619:   <pre><span
                   2620: 
                   2621: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2622: 
                   2623:   <pre><span
                   2624: 
                   2625: style='font-size:9.0pt'>&lt;Problem sets using cstore (required):&gt;</span></pre>
                   2626: 
                   2627:   <pre><span
                   2628: 
                   2629: style='font-size:9.0pt'>resource.partid.solved # if not set, problem yet to be viewed</span></pre>
                   2630: 
                   2631:   <pre><span
                   2632: 
                   2633: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # incorrect_attempted == incorrect and attempted</span></pre>
                   2634: 
                   2635:   <pre><span
                   2636: 
                   2637: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # correct_by_student == correct by student work</span></pre>
                   2638: 
                   2639:   <pre><span
                   2640: 
                   2641: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # correct_by_override == correct, instructor override</span></pre>
                   2642: 
                   2643:   <pre><span
                   2644: 
                   2645: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # incorrect_by_override == incorrect, instructor override</span></pre>
                   2646: 
                   2647:   <pre><span
                   2648: 
                   2649: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # excused == excused, problem no longer counts for student</span></pre>
                   2650: 
                   2651:   <pre><span
                   2652: 
                   2653: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # '' (empty) == not attempted</span></pre>
                   2654: 
                   2655:   <pre><span
                   2656: 
                   2657: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ungraded_attempted == an ungraded answer has been</span></pre>
                   2658: 
                   2659:   <pre><span
                   2660: 
                   2661: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sumbitted and stored</span></pre>
                   2662: 
                   2663:   <pre><span
                   2664: 
                   2665: style='font-size:9.0pt'>resource.partid.tries&nbsp; # positive integer of number of unsuccessful attempts</span></pre>
                   2666: 
                   2667:   <pre><span
                   2668: 
                   2669: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # made, malformed answers don't count if feedback is</span></pre>
                   2670: 
                   2671:   <pre><span
                   2672: 
                   2673: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # on</span></pre>
                   2674: 
                   2675:   <pre><span
                   2676: 
                   2677: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2678: 
                   2679:   <pre><span
                   2680: 
                   2681: style='font-size:9.0pt'>resource.partid.awarded # float between 0 and 1, percentage of</span></pre>
                   2682: 
                   2683:   <pre><span
                   2684: 
                   2685: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# resource.weight that the stundent earned.</span></pre>
                   2686: 
                   2687:   <pre><span
                   2688: 
                   2689: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2690: 
                   2691:   <pre><span
                   2692: 
                   2693: style='font-size:9.0pt'>resource.partid.award # final detailed award that was applied to the entire</span></pre>
                   2694: 
                   2695:   <pre><span
                   2696: 
                   2697: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # part of the question, check awarddetail below for</span></pre>
                   2698: 
                   2699:   <pre><span
                   2700: 
                   2701: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # possibilities</span></pre>
                   2702: 
                   2703:   <pre><span
                   2704: 
                   2705: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2706: 
                   2707:   <pre><span
                   2708: 
                   2709: style='font-size:9.0pt'>resource.partid.previous # boolean, is this submission a previous submission</span></pre>
                   2710: 
                   2711:   <pre><span
                   2712: 
                   2713: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2714: 
                   2715:   <pre><span
                   2716: 
                   2717: style='font-size:9.0pt'>resource.partid.responseid.submissons</span></pre>
                   2718: 
                   2719:   <pre><span
                   2720: 
                   2721: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the student submitted string for the part.response</span></pre>
                   2722: 
                   2723:   <pre><span
                   2724: 
                   2725: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2726: 
                   2727:   <pre><span
                   2728: 
                   2729: style='font-size:9.0pt'>resource.partid.responseid.awarddetail</span></pre>
                   2730: 
                   2731:   <pre><span
                   2732: 
                   2733: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list of all of the results of grading the submissions</span></pre>
                   2734: 
                   2735:   <pre><span
                   2736: 
                   2737: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # in detailed form of the specific failure</span></pre>
                   2738: 
                   2739:   <pre><span
                   2740: 
                   2741: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #Possible values:</span></pre>
                   2742: 
                   2743:   <pre><span
                   2744: 
                   2745: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # EXACT_ANS, APPROX_ANS : student is correct</span></pre>
                   2746: 
                   2747:   <pre><span
                   2748: 
                   2749: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NO_RESPONSE : student submitted no response</span></pre>
                   2750: 
                   2751:   <pre><span
                   2752: 
                   2753: style='font-size:9.0pt'>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# MISSING_ANSWER : student submitted some but not</span></pre>
                   2754: 
                   2755:   <pre><span
                   2756: 
                   2757: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all parts of a response</span></pre>
                   2758: 
                   2759:   <pre><span
                   2760: 
                   2761: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # WANTED_NUMERIC : expected a numeric answer and</span></pre>
                   2762: 
                   2763:   <pre><span
                   2764: 
                   2765: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; didn't get one</span></pre>
                   2766: 
                   2767:   <pre><span
                   2768: 
                   2769: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # SIG_FAIL : incorrect number of Significant Figures</span></pre>
                   2770: 
                   2771:   <pre><span
                   2772: 
                   2773: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # UNIT_FAIL : incorrect unit</span></pre>
                   2774: 
                   2775:   <pre><span
                   2776: 
                   2777: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # UNIT_NOTNEEDED : Submitted a unit when one shouldn't</span></pre>
                   2778: 
                   2779:   <pre><span
                   2780: 
                   2781: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NO_UNIT : needed a unit but none was submitted</span></pre>
                   2782: 
                   2783:   <pre><span
                   2784: 
                   2785: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # BAD_FORMULA : syntax error in submitted formula</span></pre>
                   2786: 
                   2787:   <pre><span
                   2788: 
                   2789: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # INCORRECT : answer was wrong</span></pre>
                   2790: 
                   2791:   <pre><span
                   2792: 
                   2793: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # SUBMITTED : submission wasn't graded</span></pre>
                   2794: 
                   2795:   <pre><span
                   2796: 
                   2797: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ERROR : unable to get a grade</span></pre>
                   2798: 
                   2799:   <pre><span
                   2800: 
                   2801: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2802: 
                   2803:   <pre><span
                   2804: 
                   2805: style='font-size:9.0pt'>resource.partid.responseid.message (optional) (not yet supported)</span></pre>
                   2806: 
                   2807:   <pre><span
                   2808: 
                   2809: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; # a message that should be shown to the student</span></pre>
                   2810: 
                   2811:   <pre><span
                   2812: 
                   2813: style='font-size:9.0pt'>&nbsp;</span></pre>
                   2814: 
                   2815:   <pre><span
                   2816: 
                   2817: style='font-size:9.0pt'>resource.partid.bonustries (optional) (not yet supported)</span></pre>
                   2818: 
                   2819:   <pre><span
                   2820: 
                   2821: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # if set, added to the maxtries parameter for student </span></pre>
                   2822: 
                   2823:   <pre><span
                   2824: 
                   2825: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# total number of tries overall</span></pre>
                   2826: 
                   2827:   <pre>&nbsp;</pre>
                   2828: 
                   2829:   <h3><a name="_Toc421867137">Sample Problems</a></h3>
                   2830: 
                   2831:   <p class=H5><span style='layout-grid-mode:
                   2832: 
                   2833: both'>A Simple Problem</span></p>
                   2834: 
                   2835:   <p style='
                   2836: 
                   2837: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;problem&gt;</span></p>
                   2838: 
                   2839:   <p style='
                   2840: 
                   2841: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2842: 
                   2843:     &lt;script type=&quot;loncapa/perl&quot;&gt;</span></p>
                   2844: 
                   2845:   <p style='
                   2846: 
                   2847: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$length=&amp;random(10,99,.1);</span></p>
                   2848: 
                   2849:   <p style='
                   2850: 
                   2851: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$width=&amp;random(1,10,.01);</span></p>
                   2852: 
                   2853:   <p style='
                   2854: 
                   2855: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>@area=($length*($width*10));</span></p>
                   2856: 
                   2857:   <p style='
                   2858: 
                   2859: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2860: 
                   2861:     &lt;/script&gt;</span></p>
                   2862: 
                   2863:   <p style='
                   2864: 
                   2865: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>What 
                   2866: 
                   2867:     is the area of a box $length mm in length and </span></p>
                   2868: 
                   2869:   <p style='
                   2870: 
                   2871: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&amp;format($width,&quot;2E&quot;) 
                   2872: 
                   2873:     cm in width.</span></p>
                   2874: 
                   2875:   <p style='
                   2876: 
                   2877: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2878: 
                   2879:     &lt;numericalresponse id=&quot;11&quot; answer=&quot;@area&quot; units=&quot;mm^2&quot;&gt;</span></p>
                   2880: 
                   2881:   <p style='
                   2882: 
                   2883: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2884: 
                   2885:     &lt;textline&gt;&lt;/textline&gt;</span></p>
                   2886: 
                   2887:   <p style='
                   2888: 
                   2889: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2890: 
                   2891:     &lt;responseparam name=&quot;tol&quot; type=&quot;tolerance&quot; default=&quot;5%&quot;&gt;&lt;/responseparam&gt;</span></p>
                   2892: 
                   2893:   <p style='
                   2894: 
                   2895: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2896: 
                   2897:     &lt;/numericalresponse&gt;</span></p>
                   2898: 
                   2899:   <p style='
                   2900: 
                   2901: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/problem&gt;</span></p>
                   2902: 
                   2903:   <p class=H5><span
                   2904: 
                   2905: style='layout-grid-mode:both'>A More Complex Problem</span></p>
                   2906: 
                   2907:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;problem&gt;</span></p>
                   2908: 
                   2909:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;displayduedate 
                   2910: 
                   2911:     /&gt;</span></p>
                   2912: 
                   2913:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;p&gt;&lt;displaytitle 
                   2914: 
                   2915:     /&gt;&lt;/p&gt;</span></p>
                   2916: 
                   2917:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;script type=&quot;loncapa/perl&quot;&gt;</span></p>
                   2918: 
                   2919:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF=&quot;&lt;b&gt; 
                   2920: 
                   2921:     F&lt;sub&gt;1&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
                   2922: 
                   2923:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF1=&quot;&lt;b&gt; 
                   2924: 
                   2925:     F&lt;sub&gt;1&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
                   2926: 
                   2927:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF2=&quot;&lt;b&gt; 
                   2928: 
                   2929:     F&lt;sub&gt;2&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
                   2930: 
                   2931:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$mF=&quot;|&lt;b&gt;F&lt;/b&gt;|&quot;;</span></p>
                   2932: 
                   2933:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag=&quot;|&lt;b&gt;F&lt;sub&gt;1&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
                   2934: 
                   2935:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F2mag=&quot;|&lt;b&gt;F&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
                   2936: 
                   2937:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag=&quot;|&lt;b&gt; 
                   2938: 
                   2939:     &lt;font face=symbol&gt;t&lt;/font&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
                   2940: 
                   2941:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq2mag=&quot;|&lt;b&gt; 
                   2942: 
                   2943:     &lt;font face=symbol&gt;t&lt;/font&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
                   2944: 
                   2945:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q1=&quot;Q&lt;sub&gt;1&lt;/sub&gt;&quot;;</span></p>
                   2946: 
                   2947:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q2=&quot;Q&lt;sub&gt;2&lt;/sub&gt;&quot;;</span></p>
                   2948: 
                   2949:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau=&quot;&lt;font 
                   2950: 
                   2951:     face=symbol&gt;t&lt;/font&gt;&quot;;</span></p>
                   2952: 
                   2953:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau1=&quot;&lt;font 
                   2954: 
                   2955:     face=symbol&gt;&lt;b&gt;t&lt;/b&gt;&lt;/font&gt;&lt;sub&gt;1&lt;/sub&gt;&quot;;</span></p>
                   2956: 
                   2957:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $val=&amp;random(1,4,1);</span></p>
                   2958: 
                   2959:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $tp=&amp;choose($val,&quot;her&quot;,&quot;her&quot;,&quot;his&quot;,&quot;his&quot;);</span></p>
                   2960: 
                   2961:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $sd=&amp;choose($val,&quot;daughter&quot;,&quot;niece&quot;,&quot;nephew&quot;,&quot;son&quot;);</span></p>
                   2962: 
                   2963:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/script&gt;</span></p>
                   2964: 
                   2965:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;startouttext 
                   2966: 
                   2967:     /&gt;</span></p>
                   2968: 
                   2969:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag and $trq2mag 
                   2970: 
                   2971:     are the magnitudes of the torques produced repectively by </span></p>
                   2972: 
                   2973:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>forces $vF1 and $vF2 
                   2974: 
                   2975:     with respect the pivot P. The magnitudes of $vF1 is </span></p>
                   2976: 
                   2977:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag and that of 
                   2978: 
                   2979:     $vF2 is $F2mag. $Q1 and $Q2 are the locations </span></p>
                   2980: 
                   2981:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>on a rigid body where 
                   2982: 
                   2983:     $vF1 and $vF2 act.&nbsp; </span></p>
                   2984: 
                   2985:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;endouttext /&gt;</span></p>
                   2986: 
                   2987:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;optionresponse 
                   2988: 
                   2989:     max=&quot;600&quot;&gt;</span></p>
                   2990: 
                   2991:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2992: 
                   2993:     &lt;foilgroup options=&quot;('Correct','Incorrect','Can not tell')&quot;&gt;</span></p>
                   2994: 
                   2995:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   2996: 
                   2997:     &lt;conceptgroup concept=&quot;Effect of the moment-arm on the torque&quot;&gt;</span></p>
                   2998: 
                   2999:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3000: 
                   3001:     &lt;foil name=&quot;1a&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3002: 
                   3003:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3004: 
                   3005:     For $F1mag larger than $F2mag , $trq1mag is larger than $trq2mag</span></p>
                   3006: 
                   3007:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3008: 
                   3009:     &lt;/foil&gt;</span></p>
                   3010: 
                   3011:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3012: 
                   3013:     &lt;foil name=&quot;1b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3014: 
                   3015:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3016: 
                   3017:     For $F1mag smaller than $F2mag , $trq1mag is smaller than $trq2mag</span></p>
                   3018: 
                   3019:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3020: 
                   3021:     &lt;/foil&gt;</span></p>
                   3022: 
                   3023:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3024: 
                   3025:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;foil 
                   3026: 
                   3027:     name=&quot;1c&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3028: 
                   3029:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3030: 
                   3031:     For $F1mag larger than $F2mag , $trq1mag can be less&nbsp; than $trq2mag</span></p>
                   3032: 
                   3033:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3034: 
                   3035:     &lt;/foil&gt;</span></p>
                   3036: 
                   3037:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3038: 
                   3039:     &lt;foil name=&quot;1d&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3040: 
                   3041:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3042: 
                   3043:     For $F1mag smaller than $F2mag , $trq1mag can be larger&nbsp; than $trq2mag</span></p>
                   3044: 
                   3045:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3046: 
                   3047:     &lt;/foil&gt;</span></p>
                   3048: 
                   3049:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3050: 
                   3051:     &lt;/conceptgroup&gt; </span></p>
                   3052: 
                   3053:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3054: 
                   3055:     &lt;conceptgroup concept=&quot;For a given pivot, relation of force vector 
                   3056: 
                   3057:     to torque.&quot;&gt;</span></p>
                   3058: 
                   3059:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3060: 
                   3061:     &lt;foil name=&quot;2a&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3062: 
                   3063:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3064: 
                   3065:     The moment-arm of $vF is the shortest distance from P to the line along $vF 
                   3066: 
                   3067:     .</span></p>
                   3068: 
                   3069:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3070: 
                   3071:     &lt;/foil&gt;</span></p>
                   3072: 
                   3073:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3074: 
                   3075:     &lt;foil name=&quot;2b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3076: 
                   3077:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3078: 
                   3079:     The moment-arm of $vF is the shortest distance from P to $vF vector.</span></p>
                   3080: 
                   3081:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3082: 
                   3083:     &lt;/foil&gt;</span></p>
                   3084: 
                   3085:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3086: 
                   3087:     &lt;foil name=&quot;2c&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3088: 
                   3089:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3090: 
                   3091:     The moment-arm of $vF is not the distance from P to Q&lt;sub&gt;1&lt;/sub&gt;.</span></p>
                   3092: 
                   3093:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3094: 
                   3095:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/foil&gt;</span></p>
                   3096: 
                   3097:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3098: 
                   3099:     &lt;foil name=&quot;2d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3100: 
                   3101:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3102: 
                   3103:     The moment-arm of $vF is the distance from P to Q&lt;sub&gt;1&lt;/sub&gt;.</span></p>
                   3104: 
                   3105:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3106: 
                   3107:     &lt;/foil&gt; </span></p>
                   3108: 
                   3109:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3110: 
                   3111:     &lt;/conceptgroup&gt;</span></p>
                   3112: 
                   3113:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3114: 
                   3115:     &lt;conceptgroup concept=&quot;Torque is force x moment-arm.&quot;&gt;</span></p>
                   3116: 
                   3117:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3118: 
                   3119:     &lt;foil name=&quot;3a&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3120: 
                   3121:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3122: 
                   3123:     $trq1mag equals to the product of the moment-arm and $F1mag .</span></p>
                   3124: 
                   3125:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3126: 
                   3127:     &lt;/foil&gt;</span></p>
                   3128: 
                   3129:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3130: 
                   3131:     &lt;foil name=&quot;3b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3132: 
                   3133:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3134: 
                   3135:     $trq1mag equals to $F1mag times the distance from Q&lt;sub&gt;1&lt;/sub&gt; 
                   3136: 
                   3137:     to P.</span></p>
                   3138: 
                   3139:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3140: 
                   3141:     &lt;/foil&gt;</span></p>
                   3142: 
                   3143:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3144: 
                   3145:     &lt;foil name=&quot;3c&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3146: 
                   3147:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3148: 
                   3149:     $trq1mag is not equal to the product of $F1mag and the distance from Q&lt;sub&gt;1&lt;/sub&gt; 
                   3150: 
                   3151:     to P.</span></p>
                   3152: 
                   3153:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3154: 
                   3155:     &lt;/foil&gt;</span></p>
                   3156: 
                   3157:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3158: 
                   3159:     &lt;foil name=&quot;3d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3160: 
                   3161:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3162: 
                   3163:     $trq1mag is not equal to the product of the moment-arm and $F1mag .</span></p>
                   3164: 
                   3165:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3166: 
                   3167:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/foil&gt;</span></p>
                   3168: 
                   3169:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3170: 
                   3171:     &lt;/conceptgroup&gt;</span></p>
                   3172: 
                   3173:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3174: 
                   3175:     &lt;conceptgroup concept=&quot;Pivot point is required to calculate torque&quot;&gt;</span></p>
                   3176: 
                   3177:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3178: 
                   3179:     &lt;foil name=&quot;4a&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3180: 
                   3181:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3182: 
                   3183:     $tau1 vector depends on the location of P.</span></p>
                   3184: 
                   3185:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3186: 
                   3187:     &lt;/foil&gt;</span></p>
                   3188: 
                   3189:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3190: 
                   3191:     &lt;foil name=&quot;4b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3192: 
                   3193:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3194: 
                   3195:     $tau1 vector does not depend on the location of P.</span></p>
                   3196: 
                   3197:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3198: 
                   3199:     &lt;/foil&gt;</span></p>
                   3200: 
                   3201:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3202: 
                   3203:     &lt;foil name=&quot;4c&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3204: 
                   3205:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3206: 
                   3207:     $tau1 vector has no meaning unless a pivot is selected.</span></p>
                   3208: 
                   3209:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3210: 
                   3211:     &lt;/foil&gt;</span></p>
                   3212: 
                   3213:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3214: 
                   3215:     &lt;foil name=&quot;4d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3216: 
                   3217:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3218: 
                   3219:     $tau1 vector can be determined without selecting P. </span></p>
                   3220: 
                   3221:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3222: 
                   3223:     &lt;/foil&gt;</span></p>
                   3224: 
                   3225:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3226: 
                   3227:     &lt;/conceptgroup&gt; </span></p>
                   3228: 
                   3229:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3230: 
                   3231:     &lt;conceptgroup concept=&quot;torque from 2 forces acting along same line&quot;&gt;</span></p>
                   3232: 
                   3233:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3234: 
                   3235:     &lt;foil name=&quot;5a&quot; value=&quot;Correct&quot;&gt;</span></p>
                   3236: 
                   3237:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3238: 
                   3239:     Two equal forces, acting on a body along the same line but at different positions, 
                   3240: 
                   3241:     produce equal torques with respect to a given pivot.&quot;</span></p>
                   3242: 
                   3243:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3244: 
                   3245:     &lt;/foil&gt;</span></p>
                   3246: 
                   3247:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3248: 
                   3249:     &lt;foil name=&quot;5b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3250: 
                   3251:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3252: 
                   3253:     Two equal forces, along the same line, produce equal torques with respect 
                   3254: 
                   3255:     to a given pivot only if they act at the same point on a body.&quot;</span></p>
                   3256: 
                   3257:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3258: 
                   3259:     &lt;/foil&gt;</span></p>
                   3260: 
                   3261:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3262: 
                   3263:     &lt;foil name=&quot;5c&quot; value=&quot;Incorrect&quot;&gt;</span></p>
                   3264: 
                   3265:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3266: 
                   3267:     Two equal forces acting on a body along the same line but at different positions, 
                   3268: 
                   3269:     produce equal torques for only one pivot.&quot;</span></p>
                   3270: 
                   3271:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3272: 
                   3273:     &lt;/foil&gt;</span></p>
                   3274: 
                   3275:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3276: 
                   3277:     &lt;/conceptgroup&gt;</span></p>
                   3278: 
                   3279:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3280: 
                   3281:     &lt;foil name=&quot;6&quot; value=&quot;unused&quot;&gt;</span></p>
                   3282: 
                   3283:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3284: 
                   3285:     This foil will never display since it is unused.</span></p>
                   3286: 
                   3287:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3288: 
                   3289:     &lt;/foil&gt;</span></p>
                   3290: 
                   3291:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3292: 
                   3293:     &lt;/foilgroup&gt;</span></p>
                   3294: 
                   3295:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3296: 
                   3297:     &lt;notsolved&gt;</span></p>
                   3298: 
                   3299:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3300: 
                   3301:     &lt;hintgroup&gt;</span></p>
                   3302: 
                   3303:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>Think the definition 
                   3304: 
                   3305:     of the torque. The force and the moment-arm respect to the pivot.&nbsp; </span></p>
                   3306: 
                   3307:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3308: 
                   3309:     &lt;/hintgroup&gt;</span></p>
                   3310: 
                   3311:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                   3312: 
                   3313:     &nbsp;&nbsp;&lt;/notsolved&gt;</span></p>
                   3314: 
                   3315:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/optionresponse&gt;</span></p>
                   3316: 
                   3317:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/problem&gt;</span></p>
                   3318: 
                   3319:   <h3>&nbsp; </h3>
                   3320: 
                   3321:   <p> <img border=0 width=432 height=370
                   3322: 
                   3323: src="Session%20On2_files/image003.png" v:shapes="_x0000_i1025"> </p>
                   3324: 
                   3325:   <p><span style='font-size:14.0pt'><b>Fig. 3.1.1</b></span><span
                   3326: 
                   3327: style='font-size:14.0pt'> Ð Internal Structure of Homework Handler</span></p>
                   3328: 
                   3329: </div>
                   3330: 
                   3331: <br
                   3332: 
                   3333: clear=ALL style='page-break-before:always;'>
                   3334: 
                   3335: <div class=Section2> </div>
                   3336: 
                   3337: </body>
                   3338: 
                   3339: </html>
                   3340: 

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