File:  [LON-CAPA] / doc / homework / homework5.html
Revision 1.1: download - view: text, annotated - select for diffs
Sat May 19 00:24:39 2001 UTC (22 years, 11 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
- new homework documentation

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>LON-CAPA Homework System</title>
  </head>

  <body>
    <h1>LON-CAPA Homework System</h1>

    <h2>Tags</h2>
    <ul>
      <li>
	Response tags
	<p>
	  Arguments for all response tags
	</p>
	<ul>
	  <li>
	    <i>ID</i>, if this isn't set it will be set during
	    the publication step. It is used to assign parameters names
	    in a way that can be tracked if an instructor modifies
	    things by hand.
	  </li>
	  <li>
	    <i>name</i> optional, if set, it will be used by the
	    resource assembly tool when one is modifying parameters.
	    </li>
	</ul>
	<p>
	  Implemented response tags
	</p>
	<ul>
	  <li>
	    <b>&lt;numericalresponse&gt;</b> implements a numerical
	    answer, it needs an internal <b>&lt;textline&gt;</b> for
	    the response to go in. It checks all styles of numerical
	    supported in CAPA. Possible args are:
	    <ul>
	      <li><i>answer</i> required, specifies the correct answer, must be a perl list</li>
	      <li><i>type</i> optional, CAPA style str args, cs/ci/mc</li>
	      <li><i>units</i> optional, specifies unit of correct answer, CAPA style</li>
	    </ul>
	  </li>
	  <li>
	    <b>&lt;essayresponse&gt;</b> implements a ungraded large
	    text response, it need an internal <b>&lt;textarea&gt;</b>
	    for the response to go in.
	  </li>
	  <li>
	    <b>&lt;imageresponse&gt;</b> implements a image click
	    style image submission, uses the foil structure tags <a
	    href="#foil">below</a>. Additional tags that should appear
	    in a &lt;foil&gt; are:
	    <ul>
	      <li><b>&lt;image&gt;</b> required, the contained text
	      specifies a published graphical resource that is the
	      image used, should only appear once per foil</li>
	      <li><b>&lt;rectangle&gt;</b> required, the contained text
	      specifies a rectangular area that is correct, should
	      look like (1,2)-(3,4), at least 1 required</li>
	      <li><b>&lt;text&gt;</b> required, the contained text is
	      printed on top of the image.</li>
	    </ul>
	  </li>
	  <li>
	    <b>&lt;optionresponse&gt;</b> implements a "select from
	    these choices" style question, the choices are specified
	    by the instructor, it uses the foil structure tags <a
	    href="#foil">below</a> with this additional args: 
	    <ul>
	      <li>
		<b>&lt;foilgroup&gt;</b> is required to have
		<i>options</i> which should be a perl list of possible
		options for the student.
	      </li>
	    </ul>
	  </li>
	  <li>
	    <b>&lt;radiobuttonresponse&gt;</b> implements a true / false
	    style question with 1 correct answer.it uses the foil
	    structure tags <a href="#foil">below</a> but the
	    <i>value</i> of a &lt;foil&gt;can only be "true" or
	    "false" or "unused"
	  </li>
	</ul>
	<li>
	<a name="foil">Foil Structure Tags</a>
	<p>
	  All tags that implement a foil structure have an optional
	  arg of <i>max</i> that controls the maximum number of total
	  foils to show.
	</p>
	<ul>
	  <li>
	    <b>&lt;foilgroup&gt;</b> required, must be the tag that
	    surrounds all foil definitions	    
	  </li>
	  <li>
	    <b>&lt;foil&gt;</b> required, all data inside is a possible foil
	  </li>
	  <li>
	    <b>&lt;conceptgroup&gt;</b> optional, surrounds a
	    collection of &lt;foil&gt;, when a problem is displayed
	    only one of the contained &lt;foil&gt;is selected for
	    display. It receives one required argument
	    <i>concept</i>.
	  </li>
	</ul>
      </li>
      <li>
	Hint structure
	<p>
	  All of these tags must appear inside a <b>&lt;*response&gt;</b> tag.
	</p>
	<ul>
	  <li>
	    <b>&lt;hintgroup&gt;</b> Tag that surrounds all of a hint.
	  </li>
	  <li>
	    <b>&lt;hintpart&gt;</b> required, Tag to implement
	    conditional hints. It has a required argument
	    <i>on</i>. When a &lt;*hint&gt; tag named the same as the
	    value the </i>on</i> attribute evaluates to be correct the
	    &lt;hintpart&gt; will show. If no other &lt;hintpart&gt;
	    are to show then all hintparts with a <i>on</i> of
	    "default" will show
	  </li>
	  <li>
	    <b>&lt;numericalhint&gt;</b> has all the arguments that
	    &lt;numericalresponse&gt;, does and the required attribute
	    <i>name</i> which should be set to the value of which
	    &lt;hintpart&gt; will be shown. 
	  </li>
	</ul>
      </li>
      <li>
	Input Tags
	<p>
	  This group of tags implement a mechanism for getting data
	  for students, they will usually be used by a
	  &lt;*response&gt;.
	</p>
	<ul>
	  <li>
	    <b>&lt;textarea&gt;</b> creates a Large text input box, If
	    data appears between the start and end tags, the data will
	    appear i the textarea if the student has not yet made a
	    submission. Additionally it takes two arguments <i>rows</i>
	    and <i>cols</i> which control the height and width of the
	    area respectively. It defaults to 10 and 80.
	  </li>
	  <li>
	    <b>&lt;textline&gt;</b> creates a single line of input
	    element, it accepts 1 argument <i>size</i> which controls
	    the width on the textline, it defaults to 20.
	  </li>
	</ul>
      </li>
      <li>
	Output Tags
	<p>
	  This group of tags generate useful pieces of output.
	</p>
	<ul>
	  <li>
	    <b>&lt;displayduedate&gt;</b> this will insert the current
	    duedate if one is set into the document. It is generated
	    to be inside a table of 1x1 elements
	  </li>
	  <li>
	    <b>&lt;displaytitle&gt;</b> this will insert the title of
	    the problem from the metadata of the problem
	  </li>
	  <li>
	    <b>&lt;window&gt;</b> the text in between is put in a
	    popup javascript window
	  </li>
	</ul>
      </li>
      <li>
	Scripting
	<p>
	  These tags allow the document to behave programatically
	</p>
	<ul>
	  <li>
	    <b>&lt;display&gt;</b> the intervening perl script is
	    evaluated in the safe space and the return value of the
	    script replaces the entire tag
	  </li>
	  <li>
	    <b>&lt;import&gt;</b> causes the parse to read in the file
	    named in the body of the tag and parse it as if the entire
	    text of the file had existed at location of the tag
	  </li>
	  <li>
	    <b>&lt;parserlib&gt;</b> the enclosed filename contains
	    definitions for new tags
	  </li>
	  <li>
	    <b>&lt;script&gt;</b> if the argument <i>type</i> is set
	    to "loncapa/perl" the enclosed data is a perl script which
	    is evaluated inside the perl Safe space. The return value
	    of the script is ignored.
	  </li>
	  <li>
	    <b>&lt;scriptlib&gt;</b> the enclosed filename contains
	    perl code to run in the safe space
	  </li>
	  <li>
	    <b>&lt;block&gt;</b> has a required argument
	    <i>condition</i> that is evaluated, it the condition is
	    true everything inside the tag is evaluated, if it is false
	    everything inside the block tag is skipped
	  </li>
	  <li>
	    <b>&lt;notsolved&gt;</b> everything inside the tag is
	    skipped if the problem is "solved"
	  </li>
	  <li>
	    <b>&lt;postanswerdate&gt;</b> everything inside the tag is
	    skipped if the problem is before the answer date
	  </li>
	  <li>
	    <b>&lt;preduedate&gt;</b> everything inside the tag is
	    skipped if the problem is after the due date
	  </li>
	  <li>
	    <b>&lt;randomlist&gt;</b> the enclosed tags are parsed in
	    a stable random order
	  </li>
	  <li>
	    <b>&lt;solved&gt;</b> everything inside the tag is
	    skipped if the problem is "not solved"
	  </li>
	  <li>
	    <b>&lt;while&gt;</b> implements a while loop, required
	    argument <i>condition</i> is a perl scriptlet that when
	    evaluated results in a true or false value, on true the
	    entirety of the text between the whiles is parsed. The
	    condition is tested again, etc. If false it goes to the
	    next node in the parse.
	  </li>
	</ul>
      </li>
      <li>
	Structure Tags
	<p>
	  These tags give the problem a structure and take care of the
	  recording of data and giving the student messages.
	</p>
	<ul>
	  <li>
	    <b>&lt;problem&gt;</b> must be the first tag in the file,
	    this tag sets up the header of the webpage and generates
	    the submit buttons, it also handles due dates properly
	  </li>
	  <li>
	    <b>&lt;part&gt;</b> must be below &lt;problem&gt; if it is
	    going to be used. It does many of the same tasks as
	    &lt;problem&gt; but allows multiple separate problems to
	    exist in a single file.
	  </li>
	  <li>
	    <b>&lt;startouttext&gt;</b><b>&lt;endouttext&gt;</b> these
	    tags are somewhat special, they must have no internal text
	    and occur in pairs. Their use is to mark up the problem so
	    the web editor knows what sections should be edited in a
	    plain text block on the web.
	  </li>
	</ul>
      </li>
    </ul>
    <h2>&lt;script&gt; Functions</h2>
    <p> 
      A list of functions that have been written that are available in 
      the Safe space scripting environment inside a problem. The eventual
      goal is to provide all of the functions available in CAPA
    </p>
    <ul>
      <li>random</li>
      <li>tan</li>
      <li>atan</li>
      <li>acos</li>
      <li>asin</li>
      <li>log10</li>
      <li>pow</li>
      <li>ceil</li>
      <li>floor</li>
      <li>format</li>
      <li>map</li>
      <li>choose</li>
      <li>caparesponse_check</li>
      <li>caparesponse_check_list</li>
    </ul>
    <h2>&lt;script&gt; Variables</h2>
    <ul>
      <li>
	$external::target - set to the current target the xml parser
	is parsing for
      </li>
      <li>
	$external::part - set to the <i>id</i> of the current problem
	&lt;part&gt;; zero if there are now &lt;part&gt;
      </li>
      <li>
	$external::gradestatus - set to the value of the current
	resource.partid.solved value
      </li>
      <li>
	$external::datestatus - set to the current status of the clock
	either CLOSED, CAN_ANSWER, CANNOT_ANSWER, or SHOW_ANSWER
      </li>
      <li>
	$external::randomseed - set to the number that was used to
	seed the random number generator
      </li>
      <li>$pi - set to PI </li>
    </ul>
    
    <hr>
    <address><a href="mailto:albertel@marvin.lite.msu.edu">Guy Albertelli</a></address>
<!-- Created: Thu May 17 15:05:35 EDT 2001 -->
<!-- hhmts start -->
Last modified: Fri May 18 18:12:27 EDT 2001
<!-- hhmts end -->
  </body>
</html>
	<ul>
	  <li>
	    <b>&lt;&gt;</b>
	  </li>
	</ul>

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