Annotation of doc/homework/homework5.html, revision 1.2

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

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