Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Confused with expiration mode of a flow #59

Closed
dzhuang opened this issue Aug 31, 2015 · 9 comments
Closed

Confused with expiration mode of a flow #59

dzhuang opened this issue Aug 31, 2015 · 9 comments

Comments

@dzhuang
Copy link
Contributor

dzhuang commented Aug 31, 2015

I see there's a permission set_roll_over_expiration_mode in access_rules of a flow. If granted, student can select the expiration mode of a session when expired. The two choices are End session and grade and Keep session and apply new rules. I can see when the latter choice is chosen, the grade rule change accordingly. However, if the former (End session and grade) is chosen, the session is still in-progress and not graded when expired (using fake time), and it act just like the roll-over mode. Am I misunderstood your purpose, or is there any wrong with my configuration?

rules:
  start:
    -
      if_before: homework_due 11
      if_has_role: [student, ta, instructor]
      if_has_fewer_sessions_than: 100
      may_start_new_session: True
      may_list_existing_sessions: True

    -
      may_start_new_session: True
      may_list_existing_sessions: True

  access:
     -
       if_before: homework_due 8
       permissions: [view, submit_answer, end_session, see_correctness, set_roll_over_expiration_mode]

     -
       if_before: homework_due 9
       permissions: [view, submit_answer, end_session, see_correctness, set_roll_over_expiration_mode]

     -
       if_before: homework_due 10
       permissions: [view, submit_answer, end_session, see_correctness, set_roll_over_expiration_mode]

     -
       if_before: homework_due 11
       permissions: [view, submit_answer, end_session, see_correctness, set_roll_over_expiration_mode]

     -
       permissions: [view, see_correctness]

  grading:
    -
      if_completed_before: homework_due 8
      due: homework_due 8
      grade_identifier: word4test
      grade_aggregation_strategy: use_latest
      credit_percent: 110

    -
      if_completed_before: homework_due 9
      due: homework_due 9
      grade_identifier: word4test
      grade_aggregation_strategy: use_latest
      credit_percent: 100

    -
      if_completed_before: homework_due 10
      due: homework_due 10
      grade_identifier: word4test
      grade_aggregation_strategy: use_latest
      credit_percent: 70

    -
      if_completed_before: homework_due 11
      due: homework_due 11
      grade_identifier: word4test
      grade_aggregation_strategy: use_latest
      credit_percent: 30

    -
      grade_identifier: null



@inducer
Copy link
Owner

inducer commented Aug 31, 2015

This "expiration mode" only makes a difference when sessions are expired by hand, say at the deadline. This happens when you push the "expire sessions" button in the gradebook for that particular grading opportunity. The permission give students an opportunity to decide what they would like to happen when the deadline rolls around (a.k.a. when you push the button). They can either turn in the work that they've currently submitted (and end their session) or decide to keep their session open and continue working, possibly for reduced credit.

If you do not want to do any by-hand expiration of flow sessions, then you don't have a need for the rollover expiration mode. In this case, the students still have the opportunity to end their sessions, and, if we take your grading rules above as an example, get the appropriate amount of credit based on when they clicked "end session".

I hope this gives you better idea of what's going on.

The way this works is probably little confusing, and I'd be happy to take your suggestions on how to improve it, or at least on how to document better. This mechanism arose because I did not want to force my students to manually submit their homework before the deadline, because that would lead to an increased support load on my end for students who had regrets about what they had submitted and wanted to undo their submission. That said, there's something to be said for just relying on student-driven submission and not worrying about manually expiring sessions.

@dzhuang
Copy link
Contributor Author

dzhuang commented Aug 31, 2015

Thank you. Did you mean that, if I don't use rollover expiration mode, and
it is possible for a student to lose credit if he/she forgets to click
end session button? even if all pages are submitted, without modify permission,
before the first due?

@dzhuang
Copy link
Contributor Author

dzhuang commented Aug 31, 2015

For me, the main problem is some students have submit all the answers for grading, while forgetting to push the "end session" button / navigate to the finish page. If I manually expire those sessions, it seems the expire datetime is using now(), not the actual last activity of that session. That will cause losing credit of those students.

I think the situation happens mainly because they didn't notice the button. I have no idea how to notify student if they navigate away from the session before ending it, or is it necessary to put/enable a button beside the "submit for grade" if all grading pages in the flow are submitted,

