File:  [LON-CAPA] / doc / gutshtml / SessionTw1.html
Revision 1.2: download - view: text, annotated - select for diffs
Tue Jul 22 14:47:00 2003 UTC (20 years, 9 months ago) by bowersj2
Branches: MAIN
CVS tags: version_2_9_X, version_2_9_99_0, version_2_9_1, version_2_9_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, version_1_0_99, version_1_0_3, version_1_0_2, version_1_0_1, version_1_0_0, version_0_99_5, version_0_99_4, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, bz6209-base, bz6209, HEAD, GCI_3, GCI_2, GCI_1, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
Convert GUTs HTML to PROPER line endings.

    1: <html>
    2: <head>
    3: <meta name=Title content="Session Two: Spreadsheet and Messaging (Matthew)">
    4: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
    5: <link rel=Edit-Time-Data href="Session%20Tw1_files/editdata.mso">
    6: <title>Session Two: Spreadsheet and Messaging (Matthew)</title>
    7: <style><!--
    8: .MsoHeading7
    9: 	{font-size:16.0pt;
   10: 	font-family:"Times New Roman";
   11: 	color:black;}
   12: .MsoHeader
   13: 	{tab-stops:center 3.0in right 6.0in;
   14: 	font-size:10.0pt;
   15: 	font-family:"Times New Roman";}
   16: .MsoBodyText
   17: 	{line-height:24.0pt;
   18: 	font-size:12.0pt;
   19: 	font-family:"Times New Roman";
   20: 	layout-grid-mode:line;}
   21: .MsoBodyText2
   22: 	{font-size:10.0pt;
   23: 	font-family:"Times New Roman";
   24: 	color:black;}
   25: .Section1
   26: 	{page:Section1;}
   27: .Section2
   28: 	{page:Section2;}
   29: -->
   30: </style>
   31: </head>
   32: <body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US>
   33: <div class=Section1> 
   34:   <h2>Session Two: Spreadsheet and Messaging (Matthew)</h2>
   35:   <h3><a name="_Toc421867092">Spreadsheets</a></h3>
   36:   <p class=MsoBodyText2>The spreadsheet presents data on student performance on 
   37:     homework problems. Spreadsheets are handled by loncom/interface/lonspreadsheet.pm 
   38:     and are completely web based. A person who has selected a student role will 
   39:     access the spreadsheets using the [GRDS] button. A course coordinator is given 
   40:     access via the [SPRS] button. Students are not able to see data on anyone's 
   41:     performance but their own. Students are also not allowed to save spreadsheets. 
   42:   </p>
   43:   <h3><a name="_Toc421867093">Spreadsheet Structure and Hierarchy</a></h3>
   44:   <p><span style='color:black'>The spreadsheets are laid out in the typical fashion, 
   45:     with some limitations. There can only be 52 columns, addressed [A-Za-z]. There 
   46:     may be any number of rows, but currently there do not exist facilities to 
   47:     add rows other than those automatically generated. </span></p>
   48:   <p><span style='color:black'>There are three levels of spreadsheets, as illustrated 
   49:     in <b>Fig. 2.2.1</b></span><span style='color:
   50: black'>.</span><span style='font-size:16.0pt;color:black'> <img width=432 height=278
   51: src="Session%20Tw1_files/image003.png" v:shapes="_x0000_i1025"> </span></p>
   52:   <p class=MsoHeading7><b>Fig. 2.1.1</b><span style='font-weight:normal'> Ð Spreadsheet 
   53:     Hierarchy </span></p>
   54:   <p><span style='color:black'>The rightmost spreadsheets are the assessment spreadsheets. 
   55:     The middle spreadsheets are the student spreadsheets. The left spreadsheet 
   56:     is the course spreadsheet. </span></p>
   57:   <h3><a name="_Toc421867094">Export Rows</a></h3>
   58:   <p><span style='color:black'>The hierarchy of spreadsheets described above allows 
   59:     data from the lower level spreadsheets (assessment and student) to be exported 
   60:     up to the higher level spreadsheets (student and course, respectively). Row 
   61:     0 is the export row. Only the cells A0-Z0 are exported. Cells a0-z0 are not 
   62:     exported and can be used as 'scratch' space for the results exported in A0-Z0. 
   63:     </span></p>
   64:   <p><span style='color:black'>The export rows in the image are shown shaded in 
   65:     figure 2.2.1. Where the exported rows appear in the student and course spreadsheets 
   66:     is indicated by arrows. </span></p>
   67:   <h3><a name="_Toc421867095">Assessment Spreadsheet</a></h3>
   68:   <p><span style='color:black'>The assessment spreadsheet gives data on the students 
   69:     performance on a specific resource in LON-CAPA (typically a *.problem resource). 
   70:     Parameters such as the due date, the number of tries possible, the number 
   71:     of attempts made, the correctness of the student solution, and any &lt;parameter&gt; 
   72:     tags inserted in the resource will be shown. <b>Fig. 2.2.2</b></span><span style='color:black'> 
   73:     shows an example of an assessment spreadsheet.</span></p>
   74:   <p> <img width=432 height=290
   75: src="Session%20Tw1_files/image005.jpg" v:shapes="_x0000_i1026"> </p>
   76:   <p><span style='font-size:14.0pt'><b>Fig. 2.2.2</b></span><span
   77: style='font-size:14.0pt'> Ð Example Spreadsheet on Assessment Level</span></p>
   78:   <h3><a name="_Toc421867096">Student Spreadsheet</a></h3>
   79:   <p class=MsoBodyText2>Each assessment spreadsheet exports a row into the student 
   80:     spreadsheet. Fig 2.2.3 shows an example student spreadsheet. The student spreadsheet 
   81:     exports a row to the course spreadsheet. </p>
   82:   <p class=MsoHeader><b>Fig. 2.2.3</b><span
   83: style='font-weight:normal'> shows the next level up spreadsheet with the exported 
   84:     data from this sheet.</span></p>
   85:   <p class=MsoHeader> <img width=431 height=240
   86: src="Session%20Tw1_files/image007.jpg" v:shapes="_x0000_i1027"> </p>
   87:   <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.3</b></span><span style='font-size:14.0pt'> 
   88:     Ð Default Spreadsheet on Student Level</span></p>
   89:   <h3><a name="_Toc421867097">Course Spreadsheet</a></h3>
   90:   <p>The course spreadsheet gives a summary of each students performance in the 
   91:     course as a whole. <b>Fig 2.2.4</b><span style='font-weight:
   92: normal'> shows the default course spreadsheet. </span></p>
   93:   <p class=MsoHeader> <img width=432 height=143
   94: src="Session%20Tw1_files/image009.jpg" v:shapes="_x0000_i1028"> </p>
   95:   <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.4</b></span><span style='font-size:14.0pt'> 
   96:     Ð Default Spreadsheet on Course Level</span></p>
   97:   <h3><a name="_Toc421867098">Spreadsheet definition</a></h3>
   98:   <p class=MsoBodyText2>The default spreadsheets are defined via xml. <b>Fig. 
   99:     2.2.5</b><span style='font-weight:normal'> shows a sample definition of a 
  100:     spreadsheet. However, it is possible to work with spreadsheets and never edit 
  101:     the xml for the spreadsheet itself. By modifying the contents of cells via 
  102:     the web interface and saving the results, instructors can create as complicated 
  103:     a spreadsheet as they like. It is now possible for users to upload spreadsheets 
  104:     to the library server, publish them, and set them as the default sheets for 
  105:     their course. </span></p>
  106:   <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'> 
  107:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  108: 8.0pt;font-family:"Courier New"'>[www@zaphod www]$ cat /home/httpd/html/res/adm/includes/default.assesscalc</span></p>
  109:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  110: 8.0pt;font-family:"Courier New"'>&lt;field col=A row=0&gt;[stores_0_solved]&lt;/field&gt;</span></p>
  111:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  112: 8.0pt;font-family:"Courier New"'>&lt;field col=B row=0&gt;'Tries:'&lt;/field&gt;</span></p>
  113:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  114: 8.0pt;font-family:"Courier New"'>&lt;field col=C row=0&gt;[stores_0_tries]&lt;/field&gt;</span></p>
  115:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  116: 8.0pt;font-family:"Courier New"'>&lt;field col=D row=0&gt;'Timestamp:'&lt;/field&gt;</span></p>
  117:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  118: 8.0pt;font-family:"Courier New"'>&lt;field col=E row=0&gt;[timestamp]&lt;/field&gt;</span></p>
  119:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  120: 8.0pt;font-family:"Courier New"'>&lt;field col=F row=0&gt;'Duedate:'&lt;/field&gt;</span></p>
  121:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  122: 8.0pt;font-family:"Courier New"'>&lt;field col=G row=0&gt;[parameter_0_duedate]&lt;/field&gt;</span></p>
  123:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  124: 8.0pt;font-family:"Courier New"'>&lt;field col=W row=0&gt;'Available Points:'&lt;/field&gt;</span></p>
  125:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  126: 8.0pt;font-family:"Courier New"'>&lt;field col=X row=0&gt;[parameter_0_weight]&lt;/field&gt;</span></p>
  127:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  128: 8.0pt;font-family:"Courier New"'>&lt;field col=Y row=0&gt;'Awarded Points:'&lt;/field&gt;</span></p>
  129:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  130: 8.0pt;font-family:"Courier New"'>&lt;field col=Z row=0&gt;[parameter_0_weight]*[stores_0_awarded]&lt;/field&gt;</span></p>
  131:   </div>
  132:   <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.5</b></span><span style='font-size:14.0pt'> 
  133:     Ð Default Spreadsheet on Assessment Level</span></p>
  134:   <h3><a name="_Toc421867099">Template Row</a></h3>
  135:   <p class=MsoBodyText2>The template row of a spreadsheets will make the contents 
  136:     of a given column identical for each row. The contents of the template row 
  137:     are shown verbatim, and not evaluated. Fig 2.2.6 shows the template row in 
  138:     use. </p>
  139:   <p class=MsoHeader> <img width=432 height=215
  140: src="Session%20Tw1_files/image011.jpg" v:shapes="_x0000_i1029"> </p>
  141:   <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.7</b></span><span style='font-size:14.0pt'> 
  142:     Ð Customized Spreadsheet on Student Level</span><b> </b><span style='font-size:8.0pt;font-weight:normal'>Shows 
  143:     a course-customized student-level spreadsheet with many of these functions, 
  144:     templates and wildcards in action. In the dialog window, </span><span
  145: style='font-size:8.0pt;font-family:"Courier New"'>&amp;SUM(Òd*Ó)</span><span
  146: style='font-size:8.0pt'> is entered as the expression for cell H0, which will 
  147:     add up all cells in column d. The template row is used to define expressions 
  148:     for columns a, b, c, and d, where for b and d both the Ô#Õ wildcard and access 
  149:     to the EXT function is used in order to multiply the respective X and Z cells 
  150:     in each row with 1 or 0 depending on whether the value in G (the duedate) 
  151:     is smaller or larger than the system time (Ò?Ó is the standard Perl choice 
  152:     operator).</span></p>
  153:   <h3><a name="_Toc421867100">What goes in a cell</a></h3>
  154:   <p class=MsoBodyText2>A cell contains either parameter data (which cannot be 
  155:     changed) or perl code. Additionally, cells can contain references to other 
  156:     cells and these references can be passed as parameters to perl functions. 
  157:     Parameters can be accessed via the cell they are stored in or by the parameter 
  158:     name. </p>
  159:   <h3><a name="_Toc421867101">Parameter Access</a></h3>
  160:   <p class=MsoBodyText2>Parameters can be accessed by enclosing the parameter 
  161:     name in square brackets. A new feature allows the accessing of parameters 
  162:     by enclosing only enough information to lead to a unique parameter. &quot;[part_0_duedate]&quot; 
  163:     will give the same value as &quot;[duedate]&quot; if there are no other parameters 
  164:     which contain the string &quot;duedate&quot;. </p>
  165:   <h3><a name="_Toc421867102">Addressing other cells</a></h3>
  166:   <p><span style='color:black'>Cells are specified by the letter-number combination 
  167:     of their position in the table, for example &quot;A5&quot;. There are also 
  168:     wildcards '*' and '#' which are used in ranges and templates, respectively, 
  169:     and symbolic names. </span></p>
  170:   <p><span style='color:black'>Valid ranges are for example &quot;A5..C7&quot; 
  171:     which is the square between cells A5 to C7, as in A5, A6, A7, B5, etc. Also, 
  172:     wildcards can be used, as in &quot;A*&quot; for column A, or &quot;*5&quot; 
  173:     for row 5. For example, &amp;SUM(&quot;d*&quot;) will add up all cells in 
  174:     column d. The table below gives a brief summary of the range options. </span></p>
  175:   <p><span style='color:black'>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  176:     all rows, all columns</span></p>
  177:   <p><span style='color:black'>B*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all rows 
  178:     in column B</span></p>
  179:   <p><span style='color:black'>*5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all 
  180:     columns in row 5</span></p>
  181:   <p><span style='color:black'>C5..F25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  182:     all cells in the rectangle between C5 and F25</span></p>
  183:   <p>The template row allows the use of &quot;A#&quot;, which will result in &quot;A5&quot; 
  184:     in row 5, &quot;A6&quot; in row 6, etc.<span
  185: style='font-size:16.0pt'> </span></p>
  186:   <p><b>Spreadsheet Functions </b></p>
  187:   <p class=MsoHeader><span style='color:black'>Many perl functions are available 
  188:     in the spreadsheet (see &quot;The Safe Environment&quot; below). Additionally, 
  189:     some spreadsheet specific functions have been defined as well. A complete 
  190:     list is available by executing 'perldoc loncapa/loncom/interface/lonspreadsheet.pm' 
  191:     on the command line. An abbreviated table appears in Fig. 2.2.7.</span></p>
  192:   <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'> 
  193:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  194: 11.0pt'>&amp;NUM(<i>range</i></span><span style='font-size:11.0pt'>) Ð number 
  195:       of non-empty cells in <i>range</i></span></p>
  196:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  197: 11.0pt'>&amp;BIN(<i>low, high, range</i></span><span style='font-size:11.0pt'>) 
  198:       Ð number of non-empty cells in <i>range</i></span><span style='font-size:11.0pt'> 
  199:       with values between <i>low</i></span><span style='font-size:11.0pt'> and 
  200:       <i>high</i></span></p>
  201:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  202: 11.0pt'>&amp;SUM(<i>range</i></span><span style='font-size:11.0pt'>) Ð sum of 
  203:       the non-empty cells in <i>range</i></span></p>
  204:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  205: 11.0pt'>&amp;MEAN(<i>range</i></span><span style='font-size:11.0pt'>) Ð mean value 
  206:       of non-empty cells in <i>range</i></span></p>
  207:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  208: 11.0pt'>&amp;STDDEV(<i>range</i></span><span style='font-size:11.0pt'>) Ð standard 
  209:       deviation of non-empty cells in <i>range</i></span></p>
  210:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  211: 11.0pt'>&amp;PROD(<i>range</i></span><span style='font-size:11.0pt'>) Ð product 
  212:       of non-empty cells in <i>range</i></span></p>
  213:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  214: 11.0pt'>&amp;MAX(<i>range</i></span><span style='font-size:11.0pt'>) Ð maximum 
  215:       value of non-empty cell in <i>range</i></span></p>
  216:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  217: 11.0pt'>&amp;MIN(<i>range</i></span><span style='font-size:11.0pt'>) Ð minimum 
  218:       value of non-empty cells in <i>range</i></span></p>
  219:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  220: 11.0pt'>&amp;SUMMAX(<i>n ,range</i></span><span style='font-size:11.0pt'>) Ð sum 
  221:       of the maximum <i>n</i></span><span style='font-size:11.0pt'> non-empty 
  222:       cells in range</span></p>
  223:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  224: 11.0pt'>&amp;SUMMIN(<i>n, range</i></span><span style='font-size:11.0pt'>) Ð sum 
  225:       of the minimum <i>n</i></span><span style='font-size:11.0pt'> non-empty 
  226:       cells in range</span></p>
  227:     <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
  228: 11.0pt'>&amp;EXT(<i>expression</i></span><span style='font-size:11.0pt'>) Ð access 
  229:       to EXT function in </span><span style='font-size:11.0pt;font-family:
  230: "Courier New"'>lonnet</span></p>
  231:   </div>
  232:   <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.7</b></span><span style='font-size:14.0pt'> 
  233:     Ð Available Functions in Spreadsheet</span></p>
  234:   <h3><a name="_Toc421867103">The Safe Environment</a></h3>
  235:   <p><span style='color:black'>The spreadsheet cells are evaluated in a &quot;Safe&quot; 
  236:     environment. The module Safe.pm is included in the standard systemperl RPM 
  237:     put out by the LON-CAPA developers, but is written by Tim Bunce and Malcolm 
  238:     Beattie. If you execute 'perldoc Safe' you can read the documentation for 
  239:     the module. </span></p>
  240:   <p><span style='color:black'>The Safe.pm module allows users to &quot;compile 
  241:     and execute code in restricted compartments&quot;. We use this to allow users 
  242:     to implement in their spreadsheets a restricted set of perl functions, variables, 
  243:     and operators. No one using the spreadsheet should ever need access to the 
  244:     basic IO functions of Perl, for example, so these are not made available to 
  245:     the users. </span></p>
  246:   <p><span style='color:black'>Each cell is evaluated within the same safe space, 
  247:     so cells can actually contain function and declarations. </span></p>
  248:   <p><span style='color:black'>There is information the user may need which is 
  249:     not contained in the cells of the spreadsheet. So we poke a hole in the safe 
  250:     space using the Safe::Hole module. This lets us allow access to external information. 
  251:     Obviously this needs to be done with some degree of caution. </span></p>
  252:   <p><span style='color:black'>At the beginning of lonspreadsheet.pm we have the 
  253:     following code: </span></p>
  254:   <p><span style='font-family:"Courier New";color:black'>use Safe;</span></p>
  255:   <p><span style='font-family:"Courier New";color:black'>use Safe::Hole;</span></p>
  256:   <p><span style='color:black'>The function &amp;initsheet, which is called when 
  257:     a spreadsheet is created or modified, defines the safe space for the execution 
  258:     of spreadsheet code: </span></p>
  259:   <p><span style='font-family:"Courier New";color:black'>sub initsheet {</span></p>
  260:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; my 
  261:     $safeeval = new Safe(shift);</span></p>
  262:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; my 
  263:     $safehole = new Safe::Hole;</span></p>
  264:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; $safeeval-&gt;permit(&quot;entereval&quot;);</span></p>
  265:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; $safeeval-&gt;permit(&quot;:base_math&quot;);</span></p>
  266:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; $safeeval-&gt;permit(&quot;sort&quot;);</span></p>
  267:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; $safeeval-&gt;deny(&quot;:base_io&quot;);</span></p>
  268:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; $safehole-&gt;wrap(\&amp;Apache::lonnet::EXT,$safeeval,'&amp;EXT');</span></p>
  269:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; my 
  270:     $code=&lt;&lt;'ENDDEFS';</span></p>
  271:   <p><span style='font-family:"Courier New";color:black'>.</span></p>
  272:   <p><span style='font-family:"Courier New";color:black'><i>functions and variables 
  273:     needed in the safe space are defined here</i></span></p>
  274:   <p><span style='font-family:"Courier New";color:black'>.</span></p>
  275:   <p><span style='font-family:"Courier New";color:black'>ENDDEFS</span></p>
  276:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; $safeeval-&gt;reval($code);</span></p>
  277:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; return 
  278:     $safeeval;</span></p>
  279:   <p><span style='font-family:"Courier New";color:black'>}</span></p>
  280:   <h3><a name="_Toc421867104">Change is coming</a></h3>
  281:   <p><span style='color:black'>Currently the spreadsheet is scheduled to undergo 
  282:     major revisions by the end of the summer. The goal of these revisions is to 
  283:     increase the speed and add some requested functionality. We hope to add: </span></p>
  284:   <p><span style='color:black'>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  285:     Improved exporting of the spreadsheet date to client side spreadsheets </span></p>
  286:   <p><span style='color:black'>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  287:     Exporting of spreadsheet xml - allowing users to save spreadsheets from their 
  288:     classes for reuse. </span></p>
  289:   <p><span style='color:black'>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  290:     Additional spreadsheet functions.</span></p>
  291:   <h3>&nbsp; </h3>
  292:   <h3><a name="_Toc421867105">Discussion</a></h3>
  293:   <p><span style='color:black'>loncapa/loncom/interface/lonfeedback.pm handles 
  294:     feedback on resources. Feedback can be for course discussion of a resource 
  295:     or to communicate with the author of the resource. In the latter case, a screenshot 
  296:     of the resource and (if applicable) the students previous attempts to solve 
  297:     the problem. </span></p>
  298:   <p><span style='color:black'>Course discussion messages appear at the bottom 
  299:     of the resource being discussed. There are two types of attribution in course 
  300:     discussion messages. Users may choose to have their LON-CAPA id shown to everyone 
  301:     or they may have it shown only to instructors. Complete anonymity is not an 
  302:     option. If the users choose to hide their LON-CAPA id (an 'anonymous' message), 
  303:     they can set the name given in the [PREF] page. </span></p>
  304:   <p><span style='color:black'><b>Figures 2.2.8</b></span><span
  305: style='color:black'> through <b>2.2.10</b></span><span style='color:black'> show 
  306:     a course discussion feedback cycle. </span></p>
  307:   <p><span style='color:black'> <img width=256 height=63
  308: src="Session%20Tw1_files/image013.jpg" v:shapes="_x0000_i1030"> </span></p>
  309:   <p><span style='color:black'><b>Fig 2.2.8</b></span><span
  310: style='color:black'> - A Simple Resource</span></p>
  311:   <p><span style='color:black'> <img width=301 height=240
  312: src="Session%20Tw1_files/image015.jpg" v:shapes="_x0000_i1031"> </span></p>
  313:   <p><span style='color:black'><b>Fig. 2.2.9</b></span><span
  314: style='color:black'> Composing Discussion Feedback&nbsp; </span></p>
  315:   <p><span style='color:black'> <img width=292 height=170
  316: src="Session%20Tw1_files/image017.jpg" v:shapes="_x0000_i1032"> </span></p>
  317:   <p><span style='color:black'><b>Fig 2.2.10</b></span><span
  318: style='color:black'> The Resource with Anonymous and Non-anonymous Discussion</span></p>
  319:   <h3><a name="_Toc421867106">Messaging</a></h3>
  320: </div>
  321: <h1><span style='font-size:10.0pt;font-family:"Courier New";font-weight:normal'>&nbsp;</span></h1>
  322: <p><span style='color:black'>loncapa/loncom/interface/lonmsg.pm provides functions 
  323:   for sending users messages. All messaging is currently done via lonmsg.pm. The 
  324:   following subroutines handle the sending of various types of messages: </span></p>
  325: <p><span style='font-family:"Courier New";color:black'>author_res_msg </span></p>
  326: <p><span style='color:black'>Send a message to the author of a resource. </span></p>
  327: <p><span style='font-family:"Courier New";color:black'>user_crit_msg </span></p>
  328: <p><span style='color:black'>Send a critical message to a user. Critical messages 
  329:   require the user to acknowledge receipt before any other action in LON-CAPA 
  330:   can be taken. </span></p>
  331: <p><span style='font-family:"Courier New";color:black'>user_crit_received </span></p>
  332: <p><span style='color:black'>Notify the sender of a critical message that the 
  333:   message has been received. </span></p>
  334: <p><span style='font-family:"Courier New";color:black'>user_normal_msg </span></p>
  335: <p><span style='color:black'>Send a non-critical message to a user. </span></p>
  336: <p><span style='font-family:"Courier New";color:black'>statuschange </span></p>
  337: <p><span style='color:black'>Change the status of a message (read, replied, forwarded, 
  338:   etc) </span></p>
  339: <p><span style='color:black'>The lonmsg::handler takes care of the display and 
  340:   sending of messages. If you have the time, communicate with yourself! Note: 
  341:   Critical messages are displayed on login to LON-CAPA. Some message types are 
  342:   only available for course coordinators. </span></p>
  343: <h3><span style='color:black'>&nbsp;</span></h3>
  344: <h3><a name="_Toc421867107">Resource Feedback</a></h3>
  345: <p><img border=0 width=432 height=304 id="_x0000_i1028"
  346: src="handout_files/image004.jpg"></p>
  347: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.11</b></span><span style='font-size:14.0pt'> 
  348:   Ð Example of a Feedback</span></p>
  349: <br
  350: clear=ALL style='page-break-before:always;'>
  351: <div class=Section2> </div>
  352: </body>
  353: </html>

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