I'm currently revising some linear algebra problems and have some comments and questions.
In a recent message (http://webhost.math.rochester.edu/webworkdocs/discuss/msgReader$3407#3438)
Michael Gage indicated he might revise BASIS_CMP to use MultiPart. I'm
somewhat curious as to what this means. I can see scenarios in which I
wouldn't want to "give away" the number of vectors in a basis, and
would simply want to present the student with a single answer blank to
enter a list of vectors into. On the other hand, there are other times
I might want to give the student this additional information, and
provide a blank for each vector. If convenient, I would vote for
allowing problem writers both possibilities.
Davide's addition of problemwritersupplied answer checkers to the
parser, together with MultiPart and friends, gives another possible
direction. It is now relatively easy for a problemwriter to write
his/her own answer evaluator without having to worry about
syntaxchecking, answer hashes, etc. I cannot imagine that a small
number of canned answer evaluators would enable us to ask all the types
of questions that we would really like to ask our students. Without
trying to make WeBWorK into a fullblown computer algebra system, it
seems that a reasonably small toolbox of linear algebra routines would
enable problemwriters to easily write many of these problems.
Some of these tools are already part of the parser, but some more are
needed, e.g., checking dimension, equality of spans, etc. I've tried
writing some of these tools for my own use, but perhaps tighter
integration with the parser is desirable. One thought I had was that a
new parser class with a name such as VectorList, having these tools as
methods, might be useful.
What other tools would people find useful?
I also have a question about BASIS_CMP as it is currently implemented.
Apparently it works by projecting the student's set of vectors into the
space generated by the professor's vectors, and then counts the
student's answer as correct if the student's (projected) vectors are
independent, and if each of the student's vectors is equal to its
projection on the professor's space.
This comparison of vectors is pretty stringent. Is there any reason not
to use fuzzy comparison? For example, if a student were asked to enter
a basis for span([sqrt(2), sqrt(3)]) (although it presumably wouldn't
be asked this way), it would necessary for the student to enter a large
number of decimal places to get BASIS_CMP to accept the answer. This
seems inconsistent with other parts of WeBWork. Maybe examples like
this are too pathological to arise in practice, and maybe using fuzzy
comparison would cause other problems I'm not seeing.
Thanks to the WeBWorK developers for a great package! (And sorry for such a long post.)
Bob
< Post or View Comments >
