Forum archive 2000-2006

Eddie Fuller - Some Gateway Questions

Eddie Fuller - Some Gateway Questions

by Arnold Pizer -
Number of replies: 0
inactiveTopicSome Gateway Questions topic started 10/7/2006; 11:20:07 AM
last post 10/11/2006; 11:17:44 PM
userEddie Fuller - Some Gateway Questions  blueArrow
10/7/2006; 11:20:07 AM (reads: 258, responses: 9)
We're contemplating moving to WebWork for testing and gateways after using it for homework for about a year now and I had a few questions.
1) I have Moodle and Webwork working together on our development server but gateway assignments throw the following error:

 

Error messages

set Integration_Gateway is a GatewayQuiz. Enter through the GatewayQuiz module. at /opt/webwork2/lib/WeBWorK/ContentGenerator/ProblemSet.pm line 69.

Call stack

The information below can help locate the source of the problem.

  • in WeBWorK::ContentGenerator::ProblemSet::initialize called at line 185 of /opt/webwork2/lib/WeBWorK/ContentGenerator.pm
  • in WeBWorK::ContentGenerator::go called at line 338 of /opt/webwork2/lib/WeBWorK.pm

Is this by design as I suspect it is or am I missing something? Is there a way to tie the quiz module to the new wwassignment module?

2) I think I understand the methodology for managing the number of attempts in a given time period now. I'm wondering, though, how well the proctoring model works for limiting access in large class settings. What size groups do you have taking gateways simultaneously and do you have to key in the proctor info individually for each station?

3) Would it be reasonable to add an IP address/subnet restriction to the GatewayQuiz module and/or Authen.pm? Moodle's quiz module does this and I could use it for exams and gateways, but we really need the Webwork symbolic processing capability to justify migrating from WebCT/Vista.

Any comments are appreciated. As an endnote, I've been watching Webwork (and Moodle) progress at various points since 2000 and the work that's been done is amazing. Best,

-Eddie

<| Post or View Comments |>


userMichael Gage - Re: Some Gateway Questions  blueArrow
10/7/2006; 1:31:32 PM (reads: 286, responses: 0)
It's not exactly by design -- it's just a feature that hasn't been added yet. There are only a couple of us actively using webwork and moodle together and as far as I know none of us has been using the gateway quizzes. Would you be willing to help with beta testing? I suspect that it wouldn't be that difficult to get rid of that error message, however I don't know what other integration issues would emerge as one started using moodle and gateway quizzes together.

-- Mike

<| Post or View Comments |>


userEddie Fuller - Re: Some Gateway Questions  blueArrow
10/7/2006; 9:47:34 PM (reads: 292, responses: 0)
Hi Mike,

We'd be happy to test things as well as try to figure some of this out. I've started looking at the code to get an idea of how things work but any pointers are welcome.

It seems to me that adding form elements to the gateway info in the homework set editor for IP address blocks that then were passed to a hash that the authenticator code checked would do the trick for IP address restriction or am I off by a lot? I thought about using .htaccess files but this seems kludgey and tough to manage.

I haven't thought about displaying gateways in moodle much so I don't have any suggestions.

-Eddie

<| Post or View Comments |>


userMichael Gage - Re: Some Gateway Questions  blueArrow
10/8/2006; 10:47:57 AM (reads: 280, responses: 0)
That seems about right to me for adding the IP restriction. I've forwarded your message to Gavin LaRose (glarose at umich.edu ) at U. of Michigan who has been the leading developer of the Gateway quiz module. The two of you can work out how to add IP restrictions to the gateway test. It sounds to me like a useful option in some cases.

If you need to get access to a gateway quiz from moodle I'll try to help out with modifying that code.

-- Mike

<| Post or View Comments |>


userGavin LaRose - Re: Some Gateway Questions  blueArrow
10/9/2006; 8:40:55 AM (reads: 262, responses: 0)
Hi Eddie and Mike,

