File:  [LON-CAPA] / loncom / homework / mathresponse.idea
Revision 1.2: download - view: text, annotated - select for diffs
Tue Dec 5 15:20:22 2006 UTC (17 years, 5 months ago) by www
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_99_1, version_2_2_99_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, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, bz6209-base, bz6209, bz5969, bz2851, PRINT_INCOMPLETE_base, PRINT_INCOMPLETE, HEAD, GCI_3, GCI_2, GCI_1, BZ5971-printing-apage, BZ5434-fox, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
Gesundheit ... might as well add this.

    1: <problem>
    2: 
    3: <script type="loncapa/perl">
    4: $a1 = random(-5,5,2);
    5: $a2 = random(-5,5,2);
    6: $n1 = random(1,10,1);
    7: $n2 = random(1,10,1);
    8: $function = "$a1*cos($n1*x)+$a2*sin($n2*x)";
    9: @cas_list = ($function);
   10: </script>
   11: 
   12: <startouttext />
   13: Give an example of a function which is
   14: (1) orthogonal to <algebra>$function</algebra> with respect to the
   15: scalar product
   16: <m>$$\langle g \mid h \rangle =
   17: \frac{1}{\pi} \int_{-\pi}^{\pi} g(x) \cdot h(x)$$</m>
   18: and
   19: (2) whose norm is 1.
   20: <endouttext />
   21: 
   22: <mathresponse cas="maxima" args="@cas_list">
   23:    <answer>
   24:      f(x):= LONCAPALIST[1];
   25:      overlap: integrate(f(x)*RESPONSE[1],x,-%pi,%pi)/%pi;
   26:      norm: integrate(RESPONSE[1]*RESPONSE[1],x,-%pi,%pi)/%pi;
   27:      grade: is(overlap=0 and norm=1);
   28:      [grade];
   29:    </answer>
   30: 
   31:    <textline />
   32: 
   33:    <hintgroup showoncorrect="no">
   34:      <mathhint cas="maxima" args="@cas_list" name="ortho">
   35:        <answer>
   36:          f(x):= LONCAPALIST[1];
   37:          overlap: integrate(f(x)*RESPONSE[1],x,-%pi,%pi)/%pi;
   38: 	 [is(overlap != 0)];
   39:        </answer>
   40:      </mathhint>
   41:      <mathhint cas="maxima" args="@cas_list" name="norm">
   42:        <answer>
   43:          f(x):= LONCAPALIST[1];
   44:          norm: integrate(RESPONSE[1]*RESPONSE[1],x,-%pi,%pi)/%pi;
   45:          [is(norm != 1)];
   46:        </answer>
   47:      </mathhint>
   48: 
   49: 
   50:      <hintpart on="norm">
   51:        <script type="loncapa/perl">
   52:          $response = &EXT('user.resource.resource.0.submissiom');
   53: 	 $norm = &cas('maxima',...); # get the norm
   54: 	 $norm_display = &cas_tex_display($norm);
   55:        </script>
   56:        <startouttext />
   57:          The function you have provided is not normal to
   58:          <algebra>$function</algebra> its norm is
   59:           <m eval="on">$norm_display</m>
   60:        <endouttext />
   61:      </hintpart>
   62:      <hintpart on="ortho">
   63:        <startouttext />
   64:          The function you have provided is not orthognal.
   65:        <endouttext />
   66:      </hintpart>
   67: 
   68:    </hintgroup>
   69: </mathresponse>
   70: 
   71: </problem>
   72: 
   73: 
   74: * Maxima hat keinen echten Servermode.
   75: 
   76: Das Programm
   77: 
   78: /loncapa/loncom/lonmaxima
   79: 
   80: erzeugt fuenf Serverprozesse, die jeweils einen Maxima-Prozess am Laufen halten:
   81: 
   82: www       8506  0.0  0.5  8880 5324 ?        S    Dec04   0:00 lonmaxima: Parent process, sleeping Mon Dec  4 09:53:10 2006
   83: www       8507  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:24 2006
   84: www       8508  0.0  2.3 885900 24276 pts/2  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   85: www       8510  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:24 2006
   86: www       8512  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:30 2006
   87: www       8513  0.0  2.3 885900 24308 pts/4  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   88: www       8515  0.0  2.3 885900 24040 pts/5  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   89: www       8621  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:30 2006
   90: www       8622  0.0  2.3 885900 24312 pts/3  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   91: www       8648  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:19 2006
   92: www       8649  0.0  2.2 885900 22952 pts/6  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   93: 
   94: Dieser Daemon muss laufen, damit LON-CAPA mit Maxima reden kann.
   95: 
   96: Die Routinen, die dazu benutzt werden sollen, sind in
   97: 
   98: /loncapa/loncom/homework/lonmaxima.pm
   99: 
  100: * XML-Umgebung: wir haben zwei Perl-Umgebungen, wenn wir XML-Dateien abarbeiten, naemlich
  101:   - die Apache-Module-Umgebung: volle Privilegien
  102:   - die "Safeeval"-Umgebung: die interne Umgebung des Dokuments, in der zum Beispiel die <script>-Bloecke laufen. In dieser Umgebung existieren die Variablen des Problems.
  103:     Eingeschraenkte Opcodes (no I/O), kein direkter Zugriff auf die Apache-Umgebungen ausser mit "Safe Holes", z.B.,
  104:     $safehole->wrap(\&Apache::lonmaxima::maxima_check,$safeeval,'&maxima_check');
  105: 
  106: caparesponse.pm, response.pm, lonmaxima.pm, etc, laufen in der Apache-Umgebung
  107: default_homework.lcpm laueft in der Safeeval-Umgebung
  108: 
  109: * formularesponse: Erweiterung der "einfachen" Responsetypes: numerical, string, etc. Das haben wir vom alten CAPA-System geerbt und ist deshalb in
  110: 
  111: /loncapa/loncom/homework/caparesponse/caparesponse.pm
  112: 
  113: Alle einfachen Responses gehen in &check_submission(), wo dann sortiert wird, wer es bearbeitet. <formularesponse> ohne Samples soll von Maxima bearbeitet werden (auskommentiert in Production-Version). Ausgefuehrt wird das dann in
  114: 
  115: /loncapa/loncom/xml/run.pm
  116: 
  117: das den Uebergang in die Safeeval-Umgebung macht. In der Safeeval-Umgebung kuemmert sich
  118: 
  119: /loncapa/loncom/homework/default_homework.lcpm
  120: 
  121: in der Routine &caparesponse_check()
  122: 
  123:     if ($type eq '9') {
  124:       $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror);
  125:     } else {
  126:         if ($type eq '8') { # fml type
  127:     ...
  128: 
  129: * <mathresponse>: neuer Antwork-Typ, aehnlich wie <customresponse>. Das Design ist beschrieben in
  130: 
  131: /loncapa/loncom/homework/mathresponse.idea
  132: 
  133: Das Tag ist definiert in
  134: 
  135: /loncapa/loncom/homework/response.pm
  136: 
  137: Die Routine
  138: 
  139: &start_mathresponse()
  140: 
  141: wird aufgerufen, wenn der Parser auf <mathresponse> trifft. Die Routine
  142: 
  143: &end_mathresponse()
  144: 
  145: wird aufgerufen, wenn der Parser auf </mathresponse> trifft. Beide Routinen muessen die verschiedenen Rendering-Targets bedienen:
  146: * web: Darstellung auf dem Web
  147: * tex: Darstellung im Druck
  148: * edit: Darstellung im bunten Editor
  149: * modified: Zurueckschreiben von Aenderungen im Editor (muss normalerweise nicht geaendert werden)
  150: * meta: Katalogdaten  (muss normalerweise nicht geaendert werden)
  151: * answer: Darstellung der richtigen Antwort
  152: * grade: Benotung der Studierendenantwort
  153: 
  154: Die Routinen &start_answer and &end_answer (<answer> und </answer>) sammeln nur die Scripts ein und werden von <mathresponse> und <customresponse> genutzt.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.