I could be wrong, but I think you can use the HTML code associated with the plot in the switch function. Which would randomly select the HTML code for a given plot. This in effect will do what you want.
I think I can answer my own question. I've managed to get this to work using the maple-graded question type, formula answer, symbolic entry only (so that prime notation can be used). The key seems to be that the maple-generated answer contain the operator D rather than the command diff. For example, if you ask maple to differentiate sin(f(t)), maple will respond with cos(f(t))*diff(f(t),t). But if you ask maple to differentiate sin(f(c*t)), then it responds with cos(f(c*t))*D(f)(c*t)*c. You just need to substitute c=1 into the result.
The following algorithm works for a question like "find the derivative of sin(f(t)), assuming f is differentiable":
This will enable students to enter their answer symbolically using f'(t).
Firstly, thanks for the effort in designing the nice questions! I would like to ask about +Quaterions_Rotation question, because of normalizing $k to get $u, the answer that the students need to enter is a decimal approximation. Are you looking to make that exact, or will you add tolerance so the student just enters correct to a number of decimal places?
I think the exact answers make more sense, so I would suggest putting certain variables in quotation marks or evaluating them using maple calls:
Although the Student ID cannot be pulled into the algorithm, there are some other great options....
1) As Meta mentioned, you can use a combination of Adaptive Assignments utilizing Maple Repositories
2) You can generate a "pseudo-student" id, using a response from a prior question and then generate a number from that string.
For example: I built an assignment with the following details:
Question 1: Asks the student to write their name in the box: "I, ___________, certify that this is my assignment". -If a student writes a name that does not appear in the comma separated list, their first question is highlighted (as it is graded in-correct).Question 2: Asks the student to write in an ascii-string that resembles their response to question 1 (ie. name): "take each letter in your name and convert your name to an ASCII string that is padded to a total width of 4-digits per letter: ___________________" -we use Maple (inside a Maple-graded response) to convert all the possible student names to the same ascii-string and then check to see if the student response is correct (based on their response to the first question).Question 3: Asks the student to (mod 5) each character in their second answer: "Take each character in the ASCII string above, find mod 5 of the character, and indicate the resulting string below: ___________" -Again we use Maple, to check the students supplied answer against what they should have answered based on the first question.
Basically the above allows you to completely customize an assignment based upon what the student responded in the first answer box, on the first question, (I recommend you think about using a table/Matrix with the first column as student names, and each column thereafter as answers to Question#1, Question#2, etc.)
Here is a Mobius Module that demonstrates the above: Module.zip
The Display command uses the Typesetting package native to Maple Document mode. However since Möbius is a web app, everything needs to be converted into MathML (or LaTeX or similar) to be supported by the browsers.
The closest I can think of (with this method) is the following: $a=maple("use InertForm:-NoSimpl in a:=2(3*x) end use; printf(InertForm:-ToMathML(a));");
But I don't know if that will generalize well to the rest of your problem.
If you're comfortable with Maple programming language, you can try 'inert form'. It will allow you to grade student response in its original form, without simplifications. Click here for an example.
Alternatively, you can convert the response to "string" and use string tools to check if the expression contains (the right number of) brackets, this should allow you to identify the expression type. I'm thinking alongs the lines of: student answer is equal to the correct answer AND the number of "(" brackets is right.
With regards to "y=" part. It's hard to say without the actual grading code. You could try to pull the the equation apart with use of lhs and rhs commands. For example, "y= a + b" would give you "y" and "a+b" respectively. This should allow you to grade equation in two parts without equation comparisons.
When assigning variable names to the equations (Maple syntax) I often forget to use ":", for example: "my_equation = y = a+b" instead of "my_equation := y = a+b". This leads to similar error messages.