Alex beat me to most of my comments on "what is considered factored".

In our department alone, there is disagreement on what the factored form of something like 2x^2+3x+1 should be. One camp expects (2x+1)(x+1), while another expects 2(x+1/2)(x+1).

Regarding not giving away the number of factors in the correct answer, the solution I had in mind for that is something I'd like to see more generally:

For list-type answers, start the student with a single answer blank, but beside it have a (probably javascript) button that adds another blank. Behind the scenes, compile these blanks into a list object, and pass it to the answer checker.

I have several uses for this:

- I think it would be a nicer interface for any question where the answer is an unordered list of objects.
- It could be used for factoring questions (where the button reads "add another factor").
- The more advanced use I'd have for this is to handle unordered, paired answers. For example, give the students a matrix and ask for the eigenvalues and corresponding eigenvectors. Start the student with one pair of blanks: one for an eigenvalue and the next for the corresponding eigenvector(s). The students can then add another set of eigenvector/eigenvalue blanks if there are additional eigenvectors.

Of course this is a solution to the student input challenges, which doesn't address the (much harder) problem of what to accept as an answer in our factoring discussion.