Features & Development

One user's experience with wwassignment and webwork question type

One user's experience with wwassignment and webwork question type

by Steven McKay -
Number of replies: 6
Hi,
This is mainly addressed to Mike Gage, but may be of interest to others. I know Mike is working on updating wwassignment, but I would like to get in some perspective, ask some questions, suggest improvements, etc.

Our Calculus I classes currently use Webwork question type. Things are going fairly well, but since we have 1000 students, we have gone from one regular server to one robust server to 3 load balanced servers in the course of a year. Webwork question type has some advantages -
1. you can make each question worth one point and have homework assignments with different point values, and then scale them all to be worth the same. This is easily done in moodle.

2. the gradebook is immediately populated with the students answer.

3. The homework pages use the same theme from moodle, so it's a seamless experience.

Webwork question type has some serious flaws.
1. There is no nice way to print out the homework assignment other that with the print feature in the browser. Webworks print feature is able to pack the questions in with little wasted space. If you print using the browser, you will have to use more pages (sometimes 3-4 times as many).

2. There is no easy way to maintain question sets. Questions are loaded into moodle and then as far as I can tell, reside in the database. If you fix or change a problem in moodle, there is no easy way to back it up. If you have a set of questions in moodle and want to use them in webwork, there is no easy way to move them over. If you load question sets into moodle at server level, then instructors cannot see or work with them. If you load question sets into the course level, maintenance can be a nightmare (if for example you have around 20-25 courses).

