pr

28 Reputation

2 Badges

17 years, 292 days

MaplePrimes Activity


These are replies submitted by pr

As for the "\"-escape: Sorry, I did not say that I use LaTex (almost exclusively) for authoring (more on that below). Now, "\" is an escape character in LaTeX as is "$". Note that brownstone has "circumvented" the different meaning of "$", i.e. variable in edu vs. ESC in LaTeX, by replacing $variable by \var{variable} everywhere except in the code-section. The LaTeX-style file somehow is such that "$" characters in the code-section are interpreted as verbatim (I haven't checked out the details), but "\" is not interpreted as verbatim in the code section. So escaping with "\" does not help when authoring using LaTeX. Still [seq(x,i=1..$n)] is a functionally equivalent statement to the Maple fragment x\$($n) and can be used in LaTeX authoring. As for the maple repositories: Yes that's true. They can be linked via the algorithmic designer. Yet, this is still miles apart from structured and/or convenient programming: You have to create the repository, upload it, link it in the algorithmic designer (lowest leave on the decision tree) for EVERY question, where you need it, and again in the grading part if you need it there. Along that you have to decide which part of the code to write in Maple which one in MapleTA. It would be nice if repositories could at least be automatically linked, similarily to libname in Maple. What I really find to be inconvenient, though, is that Maple cannot be effectively used, and if so only if wrapped into many many maple("...") commands. Let's analyze how MapleTA (i.e. the brownstone part) works: There is a very rudimentary "programming language" supporting only two data types (integer and float) and a number of built-in functions. However, functions or precedures are not part of this "language". If you want to do use a procedure you have to call Maple (which IS a full and modern programming language, and an excellent one!). Now the question is: Which part of the coding should be left to MapleTA, which to Maple? As Maple is the programming language available, the answer is clear: Code everything in Maple. What is the MapleTA "programming" language useful for then? Only for holding randomized variables until they are needed for grading. For instance it would be much more convenient if one could provide Maple procedures, e.g. via repository, of the following type: questionparameters := proc(variables) ... grade:=proc(inputparameters) ... questionparameters is an array which contains all ramdomized variables and mathml formatted output. Note that the MapleTA "programming" language internally makes use of arrays, as error messages have told me, although it is not a data type available to the programmer. questionparameters is stored by MapleTA and returned later to Maple for grading via grade(questionparameters). Here is a simplistic example: randomderiv:=proc(f) description "everything needed to ask for a randomized derivative of f in MapleTA"; local prettydfdx, order, freq, answer; order:=RandomTools[Generate](integer(range=1..4)); freq:=RandomTools[Generate](integer(range=1..6)); answer:=diff(f(order*x),x$order); prettydfdx:=MathML[ExportPresentation](answer); [prettydfdx,answer]; end proc; graderandomderiv:=proc(response,inputarray) evalb(simplify(inputarray[2]-response=0)); end proc; In MapleTA one would then define $ia = randomderiv(sin) and ask "Compute $ia[1]" resulting in "Compute d/dx sin(freq*x)" (neatly typeset). The grading is done via graderandomderiv($RESPONSE,$ia) Note that in general graderandomderiv could also be an array, containing conditional feedback besides the actual grade. I hope this gives an impression of what is needed in order to make the implementation of MapleTA question banks easier and more structured. And there will be other and certainly better solutions than the one proposed above, for instance doing the whole authoring in a Maple worksheet. Maybe all this is possible already today. Then, however, I cannot find the paragraph in the documentation describing how to realize it. In general I would appreciate some meaningful examples of the usage of maple repositories in the documentation. And finally: So far I could not find out how to access a maple repository for grading purposes when authoring in LaTeX. As for LaTeX authoring in general: From my point of view there is no alternative to that, currently. The reasons are: o Some question types are accessible only via LaTex authoring. Sketch the graph is an example. o You get a printable synopsis of your authored questions for free. o With respect to typesetting of mathematical expressions you will get what you want. I am still prefering LaTeX authoring despite its drawbacks: o Teaching German students I occusionally have to use umlaute. For instance ä is typeset as "a in LaTeX (using the package ngerman.sty). But then " will have the meaning of a LaTeX command and a call to Maple (requiring the usage of ") in the code section will prevent the tex-file from being processed. Currently I am circumventing this by using a private escape sequence and replacing this at the very end in the edu-file by ". With respect to the first problem above: Of course I could invent my own escape for "\" as well. It would simply be nicer if the problem is fixed at its source. o The availability of the latex2edu conversion via web interface only is not acceptable, cf. Andre Heck's excellent white paper on the Maplesoft webpages.
As for the "\"-escape: Sorry, I did not say that I use LaTex (almost exclusively) for authoring (more on that below). Now, "\" is an escape character in LaTeX as is "$". Note that brownstone has "circumvented" the different meaning of "$", i.e. variable in edu vs. ESC in LaTeX, by replacing $variable by \var{variable} everywhere except in the code-section. The LaTeX-style file somehow is such that "$" characters in the code-section are interpreted as verbatim (I haven't checked out the details), but "\" is not interpreted as verbatim in the code section. So escaping with "\" does not help when authoring using LaTeX. Still [seq(x,i=1..$n)] is a functionally equivalent statement to the Maple fragment x\$($n) and can be used in LaTeX authoring. As for the maple repositories: Yes that's true. They can be linked via the algorithmic designer. Yet, this is still miles apart from structured and/or convenient programming: You have to create the repository, upload it, link it in the algorithmic designer (lowest leave on the decision tree) for EVERY question, where you need it, and again in the grading part if you need it there. Along that you have to decide which part of the code to write in Maple which one in MapleTA. It would be nice if repositories could at least be automatically linked, similarily to libname in Maple. What I really find to be inconvenient, though, is that Maple cannot be effectively used, and if so only if wrapped into many many maple("...") commands. Let's analyze how MapleTA (i.e. the brownstone part) works: There is a very rudimentary "programming language" supporting only two data types (integer and float) and a number of built-in functions. However, functions or precedures are not part of this "language". If you want to do use a procedure you have to call Maple (which IS a full and modern programming language, and an excellent one!). Now the question is: Which part of the coding should be left to MapleTA, which to Maple? As Maple is the programming language available, the answer is clear: Code everything in Maple. What is the MapleTA "programming" language useful for then? Only for holding randomized variables until they are needed for grading. For instance it would be much more convenient if one could provide Maple procedures, e.g. via repository, of the following type: questionparameters := proc(variables) ... grade:=proc(inputparameters) ... questionparameters is an array which contains all ramdomized variables and mathml formatted output. Note that the MapleTA "programming" language internally makes use of arrays, as error messages have told me, although it is not a data type available to the programmer. questionparameters is stored by MapleTA and returned later to Maple for grading via grade(questionparameters). Here is a simplistic example: randomderiv:=proc(f) description "everything needed to ask for a randomized derivative of f in MapleTA"; local prettydfdx, order, freq, answer; order:=RandomTools[Generate](integer(range=1..4)); freq:=RandomTools[Generate](integer(range=1..6)); answer:=diff(f(order*x),x$order); prettydfdx:=MathML[ExportPresentation](answer); [prettydfdx,answer]; end proc; graderandomderiv:=proc(response,inputarray) evalb(simplify(inputarray[2]-response=0)); end proc; In MapleTA one would then define $ia = randomderiv(sin) and ask "Compute $ia[1]" resulting in "Compute d/dx sin(freq*x)" (neatly typeset). The grading is done via graderandomderiv($RESPONSE,$ia) Note that in general graderandomderiv could also be an array, containing conditional feedback besides the actual grade. I hope this gives an impression of what is needed in order to make the implementation of MapleTA question banks easier and more structured. And there will be other and certainly better solutions than the one proposed above, for instance doing the whole authoring in a Maple worksheet. Maybe all this is possible already today. Then, however, I cannot find the paragraph in the documentation describing how to realize it. In general I would appreciate some meaningful examples of the usage of maple repositories in the documentation. And finally: So far I could not find out how to access a maple repository for grading purposes when authoring in LaTeX. As for LaTeX authoring in general: From my point of view there is no alternative to that, currently. The reasons are: o Some question types are accessible only via LaTex authoring. Sketch the graph is an example. o You get a printable synopsis of your authored questions for free. o With respect to typesetting of mathematical expressions you will get what you want. I am still prefering LaTeX authoring despite its drawbacks: o Teaching German students I occusionally have to use umlaute. For instance ä is typeset as "a in LaTeX (using the package ngerman.sty). But then " will have the meaning of a LaTeX command and a call to Maple (requiring the usage of ") in the code section will prevent the tex-file from being processed. Currently I am circumventing this by using a private escape sequence and replacing this at the very end in the edu-file by ". With respect to the first problem above: Of course I could invent my own escape for "\" as well. It would simply be nicer if the problem is fixed at its source. o The availability of the latex2edu conversion via web interface only is not acceptable, cf. Andre Heck's excellent white paper on the Maplesoft webpages.
I want to tighten up the issue by posting a nicer (and stable) version of the question. Here the partial fraction decompostion in order to get $ANSWER is not done by hand but left to Maple: question=Expand the following into partial fractions:
$displayf=@ maple=evalb($ANSWER-$RESPONSE=0);@ maple_answer=convert($f,parfrac);@ type=formula@ mode=Maple@ name=parfrac decompo@ editing=useHTML@ algorithm=$dummy=range(1,2,1); $gamma = range(0,1,1); $A = range(-2,2,1); condition:not(eq($A,0)); $B = range(1,2,1); condition:not(eq($B,0)); $k = range(-2,2,1); $l = range(-2,2,1); condition:not(eq($k,$l)); $alpha=if(eq($l,0),$dummy,1); $f = maple(" $A/(($k)+s)^($alpha) +($B)*s^($gamma)/(($l)+s)"); $displayf=maple("ff:=factor($f): printf( MathML:-ExportPresentation(expand(numer(ff))/expand(denom(ff))))");@ Note that it would not at all be helpful here to use simplify as in maple=evalb(simplify($ANSWER-$RESPONSE)=0);@ The effect would be that the original expression, i.e. not decomposed into partial fraction, would be accepted as an correct answer. Thanks again to everybody for your help!!! Peter
I want to tighten up the issue by posting a nicer (and stable) version of the question. Here the partial fraction decompostion in order to get $ANSWER is not done by hand but left to Maple: question=Expand the following into partial fractions:
$displayf=@ maple=evalb($ANSWER-$RESPONSE=0);@ maple_answer=convert($f,parfrac);@ type=formula@ mode=Maple@ name=parfrac decompo@ editing=useHTML@ algorithm=$dummy=range(1,2,1); $gamma = range(0,1,1); $A = range(-2,2,1); condition:not(eq($A,0)); $B = range(1,2,1); condition:not(eq($B,0)); $k = range(-2,2,1); $l = range(-2,2,1); condition:not(eq($k,$l)); $alpha=if(eq($l,0),$dummy,1); $f = maple(" $A/(($k)+s)^($alpha) +($B)*s^($gamma)/(($l)+s)"); $displayf=maple("ff:=factor($f): printf( MathML:-ExportPresentation(expand(numer(ff))/expand(denom(ff))))");@ Note that it would not at all be helpful here to use simplify as in maple=evalb(simplify($ANSWER-$RESPONSE)=0);@ The effect would be that the original expression, i.e. not decomposed into partial fraction, would be accepted as an correct answer. Thanks again to everybody for your help!!! Peter
Thanks a lot! That's it. Yes, I knew about the safety rule to embrace each and every variable in MapleTA by parentheses. And yes, I forgot to do that in the case of $alpha. I have meanwhile set MAPLE_DEBUG=true in /config/system.properties ( I STRONGLY RECOMMEND THAT TO EVERYBODY ) and got the following jvm 1 | From Maple --> on line 302, syntax error, `-` unexpected: jvm 1 | Maple computation syntax error: jvm 1 | e := exp(1) : protect('e') : -1/((-2)+s)^1 +(2)*s^-0/((1)+s); This clearly shows what is happening: The problem arises when $alpha equals 0, which becomes -0 in MapleTA for some reasons. Then -0 is passed to Maple where s^-0 is indeed a syntax error. Whereas embracing $alpha with parentheses leads to s^(-0) being passed to Maple in that case which will be evaluated as desired.
Thanks a lot! That's it. Yes, I knew about the safety rule to embrace each and every variable in MapleTA by parentheses. And yes, I forgot to do that in the case of $alpha. I have meanwhile set MAPLE_DEBUG=true in /config/system.properties ( I STRONGLY RECOMMEND THAT TO EVERYBODY ) and got the following jvm 1 | From Maple --> on line 302, syntax error, `-` unexpected: jvm 1 | Maple computation syntax error: jvm 1 | e := exp(1) : protect('e') : -1/((-2)+s)^1 +(2)*s^-0/((1)+s); This clearly shows what is happening: The problem arises when $alpha equals 0, which becomes -0 in MapleTA for some reasons. Then -0 is passed to Maple where s^-0 is indeed a syntax error. Whereas embracing $alpha with parentheses leads to s^(-0) being passed to Maple in that case which will be evaluated as desired.
and now there should be the next paragraph and the system replies that the data is suspicious. Sorry for the mess. I am fighting with despairation.
and now there should be the next paragraph and the system replies that the data is suspicious. Sorry for the mess. I am fighting with despairation.
This is the text I originally was unable to post: --- Quite often I receive complains by my students that they answered a question correctly but MapleTA did not assign any points. Unfortunately most of the time they are right! to be cont'd
This is the text I originally was unable to post: --- Quite often I receive complains by my students that they answered a question correctly but MapleTA did not assign any points. Unfortunately most of the time they are right! to be cont'd
I couldn't post so far. I always got the response "Terminated request because of suspicious input data". Even now it doesn't work with the text I intended to post.
I couldn't post so far. I always got the response "Terminated request because of suspicious input data". Even now it doesn't work with the text I intended to post.
So I am breaking in into parts: Here is the source code: question=Zerlegen Sie den folgenden Bruch in Partialbrüche:
$displayf=@ maple=evalb($ANSWER-$RESPONSE=0);@ maple_answer=$A/(($k)+s)^$alpha +($B)*s^$gamma/(($l)+s);@ type=formula@ mode=Maple@ name=Partialbruchzerlegung2@ editing=useHTML@ algorithm=$dummy=range(1,2,1); $gamma = range(0,1,1); $A = range(-2,2,1); condition:not(eq($A,0)); $B = range(1,2,1); condition:not(eq($B,0)); $k = range(-2,2,1); $l = range(-2,2,1); condition:not(eq($k,$l)); $alpha=if(eq($l,0),$dummy,1); $f = maple(" $A/(($k)+s)^($alpha) +($B)*s^($gamma)/(($l)+s)"); $displayf=maple("ff:=factor($f): printf( MathML:-ExportPresentation(expand(numer(ff))/expand(denom(ff))))");@
So I am breaking in into parts: Here is the source code: question=Zerlegen Sie den folgenden Bruch in Partialbrüche:
$displayf=@ maple=evalb($ANSWER-$RESPONSE=0);@ maple_answer=$A/(($k)+s)^$alpha +($B)*s^$gamma/(($l)+s);@ type=formula@ mode=Maple@ name=Partialbruchzerlegung2@ editing=useHTML@ algorithm=$dummy=range(1,2,1); $gamma = range(0,1,1); $A = range(-2,2,1); condition:not(eq($A,0)); $B = range(1,2,1); condition:not(eq($B,0)); $k = range(-2,2,1); $l = range(-2,2,1); condition:not(eq($k,$l)); $alpha=if(eq($l,0),$dummy,1); $f = maple(" $A/(($k)+s)^($alpha) +($B)*s^($gamma)/(($l)+s)"); $displayf=maple("ff:=factor($f): printf( MathML:-ExportPresentation(expand(numer(ff))/expand(denom(ff))))");@
The question text in English would be someting like "Expand the following into partial fractions". The student's answer is obviously correct. Some remark on the umlaut problem: The German word "Partialbrüche" for partial fraction contains an umlaut, here ü, set as ü in html. Umlaute in their html form are displayed correctly within Maple T.A. initially, but sooner or later they are replaced by a question mark.
1 2 Page 1 of 2