Features & Development

admin tools for handling large classes of multiple sections

admin tools for handling large classes of multiple sections

by Daniel Nichols -
Number of replies: 4
Hello,

I'm an instructor at UMass Amherst, where we use webwork for our undergrad linear algebra and differential equations courses (among others). We often have huge classes with multiple sections and instructors. The instructors are busy and not all of them are proficient with technology, so we'd really like to have one capable person (the webwork admin) handle the work of creating a course for each section, uploading the rosters, and importing homework sets. That way we wouldn't have to teach every instructor how to do all of those things; all they would need to do is set the due dates for the homework assignments. However, it's hard to set things up this way with the currently available webwork tools. You have to log in to each course and do it manually.

I know there are some scripts out there like WWManage which can do some of these things. I wrote some scripts based on WWManage tailored to our needs at UMass. But all these are kind of messy and hacked-together and they usually require a lot of tinkering in order to function. I needed to modify some of the webwork perl modules slightly in order to get these scripts to work.

It would be really helpful for large universities like UMass if there were some kind of officially-supported way for an admin to make changes to multiple courses at once, like uploading rosters and importing a standard collection of homework sets. This could take the form of a set of command-line tools, or some additional options in the 'course administration' web page. Or even if the webwork/database API could be just be cleaned up a little to be simpler and more foolproof, that would help a lot.

What do you think? I'm not an expert on the webwork codebase or anything, but if this seems like a useful project, I'd be glad to help out as a perl programmer.
In reply to Daniel Nichols

Re: admin tools for handling large classes of multiple sections

by Gavin LaRose -
Hi Daniel,

In that wwManage is mine (and I continue to use it cheerfully to do the types of things you describe) I won't try to address carefully the command line tools question, which is really the essence of your post. That said, it may be worth trying to clearly articulate what the tool or tools ought to do (e.g., for uploading rosters, what data input should be supported? what is the logical way to identify rosters with WeBWorK courses?).

I will note that I understand that there may be some significant database revisions with WeBWorK 3, which may address your comment about the database and API (and will probably require that I rewrite my script).

For what it's worth, in any case,
Gavin
In reply to Gavin LaRose

Re: admin tools for handling large classes of multiple sections

by Daniel Nichols -
Thanks for responding Gavin. I apologize if it sounds like I was picking on WWManage in my original post, that was absolutely not what I intended. WWManage is really a great tool and it does have all the capabilities we're looking for, namely updating rosters and copying homework sets between courses. My use of the terms "messy" and "hacked-together" was in reference to my own scripts, not to WWmanage. :)

But I do think the API makes things difficult. On a webwork 2.10 server freshly installed from a VM image, there are some issues involving environment variables and locations of various folders that prevent WWManage from running. For instance, I had to put the declaration of MOD_PERL_API_VERSION inside a BEGIN { } statement in order to get the webwork perl modules to load. Also, I had to change how the webwork home directory and courses directory are set. In the current version of webwork, the home directory should be /opt/webwork/webwork2 and the courses directory should be /opt/webwork/courses, but some parts of the script assume that the courses directory is "$wwHome/courses/", which is not the case. I had to change references to those locations. There are a few other things like this too.

I don't think these problems are due to WWManage itself but rather with webwork and the API. I would guess that some things have moved around and some parts of the API have changed as new versions of webwork have been released. Some users who would benefit from using a script like this may not have the ability to go through the source code and tweak it to fit the particular version of webwork they are using. I guess what I am suggesting is a way to manage large classes that is version-independent and more accessible for less technical users.

I really do appreciate your writing and sharing WWManage! And I was sincere in my offer of help -- if there is any way I can contribute to a solution, I would be happy to do so. It would help us here at UMass and hopefully other users elsewhere too.
In reply to Daniel Nichols

Re: admin tools for handling large classes of multiple sections

by Gavin LaRose -
Hi Daniel,

Actually, I think "messy" and "hacked together" are fairly safe descriptions of wwManage. I'll add one comment about something that I've noticed: ideally, with this type of script, one would do all actions (e.g., getting problem scores, or assigning sets) using the WeBWorK modules and database infrastructure. There are places where that works really well, and there are others where it is very slow. In some of the latter I've resorted to just querying the database directly. I don't like doing this, but haven't had the motivation to go in and figure out a better way to do things.

You're right about the issue with the environmental variables, too. My work-around was to have a wrapper script that set the environment and then called wwManage; yours is better.

This is part of the reason I think it would be good to have a high-level description of what would be a good general-use tool; that would provide a framework for building a better one.

I'll start a page on the wiki, linked to the bottom of the admin scripts page, to try and start such a framework. If it proves useful, great, and if it doesn't seem to be going in the right direction it can sit there and twiddle its thumbs.

Best,
Gavin
In reply to Gavin LaRose

Re: admin tools for handling large classes of multiple sections

by Daniel Nichols -
That sounds like a great idea. I will take a look at the page and see if there's anything I can add. Hopefully we can get input from other universities that use webwork for large classes too.