1) There is a large library of problems, especially for algebra and calculus.
2) Many of the questions are dynamic and interactive. Each student gets a slightly different version of the same question. The software provides some "Expert System" assistance to try to help students when they are struggling.
3) Students can express their answers with a great amount of variability allowed. Webwork is pretty smart about assessing correctness.
4) Maybe the best feature of all is that on each question page is an "email instructor" button. When a student clicks the button, the instructor gets an email with a link that takes him/her to the student's particular versions of the question, along with the student's answers. This gives you a lot of information about why the student is having trouble. Since I am a bit overloaded this semester, I am finding it a wonderful thing that I can find out what students are having trouble with and provide help at my convenience - whether it is 6 am, 11 pm, or over my lunch hour.
Some gripes include
1) Finding problems of specific types is quite difficult. The metadata provided is often useless (like M210 CH 1A), and the free text search does not seem to be very useful.
2) I have found a few library problems that do not give correct answers.
3) Having the ability to rein-in the random-number generators that customize problems would be helpful (as in having a setting for difficulty level).
4) Occasionally, the expert system provides an unhelpful diagnosis of students' answers, causing some confusion.
5) Adminstration of the Webwork software is crude and labor intensive.
6) There are a few glitches with the software that are annoying, but not fatal. Also, there is so much flexibility built in to allow the instructor to customize the assignments for individual students that it is actually not as easy as it should be to assign all the problems in a problem set to all students, which I would have thought would be the default behavior.
I would love to be able to use Webwork for my UCD Real Analysis class. Sadly, there are few problems available that are appropriate for the class. If I had more time, I would create some, but so far I haven't had the time. Also, the system probably works best for questions where there is a definite right answer, even if it can be expressed in many ways. I am not sure how to automate grading of the proof of a theorem, for example. The best idea I can some up with is to have a partially filled out two column-type proof and ask the student to fill in the missing parts. It is sad that so many textbooks provide unstructured and frankly sloppy (and sometimes incorrect) proofs. We academics are not setting a good example for our students. Maybe Webwork can help.
Also, there is so much flexibility built in to allow the instructor to customize the assignments for individual students that it is actually not as easy as it should be to assign all the problems in a problem set to all students, which I would have thought would be the default behavior.
I assign all problems to all students by clicking on the number in the "edit assigned users" (e.g 1/50 one out of 50 students has been assigned this set) and then clicking the "assign this set to all students button".
Even more flexibility is possible by clicking on the "Instructor tools" link -- the headline over the other instructor tools -- many people miss this one.
On that page, using command/control click, you can assign an arbitrary number of selected sets to an arbitrary number of selected students.
Are there other use cases we should consider?