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

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

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