3. There are serious bugs. bug 1. Occasionally, moodle will loose the randomized key for a students homework problem (I can't remember what this is called). The only option is to delete the student's request and have the student try again. Only the randomized portions of the problems will have changed. Bug 2. Using webwork question type in a linear algebra class is problematic, because there is a bug with the use of Named_ans. It won't work with webwork question server. This cuts out a lot of problems.

We originally started using webwork question type because we couldn't get wwassignment working on our server. I initially became excited to use this plugin, but the problems quickly dampened my enthusiasm. The only reason we are using it now is because our questions have been heavily modified within moodle, and we need to figure a way to transfer them over.

A few months ago, we figured out why wwassignment wasn't working and fixed it. I now have a few faculty using wwassignment. I am using it in one of my courses this semester. The advantage of wwassignment is that it is webwork, which has been heavily tested for many years. It is also easier to write and debug questions this way, than it is using webwork question type.

However, there are still problems. wwassignment seems to be finicky about how things are created. First, when I create a course on the webwork side, I have to create a completely blank course. (I have been able to get it to work sometimes using an existing course, but not always, and I don't know why).

Second, when I go to the moodle side and connect to the webwork course, there are usually no problems. But, when I try to assign a webwork problem to the moodle course, I get a communications error. Sometimes I have to do this a couple of times before it works the glitch out. Has anyone else seen this? Sometimes the administrator has to enter the course and click on webwork problem set. Once the link works, I never have trouble with it again. But getting it to work the first time can be a pain.

Third, when I create an assignment on the webwork side, it appears (incomplete testing) that it can have no users. If I assign myself to it, then I get a communication error when I click on the link from moodle. If I do get the error, I create the .def by exporting, delete the set and reimport from the .def. This seems to fix the issue, but I have to name it something different.

Finally, while some information about users is stored on the webwork side, not everything is. If I get an email from a student and click on the link, then I am asked to login. However, it doesn't recognize me and wont let me in. I have to go to moodle and enter through my course page. Then I have to act like the student directly through instructor tools. So the usefulness of the email is lessened because I can't use the link.

Now, are some of these common issues, or is there a way I can fix them?
If they are common, are there work arounds? are they likely to be fixed in the next round?

Webwork Question Type and wwassignment are very useful. I am grateful for Matt Leventi's work and Mike' continuing work. I don't do much perl programming and I have no clue about Soap. So I have to rely on those who do. I am grateful for that work.


Steven McKay

In reply to Steven McKay

Re: One user's experience with wwassignment and webwork question type

by Michael Gage -
Thanks Steven for your insights and comments on using the two WeBWorK-Moodle bridges. I have a limited amount of time this weekend so I'll give my responses in pieces. I agree with your evaluation of the status of the WeBWorK-Moodle question type bridge and will have more to say later on what I see as the future plans for this bridge.

For the wwassignment 4 Assignment level bridge between WeBWorK and Moodle I have some comments that might help you work around the difficulties you are reporting. In particular I suspect that the difficulties you have getting direct access to WeBWorK via the url link in student emails are due to the fact that the instructor has not been registered directly into WeBWorK. I've just written about this in a bit more detail in a separate post. http://wwrk.maa.org/moodle/mod/forum/discuss.php?d=1973.

Some of your other observations don't conform to my experience, but they may relate to this idea that instructors (but not students) should be entered directly into the WeBWorK course before the WeBWorK and Moodle courses are linked.

• For example I have no trouble linking a Moodle courses to an already existing, non-empty WeBWorK course (in which I am an instructor). I'd like more information to see if I can duplicate the behavior you have experienced here.

• It is possible to create WeBWorK homework sets with no users -- and you can't access them directly as a user until they are assigned -- so it is wise to immediately assign a created homework set to yourself. I agree this is a probably a bug, but it is easily worked around. If you create the homework set from the Library browser it automatically asks to if you want it assigned to yourself. This behavior is the same whether WeBWorK is connected to a Moodle course or not.

• I have seen the phenomenon where for a newly linked course the first attempt to connect WeBWorK Problem assignment to a WeBWorK homework set fail to connect -- but I have always had the second attempt succeed. I don't know the exact conditions under which this happens. My experience might also be different because I am always the administrator of the Moodle site as well as being an instructor in both the Moodle and WeBWorK courses.

I've never had to export a .def file and then reimport it -- and I can't think why that would change anything in terms of the Moodle-WeBWorK link. I think something else must be going on, but I'm not sure exactly what.

Thanks Steven, for taking the time to write this detailed report. I hope that some of these answers provide you with interim work arounds.

I'll respond later in more detail about the WeBWorK-Moodle question type which is still in a more experimental stage of development. The wwassignment4 module is, I think, ready for prime time -- I've used extensively for two years -- but it hasn't had as much field testing as WeBWorK itself has.
In reply to Michael Gage

Re: One user's experience with wwassignment and webwork question type

by Steven McKay -
Thanks, Mike, for your responses. I think there are some suggestions in the other response that will make our lives easier :-)

I just got back home and will take some time to look at your response as I get time. I will try to come up with some tests that replicate the issues I am dealing with. But, perhaps its because I haven't been linking instructors as I should have been. Perhaps this should be mentioned in the wwassignment instructions? I did look at the instructions carefully, and unless I blanked out at some point, I did not see instructions about linking the instructors first. I'm pretty sure that the fact that the user name must be the same on both sides is not in the instructions.

Thanks for letting me know. I always try to fix things on my own for way too long before asking for help. Again, I appreciate the work you've done not only on this bridge but on webwork itself.

Steve M.
In reply to Steven McKay

Re: One user's experience with wwassignment and webwork question type

by Michael Gage -
I believe that I've fixed the bug that sometimes required you to make two connection attempts before succeeding. There was a bug that did not allow you to both create a new user and create a new set in the same connection -- hence, if the instructor was not already registered in WeBWorK the first connection would register them but would fail to create a new set. The second connection would succeed.

The fix is in the current distribution so

cvs update


in the moodle/mod/wwassignment directory should make the one line
modification in locallib.php


Let me know if the problem persists in your system.

-- Mike


In reply to Michael Gage

Re: One user's experience with wwassignment and webwork question type

by Steven McKay -
Thanks,
I'll have our CSR update and let you know if I see the issue anymore.

S.M.
In reply to Steven McKay

Re: One user's experience with wwassignment and webwork question type

by Michael Gage -
Steve,
Here are a few more comments on the earlier part of your post:

Things are going fairly well, but since we have 1000 students, we have gone from one regular server to one robust server to 3 load balanced servers in the course of a year.

This seems like a lot of hardware if the server is just running WeBWorK and Moodle. We serve 1000 students a semester on an old Dell (2GHz, Pentium4, 1Gig of RAM) at Rochester and hosted2 and hosted are served by similar machines. (We will be replacing all three of them soon by virtual servers in a more powerful machine.)

It has been useful for us to severely limit the number of clients running at one time -- WeBWorK processes take a lot of RAM and if two many have been initiated the virtual memory swapping can bog down the machine.

http://wwrk.maa.org/moodle/mod/forum/discuss.php?d=157#p7477
will have some advice and you can find more in the forum searching on "maxclients"

Your comments on the WeBWorK-Moodle question type seem exactly right to me. It does a pretty good job, but it is currently "as is" software and will need a few more components before I start using it with students. (I have been using the WW assignment module myself for several years, but we have only recently begun to encourage its use at other places -- so the community of support is not yet very big.)

The lack of a "print this homework" feature for the WW-Moodle question type is one of two reasons I don't yet use it. To fix this the Moodle Question Type module needs to be able to gather the code for all of the questions templates in a quiz together and send a webservice request to WeBWorK to have it printed. WeBWorK will return the resulting pdf file (or perhaps a link to that file). Exposing the "Hardcopy.pm" capability of WeBWorK as a webservice is pretty straight forward. The programming on the Moodle side is in php (not perl). Experience with php and moodle is more important than experience with webwork or mathematics for this project.

The other problem we had with our test usage of the WW-Moodle question type at Rochester (where students are used to the WeBWorK homework model) is that students would neglect to click the "finish quiz" button which closes the quiz and sends the results to the gradebook. They didn't want to close off the quiz prematurely because they might want to come back and update something later -- but then they would forget to come back and push the finish button before the due date. This behavior is inherent to Moodle and can't be changed in Moodle 1.9 without hacking the Moodle quiz code proper. The behavior makes perfect sense for a quiz but not for homework as we are used to doing it at Rochester. My hope is that Moodle 2.0 will have more flexibility.

The limitations on the import and export of questions is real but I believe that these limitations exist only because the import and export scripts for that question type haven't been written. This is purely php/moodle programming and one should be able to imitate the import/export scripts for the other question types used by the Moodle Quiz module. Without knowing a lot about the details since I have not used the Moodle Quiz very much, I believe this would a straightforward and relatively easy project.

The fact that some WeBWorK questions don't work in the WW-Moodle Question type arises because the current module was written by taking the standard HTML output of WeBWorK and then scraping it so that it was suitable for input to Moodle. This requires no changes to WeBWorK and can be implemented entirely in php and Moodle which the developers were more comfortable with.

WeBWorK itself has an extensibility mechanism for its basic macros which allows one to output the result of rendering a WeBWorK problem in different ways -- e.g. as an HTML document, or as a TeX document suitable for input to pdflatex (this how typeset homework is created) or as input to LaTeX2HTML (no longer used), mathML, etc. Adding a "Moodle" output version to WeBWorK and re-writing the WW-Moodle question module to take advantage of this should increase the stability of the WeBWorK-Moodle connection significantly and make it easier to accomodate separate changes in moodle and webwork in the future -- such as the switch to Moodle 2.0.

This is a larger project than the others and will require some planning but it is not that daunting and I think completing it will be important for the future development of WeBWorK (and moodle).
In reply to Michael Gage

Re: One user's experience with wwassignment and webwork question type

by Steven McKay -
This seems like a lot of hardware if the server is just running WeBWorK and Moodle. We serve 1000 students a semester on an old Dell (2GHz, Pentium4, 1Gig of RAM) at Rochester and hosted2 and hosted are served by similar machines. (We will be replacing all three of them soon by virtual servers in a more powerful machine.)

It has been useful for us to severely limit the number of clients running at one time -- WeBWorK processes take a lot of RAM and if two many have been initiated the virtual memory swapping can bog down the machine.


Well,
We have had trouble when we had only one server. We started with a fairly new Dell, but the server would get pounded when homework was due. (Due to the nature of procrastinating students :-) I will pass your suggestion on to our CSR - I don't know if he has already implemented this or not. Note that in the past the pounding was coming from the use of Webwork question server, which we still use in abundance, so the reason you are not seeing this may be due to the fact that you do not use question server.

The finish quiz problem is a real headache here also :-)

S.M.