The error that you're seeing when trying to access a gateway/quiz comes from the way that we're distinguishing what ContentGenerator should be used for what assignment. I believe all ContentGenerator selection in WeBWorK is done by URL (Mike or Sam can correct me if I'm wrong about this), which is in general not an issue but behaves slightly differently for gateway/quiz sets. To obtain access to a gateway/quiz set the URL needs to be <http://[serverName]/webwork2/courses/[courseName]/quiz_mode/[testName]/>. Getting the correct URL for each type of assignment is dealt with when navigating to assignments within WeBWorK (I think). For proctored gateway/quizzes, change "quiz_mode" to "proctored_quiz_mode".

This subtlety arises because a given problem could be part of a homework set (for which access should be through Problem ContentGenerator) or a gateway/quiz (for which access should be through the GatewayQuiz ContentGenerator). In particular, we want to be sure that someone isn't getting a sneak peak at their gateway/quiz problems by hacking the URL and using the Problem ContentGenerator.

It may be that in the long run we may want to try and make this more transparent, so that a URL <http:://[serverName]/webwork2/courses/[courseName]/[quizName]> would work. But that's something I'll serve out for others to comment on; it would require recasting the URLPath map to also use information from the database.

Considering your other questions:
(2) Proctoring large classes: This is a question that has come up. The gateway/quiz module was written thinking about the case where students are coming into a proctored lab on a rolling basis. Then before any student takes a test a proctor walks up, verifies the student's ID, etc. This is the case we deal with, and appears to work well for us with a testing lab of about 30 computers and 2-3 proctors (we have up to 1800 students taking proctored tests at any one time; at the top end of that we sometimes have to open an additional lab). In the case where an entire class is taking a test, or it's being administered to large groups, this may obviously be a little cumbersome, and I would be inclined to use one of two possible work arounds. The first, if it's important that the students not begin the test until a specific start time, would be to have some generic proctor username/password set up ("proctor1" and "taketest", for example), and then once all students' identities had been checked to the satisfaction of the proctors to announce that so that they can type it in themselves. The second would be to just have the test not be a proctored test, but have it open only at the time that students are to take it. This does require that the IP number of the students' computers be checked against a known list, however.

(3) The question of an IP address/subnet restriction has also come up. I'll leave the addition of this to WeBWorK as a academic discussion point. I've been managing it a the server level, restricting addresses as needed.

I hope this is helpful,
Gavin

<| Post or View Comments |>


userEddie Fuller - Re: Some Gateway Questions  blueArrow
10/9/2006; 9:33:35 AM (reads: 265, responses: 0)
Thanks for the info Gavin. We really have two scenarios that I'm looking to manage: 1) gateways occuring in a 40 seat lab or an 80 seat lab and 2)exams in those two rooms. For 1) in the 40 seat lab it sounds like the proctor model would work then, since we have about the same number of students rolling through but I'll have to rethink staffing. For 1) with 80 and 2) I think the IP address method would be better. We've tried proctor passwords in the 80 seat lab and they are a security problem if we use a throwaway pair and announce it, since some students may leave after 15 minutes and pass it on to other groups before it's changed.

I've added code to my devel setup in ProblemSet.pm/Set.pm to create "useIP" and "IP_block" fields to gateways, and I'm working on code to test the current IP in GatewayQuiz.pm using a function in Authen.pm but I have a couple of questions in case this could be used more widely.

Authen.pm seems to be the place where mod_perl exposes the Apache request object so I plan to add a function there to return the client IP address and compare it to the stored IP subnet in GatewayQuiz.pm in a function called can_UseComputer or some such. My question here is, well, from a structural standpoint is this the best notion or would it be better to get the client IP from someplace else?

My other question is also somewhat structural. I added code in Set.pm to create new fields "useIP" and "IP_block". Is this sufficient to get them added to the table [coursename]_set and so on when new courses are created?

-Eddie

<| Post or View Comments |>


userGavin LaRose - Re: Some Gateway Questions  blueArrow
10/9/2006; 9:57:35 AM (reads: 259, responses: 0)
Hi Eddie,

One more addition that I'll throw out. Because the proctored gateway/quiz mode requires a proctor login to both start and to grade a test, it might also be possible to have two levels of proctor authentication: proctoring to start a test, and proctoring to grade it. I'm thinking of the case where a global proctor login/password is announced at the beginning of the test to allow students to start---but which wouldn't work to grade the test. This would then require that a proctor personally sign-off on the test for it to be graded. This shouldn't be too hard to implement if it sounded like a good idea.

Cheers,
Gavin

<| Post or View Comments |>


userEddie Fuller - Re: Some Gateway Questions  blueArrow
10/10/2006; 9:31:54 AM (reads: 244, responses: 0)
That's an interesting idea. I'll have to think about making that work in our sitation. Do the proctors have to come to the students computer where they are logged in to do this? or can they log in and "release" a quiz?

I have an IP restriction working in GatewayQuiz.pm that uses wildcard type notation (e.g. 157.182.20.* ) to signify allowed subnets. Instead of using Authen.pm or Authz.pm, I added "use Apache();" to GatewayQuiz.pm and called the connection method from there to get it to work. What are your thoughts on doing it this way? Currently, only one subnet is allowed but I believe I can extend it to multiple, comma separated lists of subnets and single addresses.

After I clean up the code and add a few features I can send you the file and some notes if you'd like. -Eddie

<| Post or View Comments |>


userSam Hathaway - Re: Some Gateway Questions  blueArrow
10/10/2006; 11:17:57 AM (reads: 239, responses: 0)
Eddie,

I'd like to see that code when you're ready.
-sam

<| Post or View Comments |>


userEddie Fuller - Re: Some Gateway Questions  blueArrow
10/11/2006; 11:17:44 PM (reads: 251, responses: 0)
Sam, Mike and Gavin,

I think I have a working snapshot of this now. I've uploaded the modified files to
http://moodle.math.wvu.edu/code/WWIPRestrict.tgz

I made changes to

lib/WeBWork/ContentGenerator/GatewayQuiz.pm
lib/WeBWork/ContentGenerator/Instructor/ProblemSetDetail.pm
lib/WeBWork/DB/Record/Set.pm
lib/WeBWork/DB/REcord/UserSet.pm

and included them in the archive in their locations. Diff should show the changes but let me know and I can give you an overview. I've tested it here and have the behavior I was looking for. I have some concerns about students being able to view the tests after they submit them for grading but I'll work on that next.

As a quick overview, there is a new field in the gateway set detail edit page called IP Range that writes to a field in the database called IP_block. I added this field by hand to the course _set and _set_user tables as varchar(20) fields. I then added a function to GatewayQuiz.pm called can_usecomputer and wrapped the pre_header conditional with a test conditional for the IP address. Anyway, let me know what you think.

-Eddie

<| Post or View Comments |>