@inducer
Copy link
Owner

inducer commented Aug 31, 2015

Thank you. Did you mean that, if I don't use rollover expiration mode, and
it is possible for a student to lose credit if he/she forgets to click
end session button? even if all pages are submitted, without modify permission,
before the first due?

Yes, that's exactly right. They will lose credit if they forget to submit. You can go in, and on an individual basis, fix their submission date and recompute their grade, but in general if they forget to submit, they will automatically slide into the next lower credit category.

If you would like to have the students work be auto-submitted depending on the setting of the roll-over choice, then you'll have to do manual expiration as I described above.

@inducer
Copy link
Owner

inducer commented Aug 31, 2015

For me, the main problem is some students have submit all the answers for grading, while forgetting to push the "end session" button / navigate to the finish page. If I manually expire those sessions, it seems the expire datetime is using now(), not the actual last activity of that session. That will cause losing credit of those students.

It's quite easy to make session expiration use the date of last activity (at least optionally) as the submission date. I think that's a good idea, and I'd be happy to take a patch.

I think the situation happens mainly because they didn't notice the button. I have no idea how to notify student if they navigate away from the session before end it, or is it necessary to put/enable a button beside the "submit for grade" if all grading pages in the flow are submitted,

Right, for now at least the students do have to submit/end their session in order for grading to happen. On average, I would say that is a mistake they would only make once, but it should still be preventable somehow. The approach you suggest above is a good idea, I think we should head in that direction.

@dzhuang
Copy link
Contributor Author

dzhuang commented Sep 1, 2015

How about this idea: If set_roll_over_expiration_mode permission is enabled, then upon the first expiration datetime, unsubmitted sessions are freezed. Student can see from history session list in the start page, and have buttons like 'roll over session' and 'submit session' for those freezed session. If submit session is chosen, the submit time will be the end time of that category. When we manually expire those session, we can just use the end time of each category.

In this case, you won't have to manually expire those session at exactly when the category is finished. If a student regret about his/her submission, he/she can just 'roll over' it. What's more, the choice option End session and grade and Keep session and apply new rules can be removed from the flow page.

@inducer
Copy link
Owner

inducer commented Sep 1, 2015

If set_roll_over_expiration_mode permission is enabled, then upon the first expiration datetime, unsubmitted sessions are freezed.

You can do this freezing right now, without any interaction with the expiration mode. Using time-based conditionals (such as if_afteror some such), you simply remove the permission to submit answers or end the session. As such, I would like to avoid introducing nonobvious interaction with the expiration mode.

Student can see from history session list in the start page, and have buttons like 'roll over session' and 'submit session' for those freezed session.

The reason I'm not liking this very much is that it requires the student to take action in order for me to be able to grade their work. Having them choose ahead of time (rather than after the deadline has expired) makes sure that at deadline expiration time, I have (or at least can claim to have) full knowledge of what the student intended to do with the session, without having to wait for them to click some button or another. After all, before they tell me what to do with the session, I cannot compute a grade for them.

That said, I do like the suggestion of setting the submission time on session expiration to the last point in time at which a student has submitted any answer. But then, even this is not completely risk-free. Something could happen due to the access rules, such as the answers being shown, on a time-based schedule. This could then give a student an unfair advantage over his classmates by revealing information to him that could inform his decision on whether it is profitable to change his answer or to submit them as is. If he decides to submit as is, it would not necessarily be fair or correct to use the last interaction time as the completion time, since he (admittedly, with a remote possibility, but still) may have had access to extra information that he may not have had if he had submitted his session on time. So what I will do is make using the last interaction time as the completion time an option during session expiration. I'll create a bug to track the implementation of this.

@dzhuang
Copy link
Contributor Author

dzhuang commented Sep 2, 2015

Thank you for you explanation, I now accept your idea. I think the best I can do now is to make sure that the reason a student don't submit is not "forget" or "not understanding the mechanism". Maybe using tooltips to remind them is enough.

And I am happy to see your progress on the manual session expiration.

@dzhuang
Copy link
Contributor Author

dzhuang commented Sep 17, 2015

Thank you. I think this issue can be closed.

@dzhuang dzhuang closed this as completed Sep 17, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants