version 1.1, 2002/06/28 20:30:29
|
version 1.3, 2005/04/07 06:56:20
|
Line 1
|
Line 1
|
<html>
|
<html> |
<head>
|
|
<meta name=Title
|
<head> |
content="Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)">
|
|
<meta http-equiv=Content-Type content="text/html; charset=macintosh">
|
<meta name=Title |
<link rel=Edit-Time-Data href="Session%20On2_files/editdata.mso">
|
|
<title>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</title>
|
content="Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)"> |
<style><!--
|
|
.MsoHeader
|
<meta http-equiv=Content-Type content="text/html; charset=macintosh"> |
{tab-stops:center 3.0in right 6.0in;
|
|
font-size:10.0pt;
|
<link rel=Edit-Time-Data href="Session%20On2_files/editdata.mso"> |
font-family:"Times New Roman";}
|
|
.H5
|
<title>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</title> |
{font-size:10.0pt;
|
|
font-family:"Times New Roman";
|
<style><!-- |
layout-grid-mode:line;
|
|
font-weight:bold;}
|
.MsoHeader |
.Section1
|
|
{page:Section1;}
|
{tab-stops:center 3.0in right 6.0in; |
.Section2
|
|
{page:Section2;}
|
font-size:10.0pt; |
-->
|
|
</style>
|
font-family:"Times New Roman";} |
</head>
|
|
<body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US>
|
.H5 |
<div class=Section1>
|
|
<h2>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</h2>
|
{font-size:10.0pt; |
<h3><a name="_Toc421867127">Tags</a></h3>
|
|
<ul type=disc>
|
font-family:"Times New Roman"; |
<li><b>Response tags </b></li>
|
|
</ul>
|
layout-grid-mode:line; |
<p>Arguments for all response tags </p>
|
|
<ul type=disc>
|
font-weight:bold;} |
<ul type=circle>
|
|
<li><i>ID</i><span style='font-style:
|
.Section1 |
normal'>, 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
|
{page:Section1;} |
an instructor modifies things by hand. </span></li>
|
|
<li><i>name</i><span
|
.Section2 |
style='font-style:normal'> optional, if set, it will be used by the resource
|
|
assembly tool when one is modifying parameters. </span></li>
|
{page:Section2;} |
</ul>
|
|
</ul>
|
--> |
<p>Implemented response tags </p>
|
|
<ul type=disc>
|
</style> |
<ul type=circle>
|
|
<li><b><responseparam></b><span
|
</head> |
style='font-weight:normal'> if it appears it should be inside of a <*response>
|
|
tag, defines an externally adjustable parameter for this question. Arguments:
|
<body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US> |
</span></li>
|
|
<ul type=square>
|
<div class=Section1> |
<li><i>default</i><span
|
|
style='font-style:normal'> required, specifies a default value for the
|
<h2>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</h2> |
parameter </span></li>
|
|
<li><i>name</i><span
|
<h3><a name="_Toc421867127">Tags</a></h3> |
style='font-style:normal'> required, specifies an internal name for the
|
|
parameter </span></li>
|
<ul type=disc> |
<li><i>type</i><span
|
|
style='font-style:normal'> required specifies the type of parameter, one
|
<li><b>Response tags </b></li> |
of "tolerance", "int", "float", "string",
|
|
"date" (configuration of paramters is handled by lonparmset.pm
|
</ul> |
and parameter.html) </span></li>
|
|
<li><i>description</i><span
|
<p>Arguments for all response tags </p> |
style='font-style:normal'> a string describing the parameter, this is what
|
|
is used to talk about a parameter outside of a problem </span></li>
|
<ul type=disc> |
</ul>
|
|
<li><b><parameter></b><span
|
<ul type=circle> |
style='font-weight:normal'> exactly the same as <responseparam> currently,
|
|
but should not appear inside of a <*response> </span></li>
|
<li><i>ID</i><span style='font-style: |
<li><b><numericalresponse></b><span
|
|
style='font-weight:normal'> implements a numerical answer, it needs an internal
|
normal'>, if this isn't set it will be set during the publication step. |
</span><b><textline></b><span style='font-weight:normal'> for the
|
|
response to go in. It checks all styles of numerical supported in CAPA.
|
It is used to assign parameters names in a way that can be tracked if |
Possible args are: </span></li>
|
|
<ul type=square>
|
an instructor modifies things by hand. </span></li> |
<li><i>answer</i><span
|
|
style='font-style:normal'> required, specifies the correct answer, may
|
<li><i>name</i><span |
be either a perl list or scalar</span></li>
|
|
<li><i>units</i><span
|
style='font-style:normal'> optional, if set, it will be used by the resource |
style='font-style:normal'> optional, specifies unit of correct answer,
|
|
CAPA style</span></li>
|
assembly tool when one is modifying parameters. </span></li> |
</ul>
|
|
<li><b><stringresponse></b><span
|
</ul> |
style='font-weight:normal'> implements a string answer, it needs an internal
|
|
</span><b><textline></b><span style='font-weight:normal'> for the
|
</ul> |
response to go in. It can check the string for either case or order. </span></li>
|
|
<ul type=square>
|
<p>Implemented response tags </p> |
<li><i>answer</i><span
|
|
style='font-style:normal'> required, specifies the correct answer, may
|
<ul type=disc> |
be either a perl list or scalar</span></li>
|
|
<li><i>type</i><span
|
<ul type=circle> |
style='font-style:normal'> optional, CAPA style str args, cs/ci/mc </span></li>
|
|
<ul type=square>
|
<li><b><responseparam></b><span |
<li>cs - case senesitive, order important</li>
|
|
<li>ci - case insenesitive, order important</li>
|
style='font-weight:normal'> if it appears it should be inside of a <*response> |
<li>mc - case insenesitive, order unimportant</li>
|
|
</ul>
|
tag, defines an externally adjustable parameter for this question. Arguments: |
</ul>
|
|
<li><b><essayresponse></b><span
|
</span></li> |
style='font-weight:normal'> implements a ungraded large text response, it
|
|
need an internal </span><b><textarea></b><span style='font-weight:
|
<ul type=square> |
normal'> for the response to go in. </span></li>
|
|
<li><b><imageresponse></b><span
|
<li><i>default</i><span |
style='font-weight:normal'> implements a image click style image submission,
|
|
uses the foil structure tags <a href="#foil">below</a>. Additional tags
|
style='font-style:normal'> required, specifies a default value for the |
that should appear in a <foil> are: </span></li>
|
|
<ul type=square>
|
parameter </span></li> |
<li><b><image></b><span
|
|
style='font-weight:normal'> required, the contained text specifies a published
|
<li><i>name</i><span |
graphical resource that is the image used, should only appear once per
|
|
foil</span></li>
|
style='font-style:normal'> required, specifies an internal name for the |
<li><b><rectangle></b><span
|
|
style='font-weight:normal'> required, the contained text specifies a rectangular
|
parameter </span></li> |
area that is correct, should look like (1,2)-(3,4), at least 1 required</span></li>
|
|
<li><b><text></b><span
|
<li><i>type</i><span |
style='font-weight:normal'> required, the contained text is printed on
|
|
top of the image.</span></li>
|
style='font-style:normal'> required specifies the type of parameter, one |
</ul>
|
|
<li><b><optionresponse></b><span
|
of "tolerance", "int", "float", "string", |
style='font-weight:normal'> implements a "select from these choices"
|
|
style question, the choices are specified by the instructor, it uses the
|
"date" (configuration of paramters is handled by lonparmset.pm |
foil structure tags <a href="#foil">below</a> with this additional args:
|
|
</span></li>
|
and parameter.html) </span></li> |
<ul type=square>
|
|
<li><b><foilgroup></b><span
|
<li><i>description</i><span |
style='font-weight:normal'> is required to have <i>options</i></span> which
|
|
should be a perl list of possible options for the student. </li>
|
style='font-style:normal'> a string describing the parameter, this is what |
</ul>
|
|
<li><b><radiobuttonresponse></b><span
|
is used to talk about a parameter outside of a problem </span></li> |
style='font-weight:normal'> implements a true / false style question with
|
|
1 correct answer.it uses the foil structure tags <a href="#foil">below</a>
|
</ul> |
but the <i>value</i></span> of a <foil>can only be "true"
|
|
or "false" or "unused" </li>
|
<li><b><parameter></b><span |
<li><b><dataresponse></b><span
|
|
style='font-weight:normal'> implements a straight data storage entry idea,
|
style='font-weight:normal'> exactly the same as <responseparam> currently, |
needs and interveing input tag like <textline> to work correctly.<br>
|
|
Arguments: </span></li>
|
but should not appear inside of a <*response> </span></li> |
<ul type=square>
|
|
<li><i>name</i><span
|
<li><b><numericalresponse></b><span |
style='font-style:normal'> internal name for the value, it will have the
|
|
part id and respose id added on to it </span></li>
|
style='font-weight:normal'> implements a numerical answer, it needs an internal |
<li><i>type</i><span
|
|
style='font-style:normal'> type of data stored in this response field,
|
</span><b><textline></b><span style='font-weight:normal'> for the |
should be one of the types supported by parameter.html </span></li>
|
|
<li><i>display</i><span
|
response to go in. It checks all styles of numerical supported in CAPA. |
style='font-style:normal'> a string that will be used to describe the field
|
|
when interfacing with humans </span></li>
|
Possible args are: </span></li> |
</ul>
|
|
</ul>
|
<ul type=square> |
</ul>
|
|
<p> <span style='font-size:10.0pt;
|
<li><i>answer</i><span |
font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
|
</span></span> <b><externalresponse></b><span style='font-weight:
|
style='font-style:normal'> required, specifies the correct answer, may |
normal'> implements the ability to have an external program grade a response,
|
|
expects either a <textline> or <textfield> inside the tag. </span></p>
|
be either a perl list or scalar</span></li> |
<p>Arguments: </p>
|
|
<ul type=disc>
|
<li><i>units</i><span |
<ul type=circle>
|
|
<ul type=square>
|
style='font-style:normal'> optional, specifies unit of correct answer, |
<li><i>url</i><span
|
|
style='font-style:normal'> the url to submit the answer and form to, does
|
CAPA style</span></li> |
not need to be a LON-CAPA machine. </span></li>
|
|
<li><i>answer</i><span
|
</ul> |
style='font-style:normal'> a string or scalar variable that can encode
|
|
something that should encode the correct answer, in some cases this
|
<li><b><stringresponse></b><span |
may be nothing. </span></li>
|
|
<li><i>form</i><span
|
style='font-weight:normal'> implements a string answer, it needs an internal |
style='font-style:normal'> a hash variable name that will be submitted
|
|
to the remote site as a HTTP form. </span></li>
|
</span><b><textline></b><span style='font-weight:normal'> for the |
</ul>
|
|
</ul>
|
response to go in. It can check the string for either case or order. </span></li> |
</ul>
|
|
<p>The response of the remote server needs to be in XML as follows. </p>
|
<ul type=square> |
<pre> <loncapagrade> <awardetail> CORRECT </awardetail> <message> A message to be shown to the students </message> </loncapagrade> </pre>
|
|
<ul type=disc>
|
<li><i>answer</i><span |
<ul type=circle>
|
|
<ul type=square>
|
style='font-style:normal'> required, specifies the correct answer, may |
<li><b><loncapagrade></b><span
|
|
style='font-weight:normal'> no arguments but must surround the response.
|
be either a perl list or scalar</span></li> |
</span></li>
|
|
<li><b><awardetail></b><span
|
<li><i>type</i><span |
style='font-weight:normal'> required inner tag, the response inside must
|
|
be one of the detailed responses that appears in the data storage documentation
|
style='font-style:normal'> optional, CAPA style str args, cs/ci/mc </span></li> |
(CVS:loncapa/doce/homework/datastorage) </span></li>
|
|
<li><b><message></b><span
|
<ul type=square> |
style='font-weight:normal'> optional message to have shown to the student
|
|
</span></li>
|
<li>cs - case senesitive, order important</li> |
</ul>
|
|
</ul>
|
<li>ci - case insenesitive, order important</li> |
</ul>
|
|
<ul type=disc>
|
<li>mc - case insenesitive, order unimportant</li> |
<li><a name=foil><b>Foil Structure Tags</b></a><b> </b></li>
|
|
</ul>
|
</ul> |
<p>All tags that implement a foil structure have an optional arg of <i>max</i><span style='font-style:normal'>
|
|
that controls the maximum number of total foils to show. </span></p>
|
</ul> |
<ul type=disc>
|
|
<ul type=circle>
|
<li><b><essayresponse></b><span |
<li><b><foilgroup></b><span
|
|
style='font-weight:normal'> required, must be the tag that surrounds all
|
style='font-weight:normal'> implements a ungraded large text response, it |
foil definitions </span></li>
|
|
<li><b><foil></b><span
|
need an internal </span><b><textarea></b><span style='font-weight: |
style='font-weight:normal'> required, all data inside is a possible foil
|
|
</span></li>
|
normal'> for the response to go in. </span></li> |
<li><b><conceptgroup></b><span
|
|
style='font-weight:normal'> optional, surrounds a collection of <foil>,
|
<li><b><imageresponse></b><span |
when a problem is displayed only one of the contained <foil>is selected
|
|
for display. It receives one required argument <i>concept</i></span>.
|
style='font-weight:normal'> implements a image click style image submission, |
</li>
|
|
</ul>
|
uses the foil structure tags <a href="#foil">below</a>. Additional tags |
<li><b>Hint structure </b></li>
|
|
</ul>
|
that should appear in a <foil> are: </span></li> |
<p>All of these tags must appear inside a <b><*response></b><span
|
|
style='font-weight:normal'> tag. </span></p>
|
<ul type=square> |
<ul type=disc>
|
|
<ul type=circle>
|
<li><b><image></b><span |
<li><b><hintgroup></b><span
|
|
style='font-weight:normal'> Tag that surrounds all of a hint. </span></li>
|
style='font-weight:normal'> required, the contained text specifies a published |
<li><b><hintpart></b><span
|
|
style='font-weight:normal'> required, Tag to implement conditional hints.
|
graphical resource that is the image used, should only appear once per |
It has a required argument <i>on</i></span>. When a <*hint> tag
|
|
named the same as the value the on attribute evaluates to be correct the
|
foil</span></li> |
<hintpart> will show. If no other <hintpart> are to show then
|
|
all hintparts with a <i>on</i><span style='font-style:normal'> of "default"
|
<li><b><rectangle></b><span |
will show </span></li>
|
|
<li><b><numericalhint></b><span
|
style='font-weight:normal'> required, the contained text specifies a rectangular |
style='font-weight:normal'> has all the arguments that <numericalresponse>,
|
|
does and the required attribute <i>name</i></span> which should be set
|
area that is correct, should look like (1,2)-(3,4), at least 1 required</span></li> |
to the value of which <hintpart> will be shown. </li>
|
|
</ul>
|
<li><b><text></b><span |
<li><b>Input Tags </b></li>
|
|
</ul>
|
style='font-weight:normal'> required, the contained text is printed on |
<p>This group of tags implement a mechanism for getting data for students, they
|
|
will usually be used by a <*response>. </p>
|
top of the image.</span></li> |
<ul type=disc>
|
|
<ul type=circle>
|
</ul> |
<li><b><textarea></b><span
|
|
style='font-weight:normal'> creates a Large text input box, If data appears
|
<li><b><optionresponse></b><span |
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
|
style='font-weight:normal'> implements a "select from these choices" |
<i>rows</i></span> and <i>cols</i><span
|
|
style='font-style:normal'> which control the height and width of the area
|
style question, the choices are specified by the instructor, it uses the |
respectively. It defaults to 10 and 80. </span></li>
|
|
<li><b><textline></b><span
|
foil structure tags <a href="#foil">below</a> with this additional args: |
style='font-weight:normal'> creates a single line of input element, it accepts
|
|
1 argument <i>size</i></span> which controls the width on the textline,
|
</span></li> |
it defaults to 20. </li>
|
|
</ul>
|
<ul type=square> |
<li><b>Output Tags </b></li>
|
|
</ul>
|
<li><b><foilgroup></b><span |
<p>This group of tags generate useful pieces of output. </p>
|
|
<ul type=disc>
|
style='font-weight:normal'> is required to have <i>options</i></span> which |
<ul type=circle>
|
|
<li><b><standalone></b><span
|
should be a perl list of possible options for the student. </li> |
style='font-weight:normal'> everything in between the start and end tag
|
|
is shown only on the web, and only if the resource is not part of a course.
|
</ul> |
</span></li>
|
|
<li><b><displayduedate></b><span
|
<li><b><radiobuttonresponse></b><span |
style='font-weight:normal'> this will insert the current duedate if one
|
|
is set into the document. It is generated to be inside a table of 1x1
|
style='font-weight:normal'> implements a true / false style question with |
elements </span></li>
|
|
<li><b><displaytitle></b><span
|
1 correct answer.it uses the foil structure tags <a href="#foil">below</a> |
style='font-weight:normal'> this will insert the title of the problem from
|
|
the metadata of the problem </span></li>
|
but the <i>value</i></span> of a <foil>can only be "true" |
<li><b><window></b><span
|
|
style='font-weight:normal'> the text in between is put in a popup javascript
|
or "false" or "unused" </li> |
window </span></li>
|
|
<li><b><m></b><span
|
<li><b><dataresponse></b><span |
style='font-weight:normal'> the inside text is LaTeX, and is converted to
|
|
HTML (or MathML) on the fly, if the argument <i>eval</i></span> is set
|
style='font-weight:normal'> implements a straight data storage entry idea, |
to "on" the intervening text will have a perl var expansion
|
|
done to it before being converted. </li>
|
needs and interveing input tag like <textline> to work correctly.<br> |
<li><b><randomlabel></b><span
|
|
style='font-weight:normal'> shows a specified image with images or text
|
Arguments: </span></li> |
labels randomly assigned to a set of specific locations, those locations
|
|
may also have values assigned to them. There is a hash generated conating
|
<ul type=square> |
the mapping of labels to locations, labels to values, and locations to
|
|
values. Example: </span></li>
|
<li><i>name</i><span |
</ul>
|
|
</ul>
|
style='font-style:normal'> internal name for the value, it will have the |
<pre> <randomlabel bgimg="URL" width="12" height="45" texwidth="50"> <labelgroup name="GroupOne" type="image"> <location x="123" y="456" value="10" /> <location x="321" y="654" value="20" /> <location x="213" y="546" value="13" /> <label description="TEXT-1">IMG-URL</label> <label description="TEXT-2">IMG-URL</label> <label description="TEXT-3">IMG-URL</label> </labelgroup> <labelgroup name="GroupTwo" type="text"> <location x="12" y="45" /> <location x="32" y="65" /> <location x="21" y="54" /> <label>TEXT-1</label> <label>TEXT-2</label> <label>TEXT-3</label> </labelgroup> </randomlabel> </pre>
|
|
<p>Arguments: </p>
|
part id and respose id added on to it </span></li> |
<ul type=disc>
|
|
<ul type=circle>
|
<li><i>type</i><span |
<ul type=square>
|
|
<li><i>bgimg</i><span
|
style='font-style:normal'> type of data stored in this response field, |
style='font-style:normal'> either a fully qualified URL for an external
|
|
image, or a loncapa resource, it supports relative references (../images/apicture.gif),
|
should be one of the types supported by parameter.html </span></li> |
the image must either be a GIF or JPEG </span></li>
|
|
<li><i>width</i><span
|
<li><i>display</i><span |
style='font-style:normal'> the width of the image in pixels </span></li>
|
|
<li><i>height</i><span
|
style='font-style:normal'> a string that will be used to describe the field |
style='font-style:normal'> the height of the image in pixels </span></li>
|
|
<li><i>texwidth</i><span
|
when interfacing with humans </span></li> |
style='font-style:normal'> the width of the image in millimeters </span></li>
|
|
</ul>
|
</ul> |
</ul>
|
|
</ul>
|
</ul> |
<p>Internal tags: </p>
|
|
<ul type=disc>
|
</ul> |
<ul type=circle>
|
|
<ul type=square>
|
<p> <span style='font-size:10.0pt; |
<li><b><labelgroup></b><span
|
|
style='font-weight:normal'> 1 required, multiple allowed. Declares a group
|
font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'> |
of locations and labels associated with them. <br>
|
|
Arguments: </span></li>
|
</span></span> <b><externalresponse></b><span style='font-weight: |
<ul type=square>
|
|
<li><i>name</i><span
|
normal'> implements the ability to have an external program grade a response, |
style='font-style:normal'> this is the name of the group, a hash with
|
|
this name will be generated holding the mappings for later use in
|
expects either a <textline> or <textfield> inside the tag. </span></p> |
the problem. For each location a value will be set for which label
|
|
is there, (EX. $hash{'1'}="TEXT-2"). For locations with
|
<p>Arguments: </p> |
values the hash will contain 2 items, a location to value mapping
|
|
($hash{'value_1'}=10), and a label to value mapping ($hash{'labelvalue_2'}=10).
|
<ul type=disc> |
For all image style of labels there will also be a label description
|
|
to label URL mapping ($hash{'image_2'}=IMG-URL). Also the entry 'numlocations
|
<ul type=circle> |
will be set to the total number of locations that exist. (Note that
|
|
locations and labels start counting from 1.) </span></li>
|
<ul type=square> |
<li><i>type</i><span
|
|
style='font-style:normal'> the type of labels in this group, either 'image'
|
<li><i>url</i><span |
or 'text' </span></li>
|
|
</ul>
|
style='font-style:normal'> the url to submit the answer and form to, does |
<li><b><location></b><span
|
|
style='font-weight:normal'> declares a location on the image that a label
|
not need to be a LON-CAPA machine. </span></li> |
should appear at <br>
|
|
Arguments: </span></li>
|
<li><i>answer</i><span |
<ul type=square>
|
|
<li><i>x</i><span
|
style='font-style:normal'> a string or scalar variable that can encode |
style='font-style:normal'> the x value of the location in pixels </span></li>
|
|
<li><i>y</i><span
|
something that should encode the correct answer, in some cases this |
style='font-style:normal'> the y value of the location in pixels </span></li>
|
|
<li><i>value</i><span
|
may be nothing. </span></li> |
style='font-style:normal'> a scalar value to associate at this location
|
|
(optional) </span></li>
|
<li><i>form</i><span |
</ul>
|
|
<li><b><label></b><span
|
style='font-style:normal'> a hash variable name that will be submitted |
style='font-weight:normal'> declaration of a label, if this is a text type
|
|
labelgroup the internal text should be the text of the label (HTML is
|
to the remote site as a HTTP form. </span></li> |
not currently supported), if this is an image type of label the internal
|
|
text must be a LON-CAPA resource specification, and the description
|
</ul> |
filed must be set. <br>
|
|
Arguments: </span></li>
|
</ul> |
<ul type=square>
|
|
<li><i>description</i><span
|
</ul> |
style='font-style:normal'> a required field for image labels, it will
|
|
be used when setting values in the hash. </span></li>
|
<p>The response of the remote server needs to be in XML as follows. </p> |
</ul>
|
|
</ul>
|
<pre> <loncapagrade> <awardetail> CORRECT </awardetail> <message> A message to be shown to the students </message> </loncapagrade> </pre> |
</ul>
|
|
<li><b>Scripting </b></li>
|
<ul type=disc> |
</ul>
|
|
<p>These tags allow the document to behave programatically </p>
|
<ul type=circle> |
<ul type=disc>
|
|
<ul type=circle>
|
<ul type=square> |
<li><b><display></b><span
|
|
style='font-weight:normal'> the intervening perl script is evaluated in
|
<li><b><loncapagrade></b><span |
the safe space and the return value of the script replaces the entire
|
|
tag </span></li>
|
style='font-weight:normal'> no arguments but must surround the response. |
<li><b><import></b><span
|
|
style='font-weight:normal'> causes the parse to read in the file named in
|
</span></li> |
the body of the tag and parse it as if the entire text of the file had
|
|
existed at location of the tag </span></li>
|
<li><b><awardetail></b><span |
<li><b><parserlib></b><span
|
|
style='font-weight:normal'> the enclosed filename contains definitions for
|
style='font-weight:normal'> required inner tag, the response inside must |
new tags </span></li>
|
|
<li><b><script></b><span
|
be one of the detailed responses that appears in the data storage documentation |
style='font-weight:normal'> if the argument <i>type</i></span> is set to
|
|
"loncapa/perl" the enclosed data is a perl script which is evaluated
|
(CVS:loncapa/doce/homework/datastorage) </span></li> |
inside the perl Safe space. The return value of the script is ignored.
|
|
</li>
|
<li><b><message></b><span |
<li><b><scriptlib></b><span
|
|
style='font-weight:normal'> the enclosed filename contains perl code to
|
style='font-weight:normal'> optional message to have shown to the student |
run in the safe space </span></li>
|
|
<li><b><block></b><span
|
</span></li> |
style='font-weight:normal'> has a required argument <i>condition</i></span>
|
|
that is evaluated, it the condition is true everything inside the tag
|
</ul> |
is evaluated, if it is false everything inside the block tag is skipped
|
|
</li>
|
</ul> |
<li><b><notsolved></b><span
|
|
style='font-weight:normal'> everything inside the tag is skipped if the
|
</ul> |
problem is "solved" </span></li>
|
|
<li><b><postanswerdate></b><span
|
<ul type=disc> |
style='font-weight:normal'> everything inside the tag is skipped if the
|
|
problem is before the answer date </span></li>
|
<li><a name=foil><b>Foil Structure Tags</b></a><b> </b></li> |
<li><b><preduedate></b><span
|
|
style='font-weight:normal'> everything inside the tag is skipped if the
|
</ul> |
problem is after the due date </span></li>
|
|
<li><b><randomlist></b><span
|
<p>All tags that implement a foil structure have an optional arg of <i>max</i><span style='font-style:normal'> |
style='font-weight:normal'> the enclosed tags are parsed in a stable random
|
|
order, optional argument <i>show</i></span> restricts the number of tags
|
that controls the maximum number of total foils to show. </span></p> |
indie that are actually parsed the no more than <i>show</i><span
|
|
style='font-style:normal'>. </span></li>
|
<ul type=disc> |
<li><b><solved></b><span
|
|
style='font-weight:normal'> everything inside the tag is skipped if the
|
<ul type=circle> |
problem is "not solved" </span></li>
|
|
<li><b><while></b><span
|
<li><b><foilgroup></b><span |
style='font-weight:normal'> implements a while loop, required argument <i>condition</i></span>
|
|
is a perl scriptlet that when evaluated results in a true or false value,
|
style='font-weight:normal'> required, must be the tag that surrounds all |
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.
|
foil definitions </span></li> |
</li>
|
|
</ul>
|
<li><b><foil></b><span |
<li><b>Structure Tags </b></li>
|
|
</ul>
|
style='font-weight:normal'> required, all data inside is a possible foil |
<p>These tags give the problem a structure and take care of the recording of
|
|
data and giving the student messages. </p>
|
</span></li> |
<ul type=disc>
|
|
<ul type=circle>
|
<li><b><conceptgroup></b><span |
<li><b><problem></b><span
|
|
style='font-weight:normal'> must be the first tag in the file, this tag
|
style='font-weight:normal'> optional, surrounds a collection of <foil>, |
sets up the header of the webpage and generates the submit buttons, it
|
|
also handles due dates properly </span></li>
|
when a problem is displayed only one of the contained <foil>is selected |
<li><b><part></b><span
|
|
style='font-weight:normal'> must be below <problem> if it is going
|
for display. It receives one required argument <i>concept</i></span>. |
to be used. It does many of the same tasks as <problem> but allows
|
|
multiple separate problems to exist in a single file. </span></li>
|
</li> |
<li><b><startouttext><endouttext></b><span
|
|
style='font-weight:normal'> these tags are somewhat special, they must have
|
</ul> |
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
|
<li><b>Hint structure </b></li> |
block on the web. </span></li>
|
|
</ul>
|
</ul> |
</ul>
|
|
<h3><a name="_Toc421867128"><script> Functions</a></h3>
|
<p>All of these tags must appear inside a <b><*response></b><span |
<p>A list of functions that have been written that are available in the Safe
|
|
space scripting environment inside a problem. </p>
|
style='font-weight:normal'> tag. </span></p> |
<ul type=disc>
|
|
<li>sin(x), cos(x), tan(x)</li>
|
<ul type=disc> |
<li>asin(x), acos(x), atan(x), atan2(y,x)</li>
|
|
<li>log(x), log10(x)</li>
|
<ul type=circle> |
<li>exp(), pow(x,y), sqrt(x)</li>
|
|
<li>abs(x), sgn(x)</li>
|
<li><b><hintgroup></b><span |
<li>erf(x), erfc(x)</li>
|
|
<li>ceil(x), floor(x)</li>
|
style='font-weight:normal'> Tag that surrounds all of a hint. </span></li> |
<li>min(...), max(...)</li>
|
|
<li>factorial(n)</li>
|
<li><b><hintpart></b><span |
<li>N%M</li>
|
|
<li>sinh(x), cosh(x), tanh(x)</li>
|
style='font-weight:normal'> required, Tag to implement conditional hints. |
<li>asinh(x), acosh(x), atanh(x)</li>
|
|
<li>roundto(x,n)</li>
|
It has a required argument <i>on</i></span>. When a <*hint> tag |
<li>web("a","b","c") or web(a,b,c)</li>
|
|
<li>html("a") or html(a)</li>
|
named the same as the value the on attribute evaluates to be correct the |
<li>j0(x), j1(x), jn(n,x), jv(y,x)</li>
|
|
<li>y0(x), y1(x), yn(n,x), yv(y,x)</li>
|
<hintpart> will show. If no other <hintpart> are to show then |
<li>random</li>
|
|
<li>choose</li>
|
all hintparts with a <i>on</i><span style='font-style:normal'> of "default" |
<li>tex("a","b") or tex(a,b)</li>
|
|
<li>var_in_tex(a)</li>
|
will show </span></li> |
<li>to_string(x), to_string(x,y)</li>
|
|
<li>class(), section()</li>
|
<li><b><numericalhint></b><span |
<li>name(), student_number()</li>
|
|
<li>open_date(), due_date(), answer_date()</li>
|
style='font-weight:normal'> has all the arguments that <numericalresponse>, |
<li>sub_string()</li>
|
|
<li>array_moments(array)</li>
|
does and the required attribute <i>name</i></span> which should be set |
<li>format(x,y),prettyprint(x,y)</li>
|
|
<li>map(...)</li>
|
to the value of which <hintpart> will be shown. </li> |
<li>caparesponse_check</li>
|
|
<li>caparesponse_check_list</li>
|
</ul> |
</ul>
|
|
<h3><a name="_Toc421867129">Detailed descriptions of each function and comparison
|
<li><b>Input Tags </b></li> |
with CAPA</a></h3>
|
|
<table border=1 cellpadding=0>
|
</ul> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p><b>CAPA Functions</b></p></td>
|
<p>This group of tags implement a mechanism for getting data for students, they |
<td width=134 valign=top class="Normal"> <p><b>LON-CAPA</b></p></td>
|
|
<td width=147 valign=top class="Normal"> <p><b>Descriptions</b></p></td>
|
will usually be used by a <*response>. </p> |
<td width=101 valign=top class="Normal"> <p><b>Differences (if any)</b></p></td>
|
|
</tr>
|
<ul type=disc> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>sin(x), cos(x), tan(x)</p></td>
|
<ul type=circle> |
<td width=134 valign=top class="Normal"> <p>&sin($x), &cos($x),
|
|
&tan($x)</p></td>
|
<li><b><textarea></b><span |
<td width=147 valign=top class="Normal"> <p>Trigonometric functions where
|
|
x is in radians. $x can be a pure number, i.e., you can call &sin(3.1415)</p></td>
|
style='font-weight:normal'> creates a Large text input box, If data appears |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
between the start and end tags, the data will appear i the textarea if |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>asin(x), acos(x), atan(x), atan2(y,x)</p></td>
|
the student has not yet made a submission. Additionally it takes two arguments |
<td width=134 valign=top class="Normal"> <p>&asin($x), &acos($x),
|
|
&atan($x), &atan2($y,$x)</p></td>
|
<i>rows</i></span> and <i>cols</i><span |
<td width=147 valign=top class="Normal"> <p>Inverse trigonometric functions.
|
|
Return value is in radians. For asin and acos the value of x must be
|
style='font-style:normal'> which control the height and width of the area |
between -1 and 1. The atan2 returns a value between -pi and pi the sign
|
|
of which is determined by y. $x and $y can be pure numbers</p></td>
|
respectively. It defaults to 10 and 80. </span></li> |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
<li><b><textline></b><span |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>log(x), log10(x)</p></td>
|
style='font-weight:normal'> creates a single line of input element, it accepts |
<td width=134 valign=top class="Normal"> <p>&log($x), &log10($x)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Natural and base-10 logarithm.
|
1 argument <i>size</i></span> which controls the width on the textline, |
$x can be a pure number</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
it defaults to 20. </li> |
</tr>
|
|
<tr>
|
</ul> |
<td width=131 valign=top class="Normal"> <p>exp(x), pow(x,y), sqrt(x)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&exp($x), &pow($x,$y),
|
<li><b>Output Tags </b></li> |
&sqrt($x)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Exponential, power and square
|
</ul> |
root, i.e.,e<sup>x</sup>, x<sup>y</sup> and /x. $x and $y can be pure
|
|
numbers</p></td>
|
<p>This group of tags generate useful pieces of output. </p> |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
<ul type=disc> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>abs(x), sgn(x)</p></td>
|
<ul type=circle> |
<td width=134 valign=top class="Normal"> <p>&abs($x), &sgn($x)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Abs takes the absolute value
|
<li><b><standalone></b><span |
of x while sgn(x) returns 1, 0 or -1 depending on the value of x. For
|
|
x>0, sgn(x) = 1, for x=0, sgn(x) = 0 and for x<0, sgn(x) = -1.
|
style='font-weight:normal'> everything in between the start and end tag |
$x can be a pure number</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
is shown only on the web, and only if the resource is not part of a course. |
</tr>
|
|
<tr>
|
</span></li> |
<td width=131 valign=top class="Normal"> <p>erf(x), erfc(x)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&erf($x), &erfc($x)</p></td>
|
<li><b><displayduedate></b><span |
<td width=147 valign=top class="Normal"> <p>Error function. erf =
|
|
2/sqrt(pi) integral (0,x) e<sup>t-sq</sup> and <i>erfx(x)</i><span style='font-style:normal'>
|
style='font-weight:normal'> this will insert the current duedate if one |
= 1.0 - </span><i>erf(x)</i><span
|
|
style='font-style:normal'>. $x can be a pure number</span></p></td>
|
is set into the document. It is generated to be inside a table of 1x1 |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
elements </span></li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>ceil(x), floor(x)</p></td>
|
<li><b><displaytitle></b><span |
<td width=134 valign=top class="Normal"> <p>&ceil($x), &floor($x)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Ceil function returns an integer
|
style='font-weight:normal'> this will insert the title of the problem from |
rounded up whereas floor function returns and integer rounded down.
|
|
If x is an integer than it returns the value of the integer. $x can
|
the metadata of the problem </span></li> |
be a pure number</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
<li><b><window></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> the text in between is put in a popup javascript |
<td width=131 valign=top class="Normal"> <p>min(...), max(...)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&min(...), &max(...)</p></td>
|
window </span></li> |
<td width=147 valign=top class="Normal"> <p>Returns the minimum/ maximum
|
|
value of a list of arguments if the arguments are numbers. If the arguments
|
<li><b><m></b><span |
are strings then it returns a string sorted according to the ASCII codes</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
style='font-weight:normal'> the inside text is LaTeX, and is converted to |
</tr>
|
|
<tr>
|
HTML (or MathML) on the fly, if the argument <i>eval</i></span> is set |
<td width=131 valign=top class="Normal"> <p>factorial(n)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&factorial($n)</p></td>
|
to "on" the intervening text will have a perl var expansion |
<td width=147 valign=top class="Normal"> <p>Argument (n) must be an integer
|
|
else it will round down. The largest value for n is 170. $n can be a
|
done to it before being converted. </li> |
pure number</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
<li><b><randomlabel></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> shows a specified image with images or text |
<td width=131 valign=top class="Normal"> <p>N%M</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>$N%$M</p></td>
|
labels randomly assigned to a set of specific locations, those locations |
<td width=147 valign=top class="Normal"> <p>N and M are integers and returns
|
|
the remainder (in integer) of N/M. $N and $M can be pure numbers</p></td>
|
may also have values assigned to them. There is a hash generated conating |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
the mapping of labels to locations, labels to values, and locations to |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>sinh(x), cosh(x), tanh(x)</p></td>
|
values. Example: </span></li> |
<td width=134 valign=top class="Normal"> <p>&sinh($x), &cosh($x),
|
|
&tanh($x)</p></td>
|
</ul> |
<td width=147 valign=top class="Normal"> <p>Hyperbolic functions. $x can
|
|
be a pure number</p></td>
|
</ul> |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
<pre> <randomlabel bgimg="URL" width="12" height="45" texwidth="50"> <labelgroup name="GroupOne" type="image"> <location x="123" y="456" value="10" /> <location x="321" y="654" value="20" /> <location x="213" y="546" value="13" /> <label description="TEXT-1">IMG-URL</label> <label description="TEXT-2">IMG-URL</label> <label description="TEXT-3">IMG-URL</label> </labelgroup> <labelgroup name="GroupTwo" type="text"> <location x="12" y="45" /> <location x="32" y="65" /> <location x="21" y="54" /> <label>TEXT-1</label> <label>TEXT-2</label> <label>TEXT-3</label> </labelgroup> </randomlabel> </pre> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>asinh(x), acosh(x), atanh(x)</p></td>
|
<p>Arguments: </p> |
<td width=134 valign=top class="Normal"> <p>&asinh($x), &acosh($x),
|
|
&atanh($x)</p></td>
|
<ul type=disc> |
<td width=147 valign=top class="Normal"> <p>Inverse hyperbolic functions.
|
|
$x can be a pure number</p></td>
|
<ul type=circle> |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
<ul type=square> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>/DIS($x,"nn")</p></td>
|
<li><i>bgimg</i><span |
<td width=134 valign=top class="Normal"> <p>&format($x,"nn")</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Display or format $x as nn where
|
style='font-style:normal'> either a fully qualified URL for an external |
nn is nF or nE and n is an integer.</p></td>
|
|
<td width=101 valign=top class="Normal"> <p> The difference is obvious.</p></td>
|
image, or a loncapa resource, it supports relative references (../images/apicture.gif), |
</tr>
|
|
<tr>
|
the image must either be a GIF or JPEG </span></li> |
<td width=131 valign=top class="Normal"> <p>Not in CAPA</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&prettyprint($x,"nn")</p></td>
|
<li><i>width</i><span |
<td width=147 valign=top class="Normal"> <p>Display or format $x as nn where
|
|
nn is nF or nE and n is an integer. In E mode it will attempt to generate
|
style='font-style:normal'> the width of the image in pixels </span></li> |
a pretty x10^3 rather than a E3 following the number</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
<li><i>height</i><span |
</tr>
|
|
<tr>
|
style='font-style:normal'> the height of the image in pixels </span></li> |
<td width=131 valign=top class="Normal"> <p>roundto(x,n)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&roundto($x,$n)</p></td>
|
<li><i>texwidth</i><span |
<td width=147 valign=top class="Normal"> <p>Rounds a real number to n decimal
|
|
points. $x and $n can be pure numbers</p></td>
|
style='font-style:normal'> the width of the image in millimeters </span></li> |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
</ul> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>web("a","b","c")
|
</ul> |
or web(a,b,c)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&web("a","b","c")
|
</ul> |
or &web($a,$b,$c)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Returns either a, b or c depending
|
<p>Internal tags: </p> |
on the output medium. a is for plain ASCII, b for tex output and c for
|
|
html output</p></td>
|
<ul type=disc> |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
<ul type=circle> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>html("a") or html(a)</p></td>
|
<ul type=square> |
<td width=134 valign=top class="Normal"> <p>&html("a") or
|
|
&html($a)</p></td>
|
<li><b><labelgroup></b><span |
<td width=147 valign=top class="Normal"> <p>Output only if the output mode
|
|
chosen is in html format</p></td>
|
style='font-weight:normal'> 1 required, multiple allowed. Declares a group |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
of locations and labels associated with them. <br> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>jn(m,x)</p></td>
|
Arguments: </span></li> |
<td width=134 valign=top class="Normal"> <p>&j0($x), &j1($x), &jn($m,$x),
|
|
&jv($y,$x)</p></td>
|
<ul type=square> |
<td width=147 valign=top class="Normal"> <p>Bessel functions of the first
|
|
kind with orders 0, 1 and m respectively. For jn(m,x), m must be an
|
<li><i>name</i><span |
integer whereas for jv(y,x), y is real. $x can be a pure number. $m
|
|
must be an integer and can be a pure integer number. $y can be a pure
|
style='font-style:normal'> this is the name of the group, a hash with |
real number</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA, j0, j1 and jn are contained
|
this name will be generated holding the mappings for later use in |
in one function, jn(m,x) where m takes the value of 0, 1 or 2. jv(y,x)
|
|
is new to LON-CAPA.</p></td>
|
the problem. For each location a value will be set for which label |
</tr>
|
|
<tr>
|
is there, (EX. $hash{'1'}="TEXT-2"). For locations with |
<td width=131 valign=top class="Normal"> <p>yn(m,x)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&y0($x), &y1($x), &yn($m,$x),
|
values the hash will contain 2 items, a location to value mapping |
&yv($y,$x)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Bessel functions of the second
|
($hash{'value_1'}=10), and a label to value mapping ($hash{'labelvalue_2'}=10). |
kind with orders 0, 1 and m respectively. For yn(m,x), m must be an
|
|
integer whereas for yv(y,x), y is real. $x can be a pure number. $m
|
For all image style of labels there will also be a label description |
must be an integer and can be a pure integer number. $y can be a pure
|
|
real number</p></td>
|
to label URL mapping ($hash{'image_2'}=IMG-URL). Also the entry 'numlocations |
<td width=101 valign=top class="Normal"> <p>In CAPA, y0, y1 and yn are contained
|
|
in one function, yn(m,x) where m takes the value of 0, 1 or 2. yv(y,x)
|
will be set to the total number of locations that exist. (Note that |
is new to LON-CAPA.</p></td>
|
|
</tr>
|
locations and labels start counting from 1.) </span></li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>random(l,u,d)</p></td>
|
<li><i>type</i><span |
<td width=134 valign=top class="Normal"> <p>&random($l,$u,$d)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Returns a uniformly distributed
|
style='font-style:normal'> the type of labels in this group, either 'image' |
random number between the lower bound, l and upper bound, u in steps
|
|
of d. $l, $u and $d can be pure numbers</p></td>
|
or 'text' </span></li> |
<td width=101 valign=top class="Normal"> <p>In CAPA, all the 3 arguments
|
|
must be of the same type. However, now you can mix the type</p></td>
|
</ul> |
</tr>
|
|
<tr>
|
<li><b><location></b><span |
<td width=131 valign=top class="Normal"> <p>choose(i,...)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&choose($i,...)</p></td>
|
style='font-weight:normal'> declares a location on the image that a label |
<td width=147 valign=top class="Normal"> <p>Choose the ith item from the
|
|
argument list. i must be an integer greater than 0 and the value of
|
should appear at <br> |
i should not exceed the number of items. $i can be a pure integer</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
Arguments: </span></li> |
</tr>
|
|
<tr>
|
<ul type=square> |
<td width=131 valign=top class="Normal"> <p>/MAP(seed;w,x,y,z;a,b,c,d)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>Option 1 - &map($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d])
|
<li><i>x</i><span |
or <br>
|
|
Option 2 - &map($seed,\@mappedArray,[$a,$b,$c,$d]) <br>
|
style='font-style:normal'> the x value of the location in pixels </span></li> |
Option 3 - @mappedArray = &map($seed,[$a,$b,$c,$d]) <br>
|
|
Option 4 - ($w,$x,$y,$z) = &map($seed,\@a) <br>
|
<li><i>y</i><span |
where $a='A'<br>
|
|
$b='B'<br>
|
style='font-style:normal'> the y value of the location in pixels </span></li> |
$c='B'<br>
|
|
$d='B'<br>
|
<li><i>value</i><span |
$w, $x, $y, and $z are variables</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Assigns to the variables $w,
|
style='font-style:normal'> a scalar value to associate at this location |
$x, $y and $z the values of the $a, $b, $c and $c (A, B, C and D). The
|
|
precise value for $w .. depends on the seed. (Option 1 of calling map).
|
(optional) </span></li> |
In option 2, the values of $a, $b .. are mapped into the array, @mappedArray.
|
|
The two options illustrate the different grouping. Options 3 and 4 give
|
</ul> |
a consistent way (with other functions) of mapping the items. For each
|
|
option, the group can be passed as an array, for example, [$a,$b,$c,$d]
|
<li><b><label></b><span |
=> \@a.</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided
|
style='font-weight:normal'> declaration of a label, if this is a text type |
into three groups separated by a semicolon ;. In LON-CAPA, the separation
|
|
is done by using [] brackets or using an array @a. Note the backslash
|
labelgroup the internal text should be the text of the label (HTML is |
(\) before the arguments in the second and third groups.</p></td>
|
|
</tr>
|
not currently supported), if this is an image type of label the internal |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>rmap(seed;a,b,c,d;w,x,y,z)</p></td>
|
text must be a LON-CAPA resource specification, and the description |
<td width=134 valign=top class="Normal"> <p>Option 1 - &rmap($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d])
|
|
or <br>
|
filed must be set. <br> |
Option 2 - &rmap($seed,\@rmappedArray,[$a,$b,$c,$d]) <br>
|
|
Option 3 - @rmapped_array = &rmap($seed,[$a,$b,$c,$d]) <br>
|
Arguments: </span></li> |
Option 4 - ($w,$x,$y,$z) = &rmap($seed,\@a) <br>
|
|
where $a='A'<br>
|
<ul type=square> |
$b='B'<br>
|
|
$c='B'<br>
|
<li><i>description</i><span |
$d='B'<br>
|
|
$w, $x, $y, and $z are variables</p></td>
|
style='font-style:normal'> a required field for image labels, it will |
<td width=147 valign=top class="Normal"> <p>The rmap functions does the
|
|
reverse action of map if the same seed is used in calling map and rmap.
|
be used when setting values in the hash. </span></li> |
</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided
|
</ul> |
into three groups separated by a semicolon ;. In LON-CAPA, the separation
|
|
is done by using [] brackets (with create an unamed vector reference)
|
</ul> |
or using an array @a. Note the backslash (\) before the arguments in
|
|
the second and third groups (Which cause Perl to send to variable locations
|
</ul> |
rather than the variable values, similar to a C pointer).</p></td>
|
|
</tr>
|
<li><b>Scripting </b></li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
</ul> |
<td width=134 valign=top class="Normal"> <p>$a=&xmlparse($string) </p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Runs the internal parser over
|
<p>These tags allow the document to behave programatically </p> |
the argument parsing for display. <b>Warning</b><span style='font-weight:normal'>
|
|
This will result in different strings in different targets. Don't use
|
<ul type=disc> |
the results of this function as an answer.</span></p></td>
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
<ul type=circle> |
</tr>
|
|
<tr>
|
<li><b><display></b><span |
<td width=131 valign=top class="Normal"> <p>tex(a,b), tex("a","b")</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&tex($a,$b), &tex("a","b")</p></td>
|
style='font-weight:normal'> the intervening perl script is evaluated in |
<td width=147 valign=top class="Normal"> <p>Returns a if the output mode
|
|
is in tex otherwise returns b</p></td>
|
the safe space and the return value of the script replaces the entire |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
tag </span></li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>var_in_tex(a)</p></td>
|
<li><b><import></b><span |
<td width=134 valign=top class="Normal"> <p>&var_in_tex($a)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Equivalent to tex("a","")</p></td>
|
style='font-weight:normal'> causes the parse to read in the file named in |
<td width=101 valign=top class="Normal"> </td>
|
|
</tr>
|
the body of the tag and parse it as if the entire text of the file had |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>to_string(x), to_string(x,y)</p></td>
|
existed at location of the tag </span></li> |
<td width=134 valign=top class="Normal"> <p>&to_string($x), &to_string($x,$y)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>If x is an integer, returns
|
<li><b><parserlib></b><span |
a string. If x is real than the output is a string with format given
|
|
by y. For example, if x = 12.3456, &to_string(x,".3F")
|
style='font-weight:normal'> the enclosed filename contains definitions for |
= 12.345 and &to_string(x,".3E") = 1.234E+01.</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
new tags </span></li> |
</tr>
|
|
<tr>
|
<li><b><script></b><span |
<td width=131 valign=top class="Normal"> <p>capa_id(), class(), section(),
|
|
set(), problem()</p></td>
|
style='font-weight:normal'> if the argument <i>type</i></span> is set to |
<td width=134 valign=top class="Normal"> <p>&class(), &section()</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Returns null string, class descriptive
|
"loncapa/perl" the enclosed data is a perl script which is evaluated |
name, section number, set number and null string.</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>capa_id(), set() and problem()
|
inside the perl Safe space. The return value of the script is ignored. |
are no longer used. Currently, they return a null value.</p></td>
|
|
</tr>
|
</li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>name(), student_number()</p></td>
|
<li><b><scriptlib></b><span |
<td width=134 valign=top class="Normal"> <p>&name(), &student_number()</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Return the full name in the
|
style='font-weight:normal'> the enclosed filename contains perl code to |
following format: lastname, firstname initial. Student_number returns
|
|
the student 9-alphanumeric string. If undefined, the functions return
|
run in the safe space </span></li> |
null.</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
<li><b><block></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> has a required argument <i>condition</i></span> |
<td width=131 valign=top class="Normal"> <p>open_date(), due_date(), answer_date()</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&open_date(), &due_date(),
|
that is evaluated, it the condition is true everything inside the tag |
&answer_date()</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Problem open date, due date
|
is evaluated, if it is false everything inside the block tag is skipped |
and answer date. The time is also included in 24-hr format.</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>Output format for time is changed
|
</li> |
slightly. If pass noon, it displays ..pm else it displays ..am. So 23:59
|
|
is displayed as 11:59 pm.</p></td>
|
<li><b><notsolved></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> everything inside the tag is skipped if the |
<td width=131 valign=top class="Normal"> <p>get_seed(), set_seed()</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>Not implemented</p></td>
|
problem is "solved" </span></li> |
<td width=147 valign=top class="Normal"> <p>Get and set the random seed.</p></td>
|
|
<td width=101 valign=top class="Normal"> </td>
|
<li><b><postanswerdate></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> everything inside the tag is skipped if the |
<td width=131 valign=top class="Normal"> <p>sub_string(a,b,c)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>&sub_string($a,$b,$c) <br>
|
problem is before the answer date </span></li> |
perl substr function. However, note the differences</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Retrieve a portion of string
|
<li><b><preduedate></b><span |
a starting from b and length c. For example, $a = "Welcome
|
|
to LON-CAPA"; $result=&sub_string($a,4,4); then $result is
|
style='font-weight:normal'> everything inside the tag is skipped if the |
"come"</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>Perl intrinsic function, substr(string,b,c)
|
problem is after the due date </span></li> |
starts counting from 0 (as opposed to 1). In the example to the left,
|
|
substr($a,4,4) returns "ome ".</p></td>
|
<li><b><randomlist></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> the enclosed tags are parsed in a stable random |
<td width=131 valign=top class="Normal"> <p>array[xx]</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@arrayname <br>
|
order, optional argument <i>show</i></span> restricts the number of tags |
Array is intrinsic in perl. To access a specific element use $arrayname[$n]
|
|
where $n is the $n+1 element since the array count starts from 0</p></td>
|
indie that are actually parsed the no more than <i>show</i><span |
<td width=147 valign=top class="Normal"> <p>"xx" can be a variable
|
|
or a calculation.</p></td>
|
style='font-style:normal'>. </span></li> |
<td width=101 valign=top class="Normal"> <p>In LON-CAPA, an array is defined
|
|
by @arrayname. It is not necessary to specify the dimension of the array. </p></td>
|
<li><b><solved></b><span |
</tr>
|
|
<tr>
|
style='font-weight:normal'> everything inside the tag is skipped if the |
<td width=131 valign=top class="Normal"> <p>array_moments(B,A)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@B=&array_moments(@A)</p></td>
|
problem is "not solved" </span></li> |
<td width=147 valign=top class="Normal"> <p>Evaluates the moments of an
|
|
array A and place the result in array B[i] where i = 0 to 4. The contents
|
<li><b><while></b><span |
of B are as follows: B[0] = number of elements, B[1] = mean, B[2] =
|
|
variance, B[3] = skewness and B[4] = kurtosis.</p></td>
|
style='font-weight:normal'> implements a while loop, required argument <i>condition</i></span> |
<td width=101 valign=top class="Normal"> <p>In CAPA, the moments are passed
|
|
as an array in the first argument whereas in LON-CAPA, the array containing
|
is a perl scriptlet that when evaluated results in a true or false value, |
the moments are set equal to the function.</p></td>
|
|
</tr>
|
on true the entirety of the text between the whiles is parsed. The condition |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>array_max(Name), array_min(Name)</p></td>
|
is tested again, etc. If false it goes to the next node in the parse. |
<td width=134 valign=top class="Normal"> <p>&min(@Name), &max(@Name)</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>In LON-CAPA to find the maximum
|
</li> |
value of an array, use &max(@arrayname) and to find the minimum
|
|
value of an array, use &min(@arrayname)</p></td>
|
</ul> |
<td width=101 valign=top class="Normal"> <p>Combined with the min and max
|
|
functions defined earlier.</p></td>
|
<li><b>Structure Tags </b></li> |
</tr>
|
|
<tr>
|
</ul> |
<td width=131 valign=top class="Normal"> <p>init_array(Name)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>undef @name</p></td>
|
<p>These tags give the problem a structure and take care of the recording of |
<td width=147 valign=top class="Normal"> <p>To destroy the contents of an
|
|
array, use</p></td>
|
data and giving the student messages. </p> |
<td width=101 valign=top class="Normal"> <p>Use perl intrinsic undef function.</p></td>
|
|
</tr>
|
<ul type=disc> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>random_normal (return_array,item_cnt,seed,av,std_dev)</p></td>
|
<ul type=circle> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_normal
|
|
($item_cnt,$seed,$av,$std_dev)</p></td>
|
<li><b><problem></b><span |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
of normal distribution of average $av and standard deviation $std_dev.
|
style='font-weight:normal'> must be the first tag in the file, this tag |
The distribution is generated from seed $seed</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
sets up the header of the webpage and generates the submit buttons, it |
as the first argument whereas in LON-CAPA the results are set equal
|
|
to the function.</p></td>
|
also handles due dates properly </span></li> |
</tr>
|
|
<tr>
|
<li><b><part></b><span |
<td width=131 valign=top class="Normal"> <p>random_beta (return_array,item_cnt,seed,aa,bb)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_beta
|
style='font-weight:normal'> must be below <problem> if it is going |
($item_cnt,$seed,$aa,$bb) <br>
|
|
NOTE: Both $aa and $bb MUST be greater than 1.0E-37.</p></td>
|
to be used. It does many of the same tasks as <problem> but allows |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
of beta distribution. The density of beta is: X^($aa-1) *(1-X)^($bb-1)
|
multiple separate problems to exist in a single file. </span></li> |
/B($aa,$bb) for 0<X<1.</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
<li><b><startouttext><endouttext></b><span |
as the first argument whereas in LON-CAPA the results are set equal
|
|
to the function.</p></td>
|
style='font-weight:normal'> these tags are somewhat special, they must have |
</tr>
|
|
<tr>
|
no internal text and occur in pairs. Their use is to mark up the problem |
<td width=131 valign=top class="Normal"> <p>random_gamma (return_array,item_cnt,seed,a,r)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_gamma
|
so the web editor knows what sections should be edited in a plain text |
($item_cnt,$seed,$a,$r) <br>
|
|
NOTE: Both $a and $r MUST be positive.</p></td>
|
block on the web. </span></li> |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
of gamma distribution. The density of gamma is: ($a**$r)/gamma($r) *
|
</ul> |
X**($r-1) * exp(-$a*X).</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
</ul> |
as the first argument whereas in LON-CAPA the results are set equal
|
|
to the function.</p></td>
|
<h3><a name="_Toc421867128"><script> Functions</a></h3> |
</tr>
|
|
<tr>
|
<p>A list of functions that have been written that are available in the Safe |
<td width=131 valign=top class="Normal"> <p>random_exponential (return_array,item_cnt,seed,av)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_exponential
|
space scripting environment inside a problem. </p> |
($item_cnt,$seed,$av) <br>
|
|
NOTE: $av MUST be non-negative.</p></td>
|
<ul type=disc> |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
of exponential distribution. </p></td>
|
<li>sin(x), cos(x), tan(x)</li> |
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
|
as the first argument whereas in LON-CAPA the results are set equal
|
<li>asin(x), acos(x), atan(x), atan2(y,x)</li> |
to the function.</p></td>
|
|
</tr>
|
<li>log(x), log10(x)</li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>random_poisson (return_array,item_cnt,seed,mu)</p></td>
|
<li>exp(), pow(x,y), sqrt(x)</li> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_poisson
|
|
($item_cnt,$seed,$mu) <br>
|
<li>abs(x), sgn(x)</li> |
NOTE: $mu MUST be non-negative.</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
<li>erf(x), erfc(x)</li> |
of poisson distribution. </p></td>
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
<li>ceil(x), floor(x)</li> |
as the first argument whereas in LON-CAPA the results are set equal
|
|
to the function.</p></td>
|
<li>min(...), max(...)</li> |
</tr>
|
|
<tr>
|
<li>factorial(n)</li> |
<td width=131 valign=top class="Normal"> <p>random_chi (return_array,item_cnt,seed,df)</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_chi
|
<li>N%M</li> |
($item_cnt,$seed,$df) <br>
|
|
NOTE: $df MUST be positive.</p></td>
|
<li>sinh(x), cosh(x), tanh(x)</li> |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
of chi_square distribution with $df degrees of freedom. </p></td>
|
<li>asinh(x), acosh(x), atanh(x)</li> |
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
|
as the first argument whereas in LON-CAPA the results are set equal
|
<li>roundto(x,n)</li> |
to the function.</p></td>
|
|
</tr>
|
<li>web("a","b","c") or web(a,b,c)</li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>random_noncentral_chi (return_array,item_cnt,seed,df,nonc)</p></td>
|
<li>html("a") or html(a)</li> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_noncentral_chi
|
|
($item_cnt,$seed,$df,$nonc) <br>
|
<li>j0(x), j1(x), jn(n,x), jv(y,x)</li> |
NOTE: $df MUST be at least 1 and $nonc MUST be non-negative.</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
<li>y0(x), y1(x), yn(n,x), yv(y,x)</li> |
of noncentral_chi_square distribution with $df degrees of freedom and
|
|
noncentrality parameter $nonc. </p></td>
|
<li>random</li> |
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed
|
|
as the first argument whereas in LON-CAPA the results are set equal
|
<li>choose</li> |
to the function.</p></td>
|
|
</tr>
|
<li>tex("a","b") or tex(a,b)</li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
<li>var_in_tex(a)</li> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_f
|
|
($item_cnt,$seed,$dfn,$dfd) <br>
|
<li>to_string(x), to_string(x,y)</li> |
NOTE: Both $dfn and $dfd MUST be positive.</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
<li>class(), section()</li> |
of F (variance ratio) distribution with degrees of freedom $dfn (numerator)
|
|
and $dfd (denominator). </p></td>
|
<li>name(), student_number()</li> |
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
|
</tr>
|
<li>open_date(), due_date(), answer_date()</li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
<li>sub_string()</li> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_noncentral_f
|
|
($item_cnt,$seed,$dfn,$dfd,$nonc) <br>
|
<li>array_moments(array)</li> |
NOTE: $dfn must be at least 1, $dfd MUST be positive, and $nonc must
|
|
be non-negative.</p></td>
|
<li>format(x,y),prettyprint(x,y)</li> |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
of noncentral F (variance ratio) distribution with degrees of freedom
|
<li>map(...)</li> |
$dfn (numerator) and $dfd (denominator). $nonc is the noncentrality
|
|
parameter. </p></td>
|
<li>caparesponse_check</li> |
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
|
</tr>
|
<li>caparesponse_check_list</li> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT DOCUMENTED IN CAPA</p></td>
|
</ul> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_multivariate_normal
|
|
($item_cnt,$seed,\@mean,\@covar) <br>
|
<h3><a name="_Toc421867129">Detailed descriptions of each function and comparison |
NOTE: @mean should be of length p array of real numbers. @covar should
|
|
be a length p array of references to length p arrays of real numbers
|
with CAPA</a></h3> |
(i.e. a p by p matrix.</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
<table border=1 cellpadding=0> |
of multivariate_normal distribution with mean vector @mean and variance-covariance
|
|
matrix. </p></td>
|
<tr> |
<td width=101 valign=top class="Normal"> <p>Note the backslash before the
|
|
@mean and @covar arrays.</p></td>
|
<td width=131 valign=top class="Normal"> <p><b>CAPA Functions</b></p></td> |
</tr>
|
|
<tr>
|
<td width=134 valign=top class="Normal"> <p><b>LON-CAPA</b></p></td> |
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_multinomial
|
<td width=147 valign=top class="Normal"> <p><b>Descriptions</b></p></td> |
($item_cnt,$seed,@p) <br>
|
|
NOTE: $item_cnt is rounded with int() and the result must be non-negative.
|
<td width=101 valign=top class="Normal"> <p><b>Differences (if any)</b></p></td> |
The number of elements in @p must be at least 2.</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Returns single observation from
|
</tr> |
multinomial distribution with $item_cnt events classified into as many
|
|
categories as the length of @p. The probability of an event being classified
|
<tr> |
into category i is given by ith element of @p. The observation is an
|
|
array with length equal to @p, so when called in a scalar context it
|
<td width=131 valign=top class="Normal"> <p>sin(x), cos(x), tan(x)</p></td> |
returns the length of @p. The sum of the elements of the obervation
|
|
is equal to $item_cnt.</p></td>
|
<td width=134 valign=top class="Normal"> <p>&sin($x), &cos($x), |
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
|
</tr>
|
&tan($x)</p></td> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
<td width=147 valign=top class="Normal"> <p>Trigonometric functions where |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_permutation
|
|
($item_cnt,@array) </p></td>
|
x is in radians. $x can be a pure number, i.e., you can call &sin(3.1415)</p></td> |
<td width=147 valign=top class="Normal"> <p>Returns @array randomly permuted.</p></td>
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
<td width=101 valign=top class="Normal"> </td> |
</tr>
|
|
<tr>
|
</tr> |
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_uniform
|
<tr> |
($item_cnt,$seed,$low,$high) <br>
|
|
NOTE: $low must be less than or equal to $high.</p></td>
|
<td width=131 valign=top class="Normal"> <p>asin(x), acos(x), atan(x), atan2(y,x)</p></td> |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
from a uniform distribution. </p></td>
|
<td width=134 valign=top class="Normal"> <p>&asin($x), &acos($x), |
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
|
</tr>
|
&atan($x), &atan2($y,$x)</p></td> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
<td width=147 valign=top class="Normal"> <p>Inverse trigonometric functions. |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_uniform_integer
|
|
($item_cnt,$seed,$low,$high) <br>
|
Return value is in radians. For asin and acos the value of x must be |
NOTE: $low and $high are both passed through int(). $low must be less
|
|
than or equal to $high.</p></td>
|
between -1 and 1. The atan2 returns a value between -pi and pi the sign |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
from a uniform distribution in integers. </p></td>
|
of which is determined by y. $x and $y can be pure numbers</p></td> |
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
|
</tr>
|
<td width=101 valign=top class="Normal"> </td> |
<tr>
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
</tr> |
<td width=134 valign=top class="Normal"> <p>@return_array=&random_binomial
|
|
($item_cnt,$seed,$nt,$p) <br>
|
<tr> |
NOTE: $nt is rounded using int() and the result must be non-negative.
|
|
$p must be between 0 and 1 inclusive.</p></td>
|
<td width=131 valign=top class="Normal"> <p>log(x), log10(x)</p></td> |
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates
|
|
from the binomial distribution with $nt trials and the probabilty of
|
<td width=134 valign=top class="Normal"> <p>&log($x), &log10($x)</p></td> |
an event in each trial is $p. </p></td>
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
<td width=147 valign=top class="Normal"> <p>Natural and base-10 logarithm. |
</tr>
|
|
<tr>
|
$x can be a pure number</p></td> |
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_negative_binomial
|
<td width=101 valign=top class="Normal"> </td> |
($item_cnt,$seed,$ne,$p) <br>
|
|
NOTE: $ne is rounded using int() and the result must be positive. $p
|
</tr> |
must be between 0 and 1 exclusive.</p></td>
|
|
<td width=147 valign=top class="Normal"> <p>Generate an array of $item_cnt
|
<tr> |
outcomes generated from negative binomial distribution with $ne events
|
|
and the probabilty of an event in each trial is $p. </p></td>
|
<td width=131 valign=top class="Normal"> <p>exp(x), pow(x,y), sqrt(x)</p></td> |
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
|
|
</tr>
|
<td width=134 valign=top class="Normal"> <p>&exp($x), &pow($x,$y), |
</table>
|
|
<h3><a name="_Toc421867130"><script> Variables</a></h3>
|
&sqrt($x)</p></td> |
<ul type=disc>
|
|
<li>$external::target - set to the current target the xml parser is parsing
|
<td width=147 valign=top class="Normal"> <p>Exponential, power and square |
for </li>
|
|
<li>$external::part - set to the <i>id</i><span style='font-style:normal'>
|
root, i.e.,e<sup>x</sup>, x<sup>y</sup> and /x. $x and $y can be pure |
of the current problem <part>; zero if there are no <part> </span></li>
|
|
<li>$external::gradestatus - set to the value of the current resource.partid.solved
|
numbers</p></td> |
value </li>
|
|
<li>$external::datestatus - set to the current status of the clock either
|
<td width=101 valign=top class="Normal"> </td> |
CLOSED, CAN_ANSWER, CANNOT_ANSWER, SHOW_ANSWER, or UNCHECKEDOUT </li>
|
|
<li>$external::randomseed - set to the number that was used to seed the random
|
</tr> |
number generator </li>
|
|
<li>$pi - set to PI </li>
|
<tr> |
<li>$rad2deg - converts radians to degrees </li>
|
|
<li>$deg2rad - converts degrees to radians </li>
|
<td width=131 valign=top class="Normal"> <p>abs(x), sgn(x)</p></td> |
</ul>
|
|
<h3><a name="_Toc421867131">Form internals</a> </h3>
|
<td width=134 valign=top class="Normal"> <p>&abs($x), &sgn($x)</p></td> |
<p>Form elements used for homework editing/response </p>
|
|
<p>the form is named lonhomework </p>
|
<td width=147 valign=top class="Normal"> <p>Abs takes the absolute value |
<h3><a name="_Toc421867132">Viewing a problem (either CSTR or RES space)</a></h3>
|
|
<ul type=disc>
|
of x while sgn(x) returns 1, 0 or -1 depending on the value of x. For |
<li>grade_target, grade_username, grade_domain, grade_symb - the vaules take
|
|
precedence over the the normal ENV settings of these, use &Apache::lonxml::whichuser()
|
x>0, sgn(x) = 1, for x=0, sgn(x) = 0 and for x<0, sgn(x) = -1. |
to get back the correct vaues of the items </li>
|
|
<li>HWVAL_response:number - the name of the input elements for each response.
|
$x can be a pure number</p></td> |
The response is the response's ID, and the :number part exists only for
|
|
response with multiple foils, and is a unique number in order of the submission
|
<td width=101 valign=top class="Normal"> </td> |
</li>
|
|
<li>changerandseed - the 'Change' button, only exists right after the Change
|
</tr> |
button is clicked </li>
|
|
<li>problemmode - in CSTR, it is either 'View','Edit','EditXML' or 'Analyze'
|
<tr> |
depending on the desired view </li>
|
|
<li>rndseed - the currently requested random seed </li>
|
<td width=131 valign=top class="Normal"> <p>erf(x), erfc(x)</p></td> |
<li>showallfoils - if it exists, and we are in CSTR space, the problem should
|
|
ignore <conceptgroup> and the response's max setting and show all
|
<td width=134 valign=top class="Normal"> <p>&erf($x), &erfc($x)</p></td> |
possible foils </li>
|
|
<li>submit - the name of the Submit button </li>
|
<td width=147 valign=top class="Normal"> <p>Error function. erf = |
<li>submitted - a hidden form parameter that can be used to tell if the student
|
|
has submitted answers or not, if it is set, there should be answers to grade.
|
2/sqrt(pi) integral (0,x) e<sup>t-sq</sup> and <i>erfx(x)</i><span style='font-style:normal'> |
</li>
|
|
</ul>
|
= 1.0 - </span><i>erf(x)</i><span |
<h3><a name="_Toc421867133">Editing a problem (Edit mode)</a></h3>
|
|
<p>tagdepth referes to the current value of the xmlparsers tagdepth couter ($Apache::lonxml::currentdepth)</p>
|
style='font-style:normal'>. $x can be a pure number</span></p></td> |
<p>Note: the file edit.pm has many helper functions for creating the standard
|
|
elements for editing a tag and it's attributes, all of those functions follow
|
<td width=101 valign=top class="Normal"> </td> |
these conventions </p>
|
|
<ul type=disc>
|
</tr> |
<li>tagdepth_argname - I.E. 1_3.max, a parameter editing value, max is the
|
|
name of the parameter and it is for the third tag inside the first tag </li>
|
<tr> |
<li>delete_tagdepth - if set to yes, delete tag tagdepth and all tags inside
|
|
of it </li>
|
<td width=131 valign=top class="Normal"> <p>ceil(x), floor(x)</p></td> |
<li>homework_edit_tagdepth - used by both &Apache::edit::editline and
|
|
&Apache::edit::editfield for the <textarea> and <input>
|
<td width=134 valign=top class="Normal"> <p>&ceil($x), &floor($x)</p></td> |
form elements they create </li>
|
|
<li>insert_tagdepth - used to request an tag insert, it is set to the id number
|
<td width=147 valign=top class="Normal"> <p>Ceil function returns an integer |
of the requested tag in the %Apache::lonxml::insertlist </li>
|
|
</ul>
|
rounded up whereas floor function returns and integer rounded down. |
<ul type=disc>
|
|
<li> </li>
|
If x is an integer than it returns the value of the integer. $x can |
</ul>
|
|
<h3><a name="_Toc421867134">Symbs</a></h3>
|
be a pure number</p></td> |
<p>To identify a specific instance of a resource, LON-CAPA uses symbols or Òsymbs.Ó
|
|
These identifiers are built from the URL of the map, the resource number of
|
<td width=101 valign=top class="Normal"> </td> |
the resource in the map, and the URL of the resource itself. The latter is
|
|
somewhat redundant, but might help if maps change.</p>
|
</tr> |
<p>An example is</p>
|
|
<p class=MsoHeader><span style='font-family:"Courier New"'> msu/korte/parts/part1.sequence___19___msu/korte/tests/part12.problem</span></p>
|
<tr> |
<p class=MsoHeader>The respective map entry is</p>
|
|
<p class=MsoHeader><span style='font-family:"Courier New"'> <resource
|
<td width=131 valign=top class="Normal"> <p>min(...), max(...)</p></td> |
id="19" src="/res/msu/korte/tests/part12.problem"
|
|
</span></p>
|
<td width=134 valign=top class="Normal"> <p>&min(...), &max(...)</p></td> |
<p class=MsoHeader><span style='font-family:"Courier New"'> title="Problem
|
|
2"></span></p>
|
<td width=147 valign=top class="Normal"> <p>Returns the minimum/ maximum |
<p class=MsoHeader><span style='font-family:"Courier New"'> </resource></span></p>
|
|
<p class=MsoHeader>Symbs are used by the random number generator, as well as
|
value of a list of arguments if the arguments are numbers. If the arguments |
to store and restore data specific to a certain instance of for example a
|
|
problem.</p>
|
are strings then it returns a string sorted according to the ASCII codes</p></td> |
<h3><a name="_Toc421867135">Store / Restore</a></h3>
|
|
<p><span style='color:black'>2 important functions in lonnet.pm are </span><span style='font-family:"Courier New";color:black'>&Apache::lonnet::cstore()</span><span
|
<td width=101 valign=top class="Normal"> </td> |
style='color:black'> and </span><span style='font-family:"Courier New";
|
|
color:black'>&Apache::lonnet:restore()</span><span style='color:black'> (and
|
</tr> |
</span><span style='font-family:"Courier New";color:black'>&Apache::lonnet::store()</span><span
|
|
style='color:black'>, which is is the non-critical message twin of </span><span
|
<tr> |
style='font-family:"Courier New";color:black'>cstore</span><span
|
|
style='color:black'>). These functions are for handlers to store a perl hash to
|
<td width=131 valign=top class="Normal"> <p>factorial(n)</p></td> |
a userÕs permanent data space in an easy manner, and to retrieve it again
|
|
on another call. It is expected that a handler would use this once at the
|
<td width=134 valign=top class="Normal"> <p>&factorial($n)</p></td> |
beginning to retrieve data, and then again once at the end to send only the
|
|
new data back. </span></p>
|
<td width=147 valign=top class="Normal"> <p>Argument (n) must be an integer |
<p><span style='color:black'>The data is stored in the userÕs data directory
|
|
on the userÕs homeserver under the ID of the course.</span></p>
|
else it will round down. The largest value for n is 170. $n can be a |
<p><span style='color:black'>The hash that is returned by </span><span
|
|
style='font-family:"Courier New";color:black'>restore</span><span
|
pure number</p></td> |
style='color:black'> will have all of the previous value for all of the elements
|
|
of the hash. </span></p>
|
<td width=101 valign=top class="Normal"> </td> |
<p><span style='color:black'>Example: </span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>#creating a hash</span></p>
|
</tr> |
<p><span style='font-family:"Courier New";color:black'>my %hash;</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='bar';</span></p>
|
<tr> |
<p><span style='font-family:"Courier New";color:black'>#storing it</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>&Apache::lonnet::cstore(\%hash);</span></p>
|
<td width=131 valign=top class="Normal"> <p>N%M</p></td> |
<p><span style='font-family:"Courier New";color:black'>#changing a value </span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='notbar';</span></p>
|
<td width=134 valign=top class="Normal"> <p>$N%$M</p></td> |
<p><span style='font-family:"Courier New";color:black'>#adding a new value</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>$hash{'bar'}='foo';</span></p>
|
<td width=147 valign=top class="Normal"> <p>N and M are integers and returns |
<p><span style='font-family:"Courier New";color:black'>&Apache::lonnet::cstore(\%hash);</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>#retrieving the hash</span></p>
|
the remainder (in integer) of N/M. $N and $M can be pure numbers</p></td> |
<p><span style='font-family:"Courier New";color:black'>my %history=&Apache::lonnet::restore();</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>#print the hash</span></p>
|
<td width=101 valign=top class="Normal"> </td> |
<p><span style='font-family:"Courier New";color:black'>foreach my $key (sort(keys(%history)))
|
|
{</span></p>
|
</tr> |
<p><span style='font-family:"Courier New";color:black'> print("\%history{$key}
|
|
= $history{$key}");</span></p>
|
<tr> |
<p><span style='font-family:"Courier New";color:black'>}</span></p>
|
|
<p><span style='color:black'>Will print out: </span></p>
|
<td width=131 valign=top class="Normal"> <p>sinh(x), cosh(x), tanh(x)</p></td> |
<p><span style='font-family:"Courier New";color:black'>%history{1:foo} = bar</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>%history{1:keys} = foo:timestamp</span></p>
|
<td width=134 valign=top class="Normal"> <p>&sinh($x), &cosh($x), |
<p><span style='font-family:"Courier New";color:black'>%history{1:timestamp}
|
|
= 990455579</span></p>
|
&tanh($x)</p></td> |
<p><span style='font-family:"Courier New";color:black'>%history{2:bar} = foo</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>%history{2:foo} = notbar</span></p>
|
<td width=147 valign=top class="Normal"> <p>Hyperbolic functions. $x can |
<p><span style='font-family:"Courier New";color:black'>%history{2:keys} = foo:bar:timestamp</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>%history{2:timestamp}
|
be a pure number</p></td> |
= 990455580</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>%history{bar} = foo</span></p>
|
<td width=101 valign=top class="Normal"> </td> |
<p><span style='font-family:"Courier New";color:black'>%history{foo} = notbar</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>%history{timestamp} =
|
</tr> |
990455580</span></p>
|
|
<p><span style='font-family:"Courier New";color:black'>%history{version} = 2</span></p>
|
<tr> |
<p><span style='color:black'>Note that the special hash entries <i>keys</i></span><span style='color:black'>,
|
|
<i>version</i></span><span
|
<td width=131 valign=top class="Normal"> <p>asinh(x), acosh(x), atanh(x)</p></td> |
style='color:black'> and <i>timestamp</i></span><span style='color:black'> were
|
|
added to the hash. <i>version</i></span><span style='color:black'> will be
|
<td width=134 valign=top class="Normal"> <p>&asinh($x), &acosh($x), |
equal to the total number of versions of the data that have been stored. The
|
|
<i>timestamp</i></span><span
|
&atanh($x)</p></td> |
style='color:black'> attribute will be the UNIX time the hash was stored. <i>keys</i></span><span
|
|
style='color:black'> is available in every historical section to list which keys
|
<td width=147 valign=top class="Normal"> <p>Inverse hyperbolic functions. |
were added or changed at a specific historical revision of a hash. </span></p>
|
|
<p><span style='color:black'><b>Warning</b></span><span
|
$x can be a pure number</p></td> |
style='color:black'> do not store the hash that restore returns directly. This
|
|
will cause a mess since it will restore the historical keys as if the were
|
<td width=101 valign=top class="Normal"> </td> |
new keys. I.E. </span><span style='font-family:"Courier New";color:black'>1:foo</span><span
|
|
style='color:black'> will become </span><span style='font-family:"Courier New";
|
</tr> |
color:black'>1:1:foo</span><span style='color:black'> etc. </span></p>
|
|
<p><span style='color:black'><b>Calling convention: </b></span></p>
|
<tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New";
|
|
color:black'> my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$uname,$home);</span></p>
|
<td width=131 valign=top class="Normal"> <p>/DIS($x,"nn")</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New";
|
|
color:black'> &Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$uname,$home);</span></p>
|
<td width=134 valign=top class="Normal"> <p>&format($x,"nn")</p></td> |
<p><span style='color:black'><b>Arguments (only %newrecord is required the rest
|
|
are somewhat optional, read the details): </b></span></p>
|
<td width=147 valign=top class="Normal"> <p>Display or format $x as nn where |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
nn is nF or nE and n is an integer.</p></td> |
</span></span> <span style='color:black'><i>$symb</i></span><span
|
|
style='color:black'> - a string containing the internal name of the specific instance
|
<td width=101 valign=top class="Normal"> <p> The difference is obvious.</p></td> |
of a resource. Usually this value can be gotten from </span><span
|
|
style='font-family:"Courier New";color:black'>&Apache::lonnet::symbread($filename)</span><span
|
</tr> |
style='color:black'>. If the argument is blank, it will attempt to use </span><span
|
|
style='font-family:"Courier New";color:black'>symbread()</span><span
|
<tr> |
style='color:black'> for it. If the result is ambiguous store/restore will fail.
|
|
</span></p>
|
<td width=131 valign=top class="Normal"> <p>Not in CAPA</p></td> |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
<td width=134 valign=top class="Normal"> <p>&prettyprint($x,"nn")</p></td> |
</span></span> <span style='color:black'><i>$courseid</i></span><span
|
|
style='color:black'> - the internal name for a course, usually found in </span><span
|
<td width=147 valign=top class="Normal"> <p>Display or format $x as nn where |
style='font-family:"Courier New";color:black'>$ENV{'request.course.id'}</span><span
|
|
style='color:black'> which is what will be looked at if no value is passed to
|
nn is nF or nE and n is an integer. In E mode it will attempt to generate |
the functions. </span></p>
|
|
<p> <span style='font-family:Symbol;
|
a pretty x10^3 rather than a E3 following the number</p></td> |
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
|
</span></span> <span style='color:black'><i>$domain</i></span><span
|
<td width=101 valign=top class="Normal"> </td> |
style='color:black'> - the domain that the user belongs to, usually found in </span><span
|
|
style='font-family:"Courier New";color:black'>$ENV{'user.domain'}</span><span
|
</tr> |
style='color:black'> which is what will be looked at if no value is passed to
|
|
the functions. </span></p>
|
<tr> |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
<td width=131 valign=top class="Normal"> <p>roundto(x,n)</p></td> |
</span></span> <span style='color:black'><i>$uname</i></span><span
|
|
style='color:black'> - the login name for the user, usually found in </span><span
|
<td width=134 valign=top class="Normal"> <p>&roundto($x,$n)</p></td> |
style='font-family:"Courier New";color:black'>$ENV{'user.name'}</span><span
|
|
style='color:black'> which is what will be looked at if no value is passed to
|
<td width=147 valign=top class="Normal"> <p>Rounds a real number to n decimal |
the functions. </span></p>
|
|
<p> <span style='font-family:Symbol;
|
points. $x and $n can be pure numbers</p></td> |
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
|
</span></span> <span style='color:black'><i>$home</i></span><span
|
<td width=101 valign=top class="Normal"> </td> |
style='color:black'> - the homeserver for the user, usually found in </span><span
|
|
style='font-family:"Courier New";color:black'>$ENV{'user.home'}</span><span
|
</tr> |
style='color:black'> but can be easily gotten from a domain and name through </span><span
|
|
style='font-family:"Courier New";color:black'>&Apache::lonnet::homeserver($uname,$domain)</span><span
|
<tr> |
style='color:black'>. If no value is passed to store/restore the value in %ENV
|
|
will be used. </span></p>
|
<td width=131 valign=top class="Normal"> <p>web("a","b","c") |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
or web(a,b,c)</p></td> |
</span></span> <span style='color:black'><i>%newrecord</i></span><span
|
|
style='color:black'> - the hash to store being passed by reference </span></p>
|
<td width=134 valign=top class="Normal"> <p>&web("a","b","c") |
<p><span style='color:black'><b>Return values: </b></span></p>
|
|
<p> <span style='font-family:Symbol;
|
or &web($a,$b,$c)</p></td> |
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
|
</span></span> <span style='color:black'><i>an empty string</i></span><span
|
<td width=147 valign=top class="Normal"> <p>Returns either a, b or c depending |
style='color:black'> - the function was unable to determine exactly where to store
|
|
or restore from. At least one of the "optional" arguments was unable
|
on the output medium. a is for plain ASCII, b for tex output and c for |
to be determined. </span></p>
|
|
<p> <span style='font-family:Symbol;
|
html output</p></td> |
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
|
</span></span> <span style='color:black'><i>a hash</i></span><span
|
<td width=101 valign=top class="Normal"> </td> |
style='color:black'> - restore successfully read a old hash for this specific
|
|
user / resource instance. </span></p>
|
</tr> |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
<tr> |
</span></span> <span style='color:black'><i>no_such_host</i></span><span
|
|
style='color:black'> - the <i>$home</i></span><span style='color:black'> specfied
|
<td width=131 valign=top class="Normal"> <p>html("a") or html(a)</p></td> |
desn't exist in the network. </span></p>
|
|
<p> <span style='font-family:Symbol;
|
<td width=134 valign=top class="Normal"> <p>&html("a") or |
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
|
</span></span> <span style='color:black'><i>con_delayed</i></span><span
|
&html($a)</p></td> |
style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable
|
|
at this time. The store will be delayed until it is again available. </span></p>
|
<td width=147 valign=top class="Normal"> <p>Output only if the output mode |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
chosen is in html format</p></td> |
</span></span> <span style='color:black'><i>con_failed</i></span><span
|
|
style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable
|
<td width=101 valign=top class="Normal"> </td> |
at this time and store was unable to delay the store until a later time. The
|
|
store failed. </span></p>
|
</tr> |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
<tr> |
</span></span> <span style='color:black'><i>ok</i></span><span
|
|
style='color:black'> - the store completed succesfully </span></p>
|
<td width=131 valign=top class="Normal"> <p>jn(m,x)</p></td> |
<p> <span style='font-family:Symbol;
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'>
|
<td width=134 valign=top class="Normal"> <p>&j0($x), &j1($x), &jn($m,$x), |
</span></span> <span style='color:black'><i>error:</i></span><span
|
|
style='color:black'> - remote server failied to store or restore the reason follows
|
&jv($y,$x)</p></td> |
the </span><span style='font-family:"Courier New";color:black'>:</span><span
|
|
style='color:black'> </span></p>
|
<td width=147 valign=top class="Normal"> <p>Bessel functions of the first |
<h3><a name="_Toc421867136">Mandatory Homework Data</a></h3>
|
|
<pre> </pre>
|
kind with orders 0, 1 and m respectively. For jn(m,x), m must be an |
<pre><span
|
|
style='font-size:9.0pt'><Provided by &EXT() and set external to the resource, required></span></pre>
|
integer whereas for jv(y,x), y is real. $x can be a pure number. $m |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.opendate #unix time of when the local machine should let the</span></pre>
|
must be an integer and can be a pure integer number. $y can be a pure |
<pre><span
|
|
style='font-size:9.0pt'> #student in</span></pre>
|
real number</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
<td width=101 valign=top class="Normal"> <p>In CAPA, j0, j1 and jn are contained |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.duedate #unix time of when the local machine should stop</span></pre>
|
in one function, jn(m,x) where m takes the value of 0, 1 or 2. jv(y,x) |
<pre><span
|
|
style='font-size:9.0pt'> #accepting answers</span></pre>
|
is new to LON-CAPA.</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.answerdate #unix time of when the local machine should</span></pre>
|
<tr> |
<pre><span
|
|
style='font-size:9.0pt'> #provide the correct answer to the student</span></pre>
|
<td width=131 valign=top class="Normal"> <p>yn(m,x)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
<td width=134 valign=top class="Normal"> <p>&y0($x), &y1($x), &yn($m,$x), |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.weight # points the problem is worth</span></pre>
|
&yv($y,$x)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
<td width=147 valign=top class="Normal"> <p>Bessel functions of the second |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.maxtries # maximum number of attempts the student can have</span></pre>
|
kind with orders 0, 1 and m respectively. For yn(m,x), m must be an |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
integer whereas for yv(y,x), y is real. $x can be a pure number. $m |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.type # type of problem homework can be:</span></pre>
|
must be an integer and can be a pure integer number. $y can be a pure |
<pre><span
|
|
style='font-size:9.0pt'> # homework - randomized, graded, stored with </span></pre>
|
real number</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # requesting user, full feeback</span></pre>
|
<td width=101 valign=top class="Normal"> <p>In CAPA, y0, y1 and yn are contained |
<pre><span
|
|
style='font-size:9.0pt'> # exam - randomized, graded, stored with </span></pre>
|
in one function, yn(m,x) where m takes the value of 0, 1 or 2. yv(y,x) |
<pre><span
|
|
style='font-size:9.0pt'> # requesting user, minimal feedback</span></pre>
|
is new to LON-CAPA.</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # form - unrandomized, ungraded, stored with </span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'> # specified user, full feedback</span></pre>
|
<tr> |
<pre><span
|
|
style='font-size:9.0pt'> # survey - unrandomized, ungraded, stored with </span></pre>
|
<td width=131 valign=top class="Normal"> <p>random(l,u,d)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # requesting user, full feedback</span></pre>
|
<td width=134 valign=top class="Normal"> <p>&random($l,$u,$d)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
<td width=147 valign=top class="Normal"> <p>Returns a uniformly distributed |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
random number between the lower bound, l and upper bound, u in steps |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
of d. $l, $u and $d can be pure numbers</p></td> |
<pre><span
|
|
style='font-size:9.0pt'><numerical/formula/response needed: (has a default if nonexistant)></span></pre>
|
<td width=101 valign=top class="Normal"> <p>In CAPA, all the 3 arguments |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
must be of the same type. However, now you can mix the type</p></td> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.responseid.tol # lots of possibilities here</span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'> # percentage, range (inclusive and exclusive),</span></pre>
|
<tr> |
<pre><span
|
|
style='font-size:9.0pt'> # variable name, etc</span></pre>
|
<td width=131 valign=top class="Normal"> <p>choose(i,...)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # 3%</span></pre>
|
<td width=134 valign=top class="Normal"> <p>&choose($i,...)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # 0.5</span></pre>
|
<td width=147 valign=top class="Normal"> <p>Choose the ith item from the |
<pre><span
|
|
style='font-size:9.0pt'> # .05+</span></pre>
|
argument list. i must be an integer greater than 0 and the value of |
<pre><span
|
|
style='font-size:9.0pt'> # 3%+</span></pre>
|
i should not exceed the number of items. $i can be a pure integer</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # 0.5+,.005</span></pre>
|
<td width=101 valign=top class="Normal"> </td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.responseid.sig # one or two comma sepearted integers, </span></pre>
|
<tr> |
<pre><span
|
|
style='font-size:9.0pt'> # specifying the number of significatn figures</span></pre>
|
<td width=131 valign=top class="Normal"> <p>/MAP(seed;w,x,y,z;a,b,c,d)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # a student must use</span></pre>
|
<td width=134 valign=top class="Normal"> <p>Option 1 - &map($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
or <br> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
Option 2 - &map($seed,\@mappedArray,[$a,$b,$c,$d]) <br> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
Option 3 - @mappedArray = &map($seed,[$a,$b,$c,$d]) <br> |
<pre><span
|
|
style='font-size:9.0pt'><Problem sets using cstore (required):></span></pre>
|
Option 4 - ($w,$x,$y,$z) = &map($seed,\@a) <br> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.solved # if not set, problem yet to be viewed</span></pre>
|
where $a='A'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # incorrect_attempted == incorrect and attempted</span></pre>
|
$b='B'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # correct_by_student == correct by student work</span></pre>
|
$c='B'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # correct_by_override == correct, instructor override</span></pre>
|
$d='B'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # incorrect_by_override == incorrect, instructor override</span></pre>
|
$w, $x, $y, and $z are variables</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # excused == excused, problem no longer counts for student</span></pre>
|
<td width=147 valign=top class="Normal"> <p>Assigns to the variables $w, |
<pre><span
|
|
style='font-size:9.0pt'> # '' (empty) == not attempted</span></pre>
|
$x, $y and $z the values of the $a, $b, $c and $c (A, B, C and D). The |
<pre><span
|
|
style='font-size:9.0pt'> # ungraded_attempted == an ungraded answer has been</span></pre>
|
precise value for $w .. depends on the seed. (Option 1 of calling map). |
<pre><span
|
|
style='font-size:9.0pt'> sumbitted and stored</span></pre>
|
In option 2, the values of $a, $b .. are mapped into the array, @mappedArray. |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.tries # positive integer of number of unsuccessful attempts</span></pre>
|
The two options illustrate the different grouping. Options 3 and 4 give |
<pre><span
|
|
style='font-size:9.0pt'> # made, malformed answers don't count if feedback is</span></pre>
|
a consistent way (with other functions) of mapping the items. For each |
<pre><span
|
|
style='font-size:9.0pt'> # on</span></pre>
|
option, the group can be passed as an array, for example, [$a,$b,$c,$d] |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
=> \@a.</p></td> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.awarded # float between 0 and 1, percentage of</span></pre>
|
<td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided |
<pre><span
|
|
style='font-size:9.0pt'> # resource.weight that the stundent earned.</span></pre>
|
into three groups separated by a semicolon ;. In LON-CAPA, the separation |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
is done by using [] brackets or using an array @a. Note the backslash |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.award # final detailed award that was applied to the entire</span></pre>
|
(\) before the arguments in the second and third groups.</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # part of the question, check awarddetail below for</span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'> # possibilities</span></pre>
|
<tr> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
<td width=131 valign=top class="Normal"> <p>rmap(seed;a,b,c,d;w,x,y,z)</p></td> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.previous # boolean, is this submission a previous submission</span></pre>
|
<td width=134 valign=top class="Normal"> <p>Option 1 - &rmap($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
or <br> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.responseid.submissons</span></pre>
|
Option 2 - &rmap($seed,\@rmappedArray,[$a,$b,$c,$d]) <br> |
<pre><span
|
|
style='font-size:9.0pt'> # the student submitted string for the part.response</span></pre>
|
Option 3 - @rmapped_array = &rmap($seed,[$a,$b,$c,$d]) <br> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
Option 4 - ($w,$x,$y,$z) = &rmap($seed,\@a) <br> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.responseid.awarddetail</span></pre>
|
where $a='A'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # list of all of the results of grading the submissions</span></pre>
|
$b='B'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # in detailed form of the specific failure</span></pre>
|
$c='B'<br> |
<pre><span
|
|
style='font-size:9.0pt'> #Possible values:</span></pre>
|
$d='B'<br> |
<pre><span
|
|
style='font-size:9.0pt'> # EXACT_ANS, APPROX_ANS : student is correct</span></pre>
|
$w, $x, $y, and $z are variables</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # NO_RESPONSE : student submitted no response</span></pre>
|
<td width=147 valign=top class="Normal"> <p>The rmap functions does the |
<pre><span
|
|
style='font-size:9.0pt'> # MISSING_ANSWER : student submitted some but not</span></pre>
|
reverse action of map if the same seed is used in calling map and rmap. |
<pre><span
|
|
style='font-size:9.0pt'> # all parts of a response</span></pre>
|
</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # WANTED_NUMERIC : expected a numeric answer and</span></pre>
|
<td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided |
<pre><span
|
|
style='font-size:9.0pt'> # didn't get one</span></pre>
|
into three groups separated by a semicolon ;. In LON-CAPA, the separation |
<pre><span
|
|
style='font-size:9.0pt'> # SIG_FAIL : incorrect number of Significant Figures</span></pre>
|
is done by using [] brackets (with create an unamed vector reference) |
<pre><span
|
|
style='font-size:9.0pt'> # UNIT_FAIL : incorrect unit</span></pre>
|
or using an array @a. Note the backslash (\) before the arguments in |
<pre><span
|
|
style='font-size:9.0pt'> # UNIT_NOTNEEDED : Submitted a unit when one shouldn't</span></pre>
|
the second and third groups (Which cause Perl to send to variable locations |
<pre><span
|
|
style='font-size:9.0pt'> # NO_UNIT : needed a unit but none was submitted</span></pre>
|
rather than the variable values, similar to a C pointer).</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # BAD_FORMULA : syntax error in submitted formula</span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'> # INCORRECT : answer was wrong</span></pre>
|
<tr> |
<pre><span
|
|
style='font-size:9.0pt'> # SUBMITTED : submission wasn't graded</span></pre>
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # ERROR : unable to get a grade</span></pre>
|
<td width=134 valign=top class="Normal"> <p>$a=&xmlparse($string) </p></td> |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
<td width=147 valign=top class="Normal"> <p>Runs the internal parser over |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.responseid.message (optional) (not yet supported)</span></pre>
|
the argument parsing for display. <b>Warning</b><span style='font-weight:normal'> |
<pre><span
|
|
style='font-size:9.0pt'> # a message that should be shown to the student</span></pre>
|
This will result in different strings in different targets. Don't use |
<pre><span
|
|
style='font-size:9.0pt'> </span></pre>
|
the results of this function as an answer.</span></p></td> |
<pre><span
|
|
style='font-size:9.0pt'>resource.partid.bonustries (optional) (not yet supported)</span></pre>
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
<pre><span
|
|
style='font-size:9.0pt'> # if set, added to the maxtries parameter for student </span></pre>
|
</tr> |
<pre><span
|
|
style='font-size:9.0pt'> # total number of tries overall</span></pre>
|
<tr> |
<pre> </pre>
|
|
<h3><a name="_Toc421867137">Sample Problems</a></h3>
|
<td width=131 valign=top class="Normal"> <p>tex(a,b), tex("a","b")</p></td> |
<p class=H5><span style='layout-grid-mode:
|
|
both'>A Simple Problem</span></p>
|
<td width=134 valign=top class="Normal"> <p>&tex($a,$b), &tex("a","b")</p></td> |
<p style='
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'><problem></span></p>
|
<td width=147 valign=top class="Normal"> <p>Returns a if the output mode |
<p style='
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>
|
is in tex otherwise returns b</p></td> |
<script type="loncapa/perl"></span></p>
|
|
<p style='
|
<td width=101 valign=top class="Normal"> </td> |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$length=&random(10,99,.1);</span></p>
|
|
<p style='
|
</tr> |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$width=&random(1,10,.01);</span></p>
|
|
<p style='
|
<tr> |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>@area=($length*($width*10));</span></p>
|
|
<p style='
|
<td width=131 valign=top class="Normal"> <p>var_in_tex(a)</p></td> |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</script></span></p>
|
<td width=134 valign=top class="Normal"> <p>&var_in_tex($a)</p></td> |
<p style='
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>What
|
<td width=147 valign=top class="Normal"> <p>Equivalent to tex("a","")</p></td> |
is the area of a box $length mm in length and </span></p>
|
|
<p style='
|
<td width=101 valign=top class="Normal"> </td> |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&format($width,"2E")
|
|
cm in width.</span></p>
|
</tr> |
<p style='
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<tr> |
<numericalresponse id="11" answer="@area" units="mm^2"></span></p>
|
|
<p style='
|
<td width=131 valign=top class="Normal"> <p>to_string(x), to_string(x,y)</p></td> |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<textline></textline></span></p>
|
<td width=134 valign=top class="Normal"> <p>&to_string($x), &to_string($x,$y)</p></td> |
<p style='
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=147 valign=top class="Normal"> <p>If x is an integer, returns |
<responseparam name="tol" type="tolerance" default="5%"></responseparam></span></p>
|
|
<p style='
|
a string. If x is real than the output is a string with format given |
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</numericalresponse></span></p>
|
by y. For example, if x = 12.3456, &to_string(x,".3F") |
<p style='
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'></problem></span></p>
|
= 12.345 and &to_string(x,".3E") = 1.234E+01.</p></td> |
<p class=H5><span
|
|
style='layout-grid-mode:both'>A More Complex Problem</span></p>
|
<td width=101 valign=top class="Normal"> </td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'><problem></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><displayduedate
|
</tr> |
/></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><p><displaytitle
|
<tr> |
/></p></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><script type="loncapa/perl"></span></p>
|
<td width=131 valign=top class="Normal"> <p>capa_id(), class(), section(), |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF="<b>
|
|
F<sub>1</sub> </b>";</span></p>
|
set(), problem()</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF1="<b>
|
|
F<sub>1</sub> </b>";</span></p>
|
<td width=134 valign=top class="Normal"> <p>&class(), &section()</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF2="<b>
|
|
F<sub>2</sub> </b>";</span></p>
|
<td width=147 valign=top class="Normal"> <p>Returns null string, class descriptive |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$mF="|<b>F</b>|";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag="|<b>F<sub>1</sub></b>|";</span></p>
|
name, section number, set number and null string.</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$F2mag="|<b>F<sub>2</sub></b>|";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag="|<b>
|
<td width=101 valign=top class="Normal"> <p>capa_id(), set() and problem() |
<font face=symbol>t</font><sub>1</sub></b>|";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq2mag="|<b>
|
are no longer used. Currently, they return a null value.</p></td> |
<font face=symbol>t</font><sub>2</sub></b>|";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q1="Q<sub>1</sub>";</span></p>
|
</tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q2="Q<sub>2</sub>";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau="<font
|
<tr> |
face=symbol>t</font>";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau1="<font
|
<td width=131 valign=top class="Normal"> <p>name(), student_number()</p></td> |
face=symbol><b>t</b></font><sub>1</sub>";</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> $val=&random(1,4,1);</span></p>
|
<td width=134 valign=top class="Normal"> <p>&name(), &student_number()</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'> $tp=&choose($val,"her","her","his","his");</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> $sd=&choose($val,"daughter","niece","nephew","son");</span></p>
|
<td width=147 valign=top class="Normal"> <p>Return the full name in the |
<p><span style='font-size:8.0pt;font-family:"Courier New"'></script></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><startouttext
|
following format: lastname, firstname initial. Student_number returns |
/></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag and $trq2mag
|
the student 9-alphanumeric string. If undefined, the functions return |
are the magnitudes of the torques produced repectively by </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>forces $vF1 and $vF2
|
null.</p></td> |
with respect the pivot P. The magnitudes of $vF1 is </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag and that of
|
<td width=101 valign=top class="Normal"> </td> |
$vF2 is $F2mag. $Q1 and $Q2 are the locations </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>on a rigid body where
|
</tr> |
$vF1 and $vF2 act. </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><endouttext /></span></p>
|
<tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'><optionresponse
|
|
max="600"></span></p>
|
<td width=131 valign=top class="Normal"> <p>open_date(), due_date(), answer_date()</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foilgroup options="('Correct','Incorrect','Can not tell')"></span></p>
|
<td width=134 valign=top class="Normal"> <p>&open_date(), &due_date(), |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<conceptgroup concept="Effect of the moment-arm on the torque"></span></p>
|
&answer_date()</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil name="1a" value="Incorrect"></span></p>
|
<td width=147 valign=top class="Normal"> <p>Problem open date, due date |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
For $F1mag larger than $F2mag , $trq1mag is larger than $trq2mag</span></p>
|
and answer date. The time is also included in 24-hr format.</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foil></span></p>
|
<td width=101 valign=top class="Normal"> <p>Output format for time is changed |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil name="1b" value="Incorrect"></span></p>
|
slightly. If pass noon, it displays ..pm else it displays ..am. So 23:59 |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
For $F1mag smaller than $F2mag , $trq1mag is smaller than $trq2mag</span></p>
|
is displayed as 11:59 pm.</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foil></span></p>
|
</tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil
|
<tr> |
name="1c" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=131 valign=top class="Normal"> <p>get_seed(), set_seed()</p></td> |
For $F1mag larger than $F2mag , $trq1mag can be less than $trq2mag</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=134 valign=top class="Normal"> <p>Not implemented</p></td> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=147 valign=top class="Normal"> <p>Get and set the random seed.</p></td> |
<foil name="1d" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=101 valign=top class="Normal"> </td> |
For $F1mag smaller than $F2mag , $trq1mag can be larger than $trq2mag</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
</tr> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<tr> |
</conceptgroup> </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=131 valign=top class="Normal"> <p>sub_string(a,b,c)</p></td> |
<conceptgroup concept="For a given pivot, relation of force vector
|
|
to torque."></span></p>
|
<td width=134 valign=top class="Normal"> <p>&sub_string($a,$b,$c) <br> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil name="2a" value="Correct"></span></p>
|
perl substr function. However, note the differences</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
The moment-arm of $vF is the shortest distance from P to the line along $vF
|
<td width=147 valign=top class="Normal"> <p>Retrieve a portion of string |
.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
a starting from b and length c. For example, $a = "Welcome |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
to LON-CAPA"; $result=&sub_string($a,4,4); then $result is |
<foil name="2b" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
"come"</p></td> |
The moment-arm of $vF is the shortest distance from P to $vF vector.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=101 valign=top class="Normal"> <p>Perl intrinsic function, substr(string,b,c) |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
starts counting from 0 (as opposed to 1). In the example to the left, |
<foil name="2c" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
substr($a,4,4) returns "ome ".</p></td> |
The moment-arm of $vF is not the distance from P to Q<sub>1</sub>.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
</tr> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<tr> |
<foil name="2d" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=131 valign=top class="Normal"> <p>array[xx]</p></td> |
The moment-arm of $vF is the distance from P to Q<sub>1</sub>.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=134 valign=top class="Normal"> <p>@arrayname <br> |
</foil> </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
Array is intrinsic in perl. To access a specific element use $arrayname[$n] |
</conceptgroup></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
where $n is the $n+1 element since the array count starts from 0</p></td> |
<conceptgroup concept="Torque is force x moment-arm."></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=147 valign=top class="Normal"> <p>"xx" can be a variable |
<foil name="3a" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
or a calculation.</p></td> |
$trq1mag equals to the product of the moment-arm and $F1mag .</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=101 valign=top class="Normal"> <p>In LON-CAPA, an array is defined |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
by @arrayname. It is not necessary to specify the dimension of the array. </p></td> |
<foil name="3b" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
</tr> |
$trq1mag equals to $F1mag times the distance from Q<sub>1</sub>
|
|
to P.</span></p>
|
<tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foil></span></p>
|
<td width=131 valign=top class="Normal"> <p>array_moments(B,A)</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil name="3c" value="Correct"></span></p>
|
<td width=134 valign=top class="Normal"> <p>@B=&array_moments(@A)</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
$trq1mag is not equal to the product of $F1mag and the distance from Q<sub>1</sub>
|
<td width=147 valign=top class="Normal"> <p>Evaluates the moments of an |
to P.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
array A and place the result in array B[i] where i = 0 to 4. The contents |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
of B are as follows: B[0] = number of elements, B[1] = mean, B[2] = |
<foil name="3d" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
variance, B[3] = skewness and B[4] = kurtosis.</p></td> |
$trq1mag is not equal to the product of the moment-arm and $F1mag .</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=101 valign=top class="Normal"> <p>In CAPA, the moments are passed |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
as an array in the first argument whereas in LON-CAPA, the array containing |
</conceptgroup></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
the moments are set equal to the function.</p></td> |
<conceptgroup concept="Pivot point is required to calculate torque"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
</tr> |
<foil name="4a" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<tr> |
$tau1 vector depends on the location of P.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=131 valign=top class="Normal"> <p>array_max(Name), array_min(Name)</p></td> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=134 valign=top class="Normal"> <p>&min(@Name), &max(@Name)</p></td> |
<foil name="4b" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=147 valign=top class="Normal"> <p>In LON-CAPA to find the maximum |
$tau1 vector does not depend on the location of P.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
value of an array, use &max(@arrayname) and to find the minimum |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
value of an array, use &min(@arrayname)</p></td> |
<foil name="4c" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=101 valign=top class="Normal"> <p>Combined with the min and max |
$tau1 vector has no meaning unless a pivot is selected.</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
functions defined earlier.</p></td> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
</tr> |
<foil name="4d" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<tr> |
$tau1 vector can be determined without selecting P. </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=131 valign=top class="Normal"> <p>init_array(Name)</p></td> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=134 valign=top class="Normal"> <p>undef @name</p></td> |
</conceptgroup> </span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=147 valign=top class="Normal"> <p>To destroy the contents of an |
<conceptgroup concept="torque from 2 forces acting along same line"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
array, use</p></td> |
<foil name="5a" value="Correct"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=101 valign=top class="Normal"> <p>Use perl intrinsic undef function.</p></td> |
Two equal forces, acting on a body along the same line but at different positions,
|
|
produce equal torques with respect to a given pivot."</span></p>
|
</tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foil></span></p>
|
<tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil name="5b" value="Incorrect"></span></p>
|
<td width=131 valign=top class="Normal"> <p>random_normal (return_array,item_cnt,seed,av,std_dev)</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
Two equal forces, along the same line, produce equal torques with respect
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_normal |
to a given pivot only if they act at the same point on a body."</span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
($item_cnt,$seed,$av,$std_dev)</p></td> |
</foil></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
<foil name="5c" value="Incorrect"></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
of normal distribution of average $av and standard deviation $std_dev. |
Two equal forces acting on a body along the same line but at different positions,
|
|
produce equal torques for only one pivot."</span></p>
|
The distribution is generated from seed $seed</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foil></span></p>
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</conceptgroup></span></p>
|
as the first argument whereas in LON-CAPA the results are set equal |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<foil name="6" value="unused"></span></p>
|
to the function.</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
This foil will never display since it is unused.</span></p>
|
</tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foil></span></p>
|
<tr> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</foilgroup></span></p>
|
<td width=131 valign=top class="Normal"> <p>random_beta (return_array,item_cnt,seed,aa,bb)</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<notsolved></span></p>
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_beta |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
<hintgroup></span></p>
|
($item_cnt,$seed,$aa,$bb) <br> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>Think the definition
|
|
of the torque. The force and the moment-arm respect to the pivot. </span></p>
|
NOTE: Both $aa and $bb MUST be greater than 1.0E-37.</p></td> |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</hintgroup></span></p>
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
<p><span style='font-size:8.0pt;font-family:"Courier New"'>
|
|
</notsolved></span></p>
|
of beta distribution. The density of beta is: X^($aa-1) *(1-X)^($bb-1) |
<p><span style='font-size:8.0pt;font-family:"Courier New"'></optionresponse></span></p>
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'></problem></span></p>
|
/B($aa,$bb) for 0<X<1.</p></td> |
<h3> </h3>
|
|
<p> <img border=0 width=432 height=370
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
src="Session%20On2_files/image003.png" v:shapes="_x0000_i1025"> </p>
|
|
<p><span style='font-size:14.0pt'><b>Fig. 3.1.1</b></span><span
|
as the first argument whereas in LON-CAPA the results are set equal |
style='font-size:14.0pt'> Ð Internal Structure of Homework Handler</span></p>
|
|
</div>
|
to the function.</p></td> |
<br
|
|
clear=ALL style='page-break-before:always;'>
|
</tr> |
<div class=Section2> </div>
|
|
</body>
|
<tr> |
</html>
|
|
|
<td width=131 valign=top class="Normal"> <p>random_gamma (return_array,item_cnt,seed,a,r)</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_gamma |
|
|
|
($item_cnt,$seed,$a,$r) <br> |
|
|
|
NOTE: Both $a and $r MUST be positive.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of gamma distribution. The density of gamma is: ($a**$r)/gamma($r) * |
|
|
|
X**($r-1) * exp(-$a*X).</p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
|
|
|
as the first argument whereas in LON-CAPA the results are set equal |
|
|
|
to the function.</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>random_exponential (return_array,item_cnt,seed,av)</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_exponential |
|
|
|
($item_cnt,$seed,$av) <br> |
|
|
|
NOTE: $av MUST be non-negative.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of exponential distribution. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
|
|
|
as the first argument whereas in LON-CAPA the results are set equal |
|
|
|
to the function.</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>random_poisson (return_array,item_cnt,seed,mu)</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_poisson |
|
|
|
($item_cnt,$seed,$mu) <br> |
|
|
|
NOTE: $mu MUST be non-negative.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of poisson distribution. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
|
|
|
as the first argument whereas in LON-CAPA the results are set equal |
|
|
|
to the function.</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>random_chi (return_array,item_cnt,seed,df)</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_chi |
|
|
|
($item_cnt,$seed,$df) <br> |
|
|
|
NOTE: $df MUST be positive.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of chi_square distribution with $df degrees of freedom. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
|
|
|
as the first argument whereas in LON-CAPA the results are set equal |
|
|
|
to the function.</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>random_noncentral_chi (return_array,item_cnt,seed,df,nonc)</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_noncentral_chi |
|
|
|
($item_cnt,$seed,$df,$nonc) <br> |
|
|
|
NOTE: $df MUST be at least 1 and $nonc MUST be non-negative.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of noncentral_chi_square distribution with $df degrees of freedom and |
|
|
|
noncentrality parameter $nonc. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>In CAPA the results are passed |
|
|
|
as the first argument whereas in LON-CAPA the results are set equal |
|
|
|
to the function.</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_f |
|
|
|
($item_cnt,$seed,$dfn,$dfd) <br> |
|
|
|
NOTE: Both $dfn and $dfd MUST be positive.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of F (variance ratio) distribution with degrees of freedom $dfn (numerator) |
|
|
|
and $dfd (denominator). </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_noncentral_f |
|
|
|
($item_cnt,$seed,$dfn,$dfd,$nonc) <br> |
|
|
|
NOTE: $dfn must be at least 1, $dfd MUST be positive, and $nonc must |
|
|
|
be non-negative.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of noncentral F (variance ratio) distribution with degrees of freedom |
|
|
|
$dfn (numerator) and $dfd (denominator). $nonc is the noncentrality |
|
|
|
parameter. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT DOCUMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_multivariate_normal |
|
|
|
($item_cnt,$seed,\@mean,\@covar) <br> |
|
|
|
NOTE: @mean should be of length p array of real numbers. @covar should |
|
|
|
be a length p array of references to length p arrays of real numbers |
|
|
|
(i.e. a p by p matrix.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
of multivariate_normal distribution with mean vector @mean and variance-covariance |
|
|
|
matrix. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>Note the backslash before the |
|
|
|
@mean and @covar arrays.</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_multinomial |
|
|
|
($item_cnt,$seed,@p) <br> |
|
|
|
NOTE: $item_cnt is rounded with int() and the result must be non-negative. |
|
|
|
The number of elements in @p must be at least 2.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Returns single observation from |
|
|
|
multinomial distribution with $item_cnt events classified into as many |
|
|
|
categories as the length of @p. The probability of an event being classified |
|
|
|
into category i is given by ith element of @p. The observation is an |
|
|
|
array with length equal to @p, so when called in a scalar context it |
|
|
|
returns the length of @p. The sum of the elements of the obervation |
|
|
|
is equal to $item_cnt.</p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_permutation |
|
|
|
($item_cnt,@array) </p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Returns @array randomly permuted.</p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_uniform |
|
|
|
($item_cnt,$seed,$low,$high) <br> |
|
|
|
NOTE: $low must be less than or equal to $high.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
from a uniform distribution. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_uniform_integer |
|
|
|
($item_cnt,$seed,$low,$high) <br> |
|
|
|
NOTE: $low and $high are both passed through int(). $low must be less |
|
|
|
than or equal to $high.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
from a uniform distribution in integers. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_binomial |
|
|
|
($item_cnt,$seed,$nt,$p) <br> |
|
|
|
NOTE: $nt is rounded using int() and the result must be non-negative. |
|
|
|
$p must be between 0 and 1 inclusive.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates |
|
|
|
from the binomial distribution with $nt trials and the probabilty of |
|
|
|
an event in each trial is $p. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td> |
|
|
|
<td width=134 valign=top class="Normal"> <p>@return_array=&random_negative_binomial |
|
|
|
($item_cnt,$seed,$ne,$p) <br> |
|
|
|
NOTE: $ne is rounded using int() and the result must be positive. $p |
|
|
|
must be between 0 and 1 exclusive.</p></td> |
|
|
|
<td width=147 valign=top class="Normal"> <p>Generate an array of $item_cnt |
|
|
|
outcomes generated from negative binomial distribution with $ne events |
|
|
|
and the probabilty of an event in each trial is $p. </p></td> |
|
|
|
<td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
<h3><a name="_Toc421867130"><script> Variables</a></h3> |
|
|
|
<ul type=disc> |
|
|
|
<li>$external::target - set to the current target the xml parser is parsing |
|
|
|
for </li> |
|
|
|
<li>$external::part - set to the <i>id</i><span style='font-style:normal'> |
|
|
|
of the current problem <part>; zero if there are no <part> </span></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, SHOW_ANSWER, or UNCHECKEDOUT </li> |
|
|
|
<li>$external::randomseed - set to the number that was used to seed the random |
|
|
|
number generator </li> |
|
|
|
<li>$pi - set to PI </li> |
|
|
|
<li>$rad2deg - converts radians to degrees </li> |
|
|
|
<li>$deg2rad - converts degrees to radians </li> |
|
|
|
</ul> |
|
|
|
<h3><a name="_Toc421867131">Form internals</a> </h3> |
|
|
|
<p>Form elements used for homework editing/response </p> |
|
|
|
<p>the form is named lonhomework </p> |
|
|
|
<h3><a name="_Toc421867132">Viewing a problem (either CSTR or RES space)</a></h3> |
|
|
|
<ul type=disc> |
|
|
|
<li>grade_target, grade_username, grade_domain, grade_symb - the vaules take |
|
|
|
precedence over the the normal env settings of these, use &Apache::lonxml::whichuser() |
|
|
|
to get back the correct vaues of the items </li> |
|
|
|
<li>HWVAL_response:number - the name of the input elements for each response. |
|
|
|
The response is the response's ID, and the :number part exists only for |
|
|
|
response with multiple foils, and is a unique number in order of the submission |
|
|
|
</li> |
|
|
|
<li>changerandseed - the 'Change' button, only exists right after the Change |
|
|
|
button is clicked </li> |
|
|
|
<li>problemmode - in CSTR, it is either 'View','Edit','EditXML' or 'Analyze' |
|
|
|
depending on the desired view </li> |
|
|
|
<li>rndseed - the currently requested random seed </li> |
|
|
|
<li>showallfoils - if it exists, and we are in CSTR space, the problem should |
|
|
|
ignore <conceptgroup> and the response's max setting and show all |
|
|
|
possible foils </li> |
|
|
|
<li>submit - the name of the Submit button </li> |
|
|
|
<li>submitted - a hidden form parameter that can be used to tell if the student |
|
|
|
has submitted answers or not, if it is set, there should be answers to grade. |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
<h3><a name="_Toc421867133">Editing a problem (Edit mode)</a></h3> |
|
|
|
<p>tagdepth referes to the current value of the xmlparsers tagdepth couter ($Apache::lonxml::currentdepth)</p> |
|
|
|
<p>Note: the file edit.pm has many helper functions for creating the standard |
|
|
|
elements for editing a tag and it's attributes, all of those functions follow |
|
|
|
these conventions </p> |
|
|
|
<ul type=disc> |
|
|
|
<li>tagdepth_argname - I.E. 1_3.max, a parameter editing value, max is the |
|
|
|
name of the parameter and it is for the third tag inside the first tag </li> |
|
|
|
<li>delete_tagdepth - if set to yes, delete tag tagdepth and all tags inside |
|
|
|
of it </li> |
|
|
|
<li>homework_edit_tagdepth - used by both &Apache::edit::editline and |
|
|
|
&Apache::edit::editfield for the <textarea> and <input> |
|
|
|
form elements they create </li> |
|
|
|
<li>insert_tagdepth - used to request an tag insert, it is set to the id number |
|
|
|
of the requested tag in the %Apache::lonxml::insertlist </li> |
|
|
|
</ul> |
|
|
|
<ul type=disc> |
|
|
|
<li> </li> |
|
|
|
</ul> |
|
|
|
<h3><a name="_Toc421867134">Symbs</a></h3> |
|
|
|
<p>To identify a specific instance of a resource, LON-CAPA uses symbols or Òsymbs.Ó |
|
|
|
These identifiers are built from the URL of the map, the resource number of |
|
|
|
the resource in the map, and the URL of the resource itself. The latter is |
|
|
|
somewhat redundant, but might help if maps change.</p> |
|
|
|
<p>An example is</p> |
|
|
|
<p class=MsoHeader><span style='font-family:"Courier New"'> msu/korte/parts/part1.sequence___19___msu/korte/tests/part12.problem</span></p> |
|
|
|
<p class=MsoHeader>The respective map entry is</p> |
|
|
|
<p class=MsoHeader><span style='font-family:"Courier New"'> <resource |
|
|
|
id="19" src="/res/msu/korte/tests/part12.problem" |
|
|
|
</span></p> |
|
|
|
<p class=MsoHeader><span style='font-family:"Courier New"'> title="Problem |
|
|
|
2"></span></p> |
|
|
|
<p class=MsoHeader><span style='font-family:"Courier New"'> </resource></span></p> |
|
|
|
<p class=MsoHeader>Symbs are used by the random number generator, as well as |
|
|
|
to store and restore data specific to a certain instance of for example a |
|
|
|
problem.</p> |
|
|
|
<h3><a name="_Toc421867135">Store / Restore</a></h3> |
|
|
|
<p><span style='color:black'>2 important functions in lonnet.pm are </span><span style='font-family:"Courier New";color:black'>&Apache::lonnet::cstore()</span><span |
|
|
|
style='color:black'> and </span><span style='font-family:"Courier New"; |
|
|
|
color:black'>&Apache::lonnet:restore()</span><span style='color:black'> (and |
|
|
|
</span><span style='font-family:"Courier New";color:black'>&Apache::lonnet::store()</span><span |
|
|
|
style='color:black'>, which is is the non-critical message twin of </span><span |
|
|
|
style='font-family:"Courier New";color:black'>cstore</span><span |
|
|
|
style='color:black'>). These functions are for handlers to store a perl hash to |
|
|
|
a userÕs permanent data space in an easy manner, and to retrieve it again |
|
|
|
on another call. It is expected that a handler would use this once at the |
|
|
|
beginning to retrieve data, and then again once at the end to send only the |
|
|
|
new data back. </span></p> |
|
|
|
<p><span style='color:black'>The data is stored in the userÕs data directory |
|
|
|
on the userÕs homeserver under the ID of the course.</span></p> |
|
|
|
<p><span style='color:black'>The hash that is returned by </span><span |
|
|
|
style='font-family:"Courier New";color:black'>restore</span><span |
|
|
|
style='color:black'> will have all of the previous value for all of the elements |
|
|
|
of the hash. </span></p> |
|
|
|
<p><span style='color:black'>Example: </span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>#creating a hash</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>my %hash;</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='bar';</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>#storing it</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>&Apache::lonnet::cstore(\%hash);</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>#changing a value </span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='notbar';</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>#adding a new value</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>$hash{'bar'}='foo';</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>&Apache::lonnet::cstore(\%hash);</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>#retrieving the hash</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>my %history=&Apache::lonnet::restore();</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>#print the hash</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>foreach my $key (sort(keys(%history))) |
|
|
|
{</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'> print("\%history{$key} |
|
|
|
= $history{$key}");</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>}</span></p> |
|
|
|
<p><span style='color:black'>Will print out: </span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{1:foo} = bar</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{1:keys} = foo:timestamp</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{1:timestamp} |
|
|
|
= 990455579</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{2:bar} = foo</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{2:foo} = notbar</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{2:keys} = foo:bar:timestamp</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{2:timestamp} |
|
|
|
= 990455580</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{bar} = foo</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{foo} = notbar</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{timestamp} = |
|
|
|
990455580</span></p> |
|
|
|
<p><span style='font-family:"Courier New";color:black'>%history{version} = 2</span></p> |
|
|
|
<p><span style='color:black'>Note that the special hash entries <i>keys</i></span><span style='color:black'>, |
|
|
|
<i>version</i></span><span |
|
|
|
style='color:black'> and <i>timestamp</i></span><span style='color:black'> were |
|
|
|
added to the hash. <i>version</i></span><span style='color:black'> will be |
|
|
|
equal to the total number of versions of the data that have been stored. The |
|
|
|
<i>timestamp</i></span><span |
|
|
|
style='color:black'> attribute will be the UNIX time the hash was stored. <i>keys</i></span><span |
|
|
|
style='color:black'> is available in every historical section to list which keys |
|
|
|
were added or changed at a specific historical revision of a hash. </span></p> |
|
|
|
<p><span style='color:black'><b>Warning</b></span><span |
|
|
|
style='color:black'> do not store the hash that restore returns directly. This |
|
|
|
will cause a mess since it will restore the historical keys as if the were |
|
|
|
new keys. I.E. </span><span style='font-family:"Courier New";color:black'>1:foo</span><span |
|
|
|
style='color:black'> will become </span><span style='font-family:"Courier New"; |
|
|
|
color:black'>1:1:foo</span><span style='color:black'> etc. </span></p> |
|
|
|
<p><span style='color:black'><b>Calling convention: </b></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"; |
|
|
|
color:black'> my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$uname,$home);</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"; |
|
|
|
color:black'> &Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$uname,$home);</span></p> |
|
|
|
<p><span style='color:black'><b>Arguments (only %newrecord is required the rest |
|
|
|
are somewhat optional, read the details): </b></span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>$symb</i></span><span |
|
|
|
style='color:black'> - a string containing the internal name of the specific instance |
|
|
|
of a resource. Usually this value can be gotten from </span><span |
|
|
|
style='font-family:"Courier New";color:black'>&Apache::lonnet::symbread($filename)</span><span |
|
|
|
style='color:black'>. If the argument is blank, it will attempt to use </span><span |
|
|
|
style='font-family:"Courier New";color:black'>symbread()</span><span |
|
|
|
style='color:black'> for it. If the result is ambiguous store/restore will fail. |
|
|
|
</span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>$courseid</i></span><span |
|
|
|
style='color:black'> - the internal name for a course, usually found in </span><span |
|
|
|
style='font-family:"Courier New";color:black'>$env{'request.course.id'}</span><span |
|
|
|
style='color:black'> which is what will be looked at if no value is passed to |
|
|
|
the functions. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>$domain</i></span><span |
|
|
|
style='color:black'> - the domain that the user belongs to, usually found in </span><span |
|
|
|
style='font-family:"Courier New";color:black'>$env{'user.domain'}</span><span |
|
|
|
style='color:black'> which is what will be looked at if no value is passed to |
|
|
|
the functions. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>$uname</i></span><span |
|
|
|
style='color:black'> - the login name for the user, usually found in </span><span |
|
|
|
style='font-family:"Courier New";color:black'>$env{'user.name'}</span><span |
|
|
|
style='color:black'> which is what will be looked at if no value is passed to |
|
|
|
the functions. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>$home</i></span><span |
|
|
|
style='color:black'> - the homeserver for the user, usually found in </span><span |
|
|
|
style='font-family:"Courier New";color:black'>$env{'user.home'}</span><span |
|
|
|
style='color:black'> but can be easily gotten from a domain and name through </span><span |
|
|
|
style='font-family:"Courier New";color:black'>&Apache::lonnet::homeserver($uname,$domain)</span><span |
|
|
|
style='color:black'>. If no value is passed to store/restore the value in %env |
|
|
|
will be used. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>%newrecord</i></span><span |
|
|
|
style='color:black'> - the hash to store being passed by reference </span></p> |
|
|
|
<p><span style='color:black'><b>Return values: </b></span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>an empty string</i></span><span |
|
|
|
style='color:black'> - the function was unable to determine exactly where to store |
|
|
|
or restore from. At least one of the "optional" arguments was unable |
|
|
|
to be determined. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>a hash</i></span><span |
|
|
|
style='color:black'> - restore successfully read a old hash for this specific |
|
|
|
user / resource instance. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>no_such_host</i></span><span |
|
|
|
style='color:black'> - the <i>$home</i></span><span style='color:black'> specfied |
|
|
|
desn't exist in the network. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>con_delayed</i></span><span |
|
|
|
style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable |
|
|
|
at this time. The store will be delayed until it is again available. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>con_failed</i></span><span |
|
|
|
style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable |
|
|
|
at this time and store was unable to delay the store until a later time. The |
|
|
|
store failed. </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>ok</i></span><span |
|
|
|
style='color:black'> - the store completed succesfully </span></p> |
|
|
|
<p> <span style='font-family:Symbol; |
|
|
|
color:black'>á<span style='font:7.0pt "Times New Roman"'> |
|
|
|
</span></span> <span style='color:black'><i>error:</i></span><span |
|
|
|
style='color:black'> - remote server failied to store or restore the reason follows |
|
|
|
the </span><span style='font-family:"Courier New";color:black'>:</span><span |
|
|
|
style='color:black'> </span></p> |
|
|
|
<h3><a name="_Toc421867136">Mandatory Homework Data</a></h3> |
|
|
|
<pre> </pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'><Provided by &EXT() and set external to the resource, required></span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.opendate #unix time of when the local machine should let the</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> #student in</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.duedate #unix time of when the local machine should stop</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> #accepting answers</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.answerdate #unix time of when the local machine should</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> #provide the correct answer to the student</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.weight # points the problem is worth</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.maxtries # maximum number of attempts the student can have</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.type # type of problem homework can be:</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # homework - randomized, graded, stored with </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # requesting user, full feeback</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # exam - randomized, graded, stored with </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # requesting user, minimal feedback</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # form - unrandomized, ungraded, stored with </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # specified user, full feedback</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # survey - unrandomized, ungraded, stored with </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # requesting user, full feedback</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'><numerical/formula/response needed: (has a default if nonexistant)></span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.responseid.tol # lots of possibilities here</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # percentage, range (inclusive and exclusive),</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # variable name, etc</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # 3%</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # 0.5</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # .05+</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # 3%+</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # 0.5+,.005</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.responseid.sig # one or two comma sepearted integers, </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # specifying the number of significatn figures</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # a student must use</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'><Problem sets using cstore (required):></span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.solved # if not set, problem yet to be viewed</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # incorrect_attempted == incorrect and attempted</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # correct_by_student == correct by student work</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # correct_by_override == correct, instructor override</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # incorrect_by_override == incorrect, instructor override</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # excused == excused, problem no longer counts for student</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # '' (empty) == not attempted</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # ungraded_attempted == an ungraded answer has been</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> sumbitted and stored</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.tries # positive integer of number of unsuccessful attempts</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # made, malformed answers don't count if feedback is</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # on</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.awarded # float between 0 and 1, percentage of</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # resource.weight that the stundent earned.</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.award # final detailed award that was applied to the entire</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # part of the question, check awarddetail below for</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # possibilities</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.previous # boolean, is this submission a previous submission</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.responseid.submissons</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # the student submitted string for the part.response</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.responseid.awarddetail</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # list of all of the results of grading the submissions</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # in detailed form of the specific failure</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> #Possible values:</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # EXACT_ANS, APPROX_ANS : student is correct</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # NO_RESPONSE : student submitted no response</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # MISSING_ANSWER : student submitted some but not</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # all parts of a response</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # WANTED_NUMERIC : expected a numeric answer and</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # didn't get one</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # SIG_FAIL : incorrect number of Significant Figures</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # UNIT_FAIL : incorrect unit</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # UNIT_NOTNEEDED : Submitted a unit when one shouldn't</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # NO_UNIT : needed a unit but none was submitted</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # BAD_FORMULA : syntax error in submitted formula</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # INCORRECT : answer was wrong</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # SUBMITTED : submission wasn't graded</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # ERROR : unable to get a grade</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.responseid.message (optional) (not yet supported)</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # a message that should be shown to the student</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'>resource.partid.bonustries (optional) (not yet supported)</span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # if set, added to the maxtries parameter for student </span></pre> |
|
|
|
<pre><span |
|
|
|
style='font-size:9.0pt'> # total number of tries overall</span></pre> |
|
|
|
<pre> </pre> |
|
|
|
<h3><a name="_Toc421867137">Sample Problems</a></h3> |
|
|
|
<p class=H5><span style='layout-grid-mode: |
|
|
|
both'>A Simple Problem</span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'><problem></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<script type="loncapa/perl"></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$length=&random(10,99,.1);</span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$width=&random(1,10,.01);</span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>@area=($length*($width*10));</span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</script></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>What |
|
|
|
is the area of a box $length mm in length and </span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&format($width,"2E") |
|
|
|
cm in width.</span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<numericalresponse id="11" answer="@area" units="mm^2"></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<textline></textline></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<responseparam name="tol" type="tolerance" default="5%"></responseparam></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</numericalresponse></span></p> |
|
|
|
<p style=' |
|
|
|
line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'></problem></span></p> |
|
|
|
<p class=H5><span |
|
|
|
style='layout-grid-mode:both'>A More Complex Problem</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><problem></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><displayduedate |
|
|
|
/></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><p><displaytitle |
|
|
|
/></p></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><script type="loncapa/perl"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF="<b> |
|
|
|
F<sub>1</sub> </b>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF1="<b> |
|
|
|
F<sub>1</sub> </b>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF2="<b> |
|
|
|
F<sub>2</sub> </b>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$mF="|<b>F</b>|";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag="|<b>F<sub>1</sub></b>|";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$F2mag="|<b>F<sub>2</sub></b>|";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag="|<b> |
|
|
|
<font face=symbol>t</font><sub>1</sub></b>|";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq2mag="|<b> |
|
|
|
<font face=symbol>t</font><sub>2</sub></b>|";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q1="Q<sub>1</sub>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q2="Q<sub>2</sub>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau="<font |
|
|
|
face=symbol>t</font>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau1="<font |
|
|
|
face=symbol><b>t</b></font><sub>1</sub>";</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> $val=&random(1,4,1);</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> $tp=&choose($val,"her","her","his","his");</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> $sd=&choose($val,"daughter","niece","nephew","son");</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'></script></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><startouttext |
|
|
|
/></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag and $trq2mag |
|
|
|
are the magnitudes of the torques produced repectively by </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>forces $vF1 and $vF2 |
|
|
|
with respect the pivot P. The magnitudes of $vF1 is </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag and that of |
|
|
|
$vF2 is $F2mag. $Q1 and $Q2 are the locations </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>on a rigid body where |
|
|
|
$vF1 and $vF2 act. </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><endouttext /></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'><optionresponse |
|
|
|
max="600"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foilgroup options="('Correct','Incorrect','Can not tell')"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<conceptgroup concept="Effect of the moment-arm on the torque"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="1a" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
For $F1mag larger than $F2mag , $trq1mag is larger than $trq2mag</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="1b" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
For $F1mag smaller than $F2mag , $trq1mag is smaller than $trq2mag</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil |
|
|
|
name="1c" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
For $F1mag larger than $F2mag , $trq1mag can be less than $trq2mag</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="1d" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
For $F1mag smaller than $F2mag , $trq1mag can be larger than $trq2mag</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</conceptgroup> </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<conceptgroup concept="For a given pivot, relation of force vector |
|
|
|
to torque."></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="2a" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
The moment-arm of $vF is the shortest distance from P to the line along $vF |
|
|
|
.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="2b" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
The moment-arm of $vF is the shortest distance from P to $vF vector.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="2c" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
The moment-arm of $vF is not the distance from P to Q<sub>1</sub>.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="2d" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
The moment-arm of $vF is the distance from P to Q<sub>1</sub>.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil> </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</conceptgroup></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<conceptgroup concept="Torque is force x moment-arm."></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="3a" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$trq1mag equals to the product of the moment-arm and $F1mag .</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="3b" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$trq1mag equals to $F1mag times the distance from Q<sub>1</sub> |
|
|
|
to P.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="3c" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$trq1mag is not equal to the product of $F1mag and the distance from Q<sub>1</sub> |
|
|
|
to P.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="3d" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$trq1mag is not equal to the product of the moment-arm and $F1mag .</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</conceptgroup></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<conceptgroup concept="Pivot point is required to calculate torque"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="4a" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$tau1 vector depends on the location of P.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="4b" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$tau1 vector does not depend on the location of P.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="4c" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$tau1 vector has no meaning unless a pivot is selected.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="4d" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
$tau1 vector can be determined without selecting P. </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</conceptgroup> </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<conceptgroup concept="torque from 2 forces acting along same line"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="5a" value="Correct"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
Two equal forces, acting on a body along the same line but at different positions, |
|
|
|
produce equal torques with respect to a given pivot."</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="5b" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
Two equal forces, along the same line, produce equal torques with respect |
|
|
|
to a given pivot only if they act at the same point on a body."</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="5c" value="Incorrect"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
Two equal forces acting on a body along the same line but at different positions, |
|
|
|
produce equal torques for only one pivot."</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</conceptgroup></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<foil name="6" value="unused"></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
This foil will never display since it is unused.</span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foil></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</foilgroup></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<notsolved></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
<hintgroup></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'>Think the definition |
|
|
|
of the torque. The force and the moment-arm respect to the pivot. </span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</hintgroup></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'> |
|
|
|
</notsolved></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'></optionresponse></span></p> |
|
|
|
<p><span style='font-size:8.0pt;font-family:"Courier New"'></problem></span></p> |
|
|
|
<h3> </h3> |
|
|
|
<p> <img border=0 width=432 height=370 |
|
|
|
src="Session%20On2_files/image003.png" v:shapes="_x0000_i1025"> </p> |
|
|
|
<p><span style='font-size:14.0pt'><b>Fig. 3.1.1</b></span><span |
|
|
|
style='font-size:14.0pt'> Ð Internal Structure of Homework Handler</span></p> |
|
|
|
</div> |
|
|
|
<br |
|
|
|
clear=ALL style='page-break-before:always;'> |
|
|
|
<div class=Section2> </div> |
|
|
|
</body> |
|
|
|
</html> |
|
|