Moodle

Quiz limit to one question per page with no access to previous or next question

Details

  • Type: Improvement Improvement
  • Status: Peer review in progress Peer review in progress
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.7, 1.7.1, 1.7.2, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.9, 2.0, 2.2.1
  • Fix Version/s: DEV backlog
  • Component/s: Quiz
  • Labels:
  • Affected Branches:
    MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE, MOODLE_19_STABLE, MOODLE_20_STABLE, MOODLE_22_STABLE

Description

It would be useful to add an option to the Quiz settings whereby the teacher would make navigation "free" or "sequential", i.e. only display on each quiz page a Next link to the next page, without any possibility for the student to go back or jump ahead.
I suggest to name this option NAVIGATION and to name the two options FREE and SEQUENTIAL.
See this discussion: http://moodle.org/mod/forum/discuss.php?d=78806
Joseph

Issue Links

Activity

Hide
Tim Hunt added a comment -

Sensible option, but it would be a big change that I won't have time to work on in the foreseeable future. So this will only happen if some other developer comes along and does it. Anyone who does want to have a go at this, please discuss the details of your proposed implementation in the quiz forum first.

Show
Tim Hunt added a comment - Sensible option, but it would be a big change that I won't have time to work on in the foreseeable future. So this will only happen if some other developer comes along and does it. Anyone who does want to have a go at this, please discuss the details of your proposed implementation in the quiz forum first.
Hide
Tim Hunt added a comment -

Note that once http://docs.moodle.org/en/Development:Question_Engine_2 is done, this will be much easier to do.

Show
Tim Hunt added a comment - Note that once http://docs.moodle.org/en/Development:Question_Engine_2 is done, this will be much easier to do.
Hide
Anthony G. Basile added a comment -

I've written a patch against CVS tag MOODLE_199. Its sloppy and doesn't give the option between "free" and "sequential", it just converts all quizzes to sequential. It does work and gives an idea of how this could be done.

BTW, I'm the moodle maintainer for Gentoo and I've seen this request come from several different sources. It seems there are some accrediting agencies in the US which require this kind of examination. For example, see pg 49 of

http://www.cdrnet.org/PDFs/ADA%20CDR%20RD%20Handbook.pdf

Show
Anthony G. Basile added a comment - I've written a patch against CVS tag MOODLE_199. Its sloppy and doesn't give the option between "free" and "sequential", it just converts all quizzes to sequential. It does work and gives an idea of how this could be done. BTW, I'm the moodle maintainer for Gentoo and I've seen this request come from several different sources. It seems there are some accrediting agencies in the US which require this kind of examination. For example, see pg 49 of http://www.cdrnet.org/PDFs/ADA%20CDR%20RD%20Handbook.pdf
Hide
Tim Hunt added a comment -

Yes, I know people want it, and it is a perfectly reasonable feature.

So, making and sharing a patch, even a sloppy one, is helpful.

However, there are big changes in the quiz in Moodle 2.0 (especially the new navigation, which should make this a bit easier to implement) and there is more to come (http://docs.moodle.org/en/Development:Question_Engine_2) probably in 2.1 which should help even more (new Interactive question behaviour). So I am not interested in adding this feature to the standard Moodle release until then.

Show
Tim Hunt added a comment - Yes, I know people want it, and it is a perfectly reasonable feature. So, making and sharing a patch, even a sloppy one, is helpful. However, there are big changes in the quiz in Moodle 2.0 (especially the new navigation, which should make this a bit easier to implement) and there is more to come (http://docs.moodle.org/en/Development:Question_Engine_2) probably in 2.1 which should help even more (new Interactive question behaviour). So I am not interested in adding this feature to the standard Moodle release until then.
Hide
Steven Breiner added a comment -

It looks as if the Interactive question behavior (as envisioned in http://docs.moodle.org/en/Development:Question_Engine_2:Overview#Interactive) would almost accomplish the sequential quiz goal, if feedback can be turned off, reviewing prevented, and the default for the number of attempts be set (at the quiz level) to 1... probably not particularly difficult (though I'd defer to programmers for a definitive assessment) to add a "sequential" setting (button or checkbox) to set all of those necessary parameters... We have numerous requests for this feature, frequently for pedagogical reasons... glad it's under consideration.

Show
Steven Breiner added a comment - It looks as if the Interactive question behavior (as envisioned in http://docs.moodle.org/en/Development:Question_Engine_2:Overview#Interactive) would almost accomplish the sequential quiz goal, if feedback can be turned off, reviewing prevented, and the default for the number of attempts be set (at the quiz level) to 1... probably not particularly difficult (though I'd defer to programmers for a definitive assessment) to add a "sequential" setting (button or checkbox) to set all of those necessary parameters... We have numerous requests for this feature, frequently for pedagogical reasons... glad it's under consideration.
Hide
Anthony G. Basile added a comment -

Ping Tim. Would you be interested in adding this feature now with the 2.1 engine?

Show
Anthony G. Basile added a comment - Ping Tim. Would you be interested in adding this feature now with the 2.1 engine?
Hide
Tim Hunt added a comment -

Well, I still have not real interest in this idea.

But it should now be possible to implement this relatively cleanly, and so if someone wants to try, I am willing to offer advice, and to review the finished code, if there ever is some.

Show
Tim Hunt added a comment - Well, I still have not real interest in this idea. But it should now be possible to implement this relatively cleanly, and so if someone wants to try, I am willing to offer advice, and to review the finished code, if there ever is some.
Hide
Ray Lawrence added a comment -

I can see the attraction of this but IMO as it would blur the boundaries of Quiz/Lesson modules it would benefit from a more holistic review before it got anywhere near core.

Show
Ray Lawrence added a comment - I can see the attraction of this but IMO as it would blur the boundaries of Quiz/Lesson modules it would benefit from a more holistic review before it got anywhere near core.
Hide
Joseph Rézeau added a comment -

@Ray, I do not see your point of "blurring the boundaries of Quiz/Lesson". The feature of preventing students from moving backwards when taking an online quiz is a standard (optional) feature of a number of online quizes (it used to be part of WebCT when we used it at our university years ago). It is a recurring request in the Quiz forum, and has gathered 14 votes in the tracker.

@Tim, I can understand your reluctancy in implemeting the feature but realistically there is very very little chance that someone other than yourself will ever implement it, so in the end it's really your decision whether it will be implemented or not.

Show
Joseph Rézeau added a comment - @Ray, I do not see your point of "blurring the boundaries of Quiz/Lesson". The feature of preventing students from moving backwards when taking an online quiz is a standard (optional) feature of a number of online quizes (it used to be part of WebCT when we used it at our university years ago). It is a recurring request in the Quiz forum, and has gathered 14 votes in the tracker. @Tim, I can understand your reluctancy in implemeting the feature but realistically there is very very little chance that someone other than yourself will ever implement it, so in the end it's really your decision whether it will be implemented or not.
Hide
Tim Hunt added a comment -

@Ray, yes it does not holistic thought. Have you seen http://docs.moodle.org/dev/Goals_of_an_online_assessment_system#A_richer_model_for_which_questions_are_in_a_quiz - I think this falls under that heading.

@Joseph, I disagree. Other people do contribute to the quiz, sometimes quite significantly.

Show
Tim Hunt added a comment - @Ray, yes it does not holistic thought. Have you seen http://docs.moodle.org/dev/Goals_of_an_online_assessment_system#A_richer_model_for_which_questions_are_in_a_quiz - I think this falls under that heading. @Joseph, I disagree. Other people do contribute to the quiz, sometimes quite significantly.
Hide
Chris Collman added a comment - - edited

This option would be a good one for Quiz. IMO, I do not see an overlap with Lesson. Lesson's reporting features are not as robust as quiz. Lesson always randomizes the answers. Lesson was designed to be interactive based upon student choices. I have the need for an assessment, where we want to present questions in a specific order, where revisiting and reanswering a question is not possible. While we score answers, this is not about a student receiving a grade, it is more like outcomes. Not very social constructionist

Has any brave soul tried a patch for 2.2? Best Chris

Show
Chris Collman added a comment - - edited This option would be a good one for Quiz. IMO, I do not see an overlap with Lesson. Lesson's reporting features are not as robust as quiz. Lesson always randomizes the answers. Lesson was designed to be interactive based upon student choices. I have the need for an assessment, where we want to present questions in a specific order, where revisiting and reanswering a question is not possible. While we score answers, this is not about a student receiving a grade, it is more like outcomes. Not very social constructionist Has any brave soul tried a patch for 2.2? Best Chris
Hide
Chris Collman added a comment -

With a suggestion from Tim in the Quiz forum, here is a css solution to hide the quiz navigation block and the entire summary of attempt block, except for submit all and finish. By using existing quiz settings to force the quiz to display the quiz in question edit order, you can force the student to step through each question. The downside is that this "fix" does not force a student to answer every question.

I used the Afterburner theme and the hide visibility CSS code . Appearance >Themes >Afterburner and entered this in the CSS code area:

div#mod_quiz_navblock { visibility:hidden;}

table.quizsummaryofattempt { visibility:hidden;}

This basically displays the background color for the left side block or center area.
Chris

Show
Chris Collman added a comment - With a suggestion from Tim in the Quiz forum, here is a css solution to hide the quiz navigation block and the entire summary of attempt block, except for submit all and finish. By using existing quiz settings to force the quiz to display the quiz in question edit order, you can force the student to step through each question. The downside is that this "fix" does not force a student to answer every question. I used the Afterburner theme and the hide visibility CSS code . Appearance >Themes >Afterburner and entered this in the CSS code area: div#mod_quiz_navblock { visibility:hidden;} table.quizsummaryofattempt { visibility:hidden;} This basically displays the background color for the left side block or center area. Chris
Hide
Tim Hunt added a comment -

Note that MDL-3054 is pretty-much a prerequisite for this, and Charles Fulton has now done a fix that should be included in Moodle 2.3. This is getting closer!

Show
Tim Hunt added a comment - Note that MDL-3054 is pretty-much a prerequisite for this, and Charles Fulton has now done a fix that should be included in Moodle 2.3. This is getting closer!
Hide
Charles Fulton added a comment -

Perhaps even closer; here's a proof-of-concept patch that probably needs a little work: https://github.com/mackensen/moodle/compare/master...MDL-11047

Show
Charles Fulton added a comment - Perhaps even closer; here's a proof-of-concept patch that probably needs a little work: https://github.com/mackensen/moodle/compare/master...MDL-11047
Hide
Tim Hunt added a comment -

I will try to look at this soon.

Show
Tim Hunt added a comment - I will try to look at this soon.
Hide
Tim Hunt added a comment -

Oh, I started looking at the patch quickly:

1. Have you tested the upgrade? You seem to be adding a NOT NULL column with no default. That should not work.

2. Rather than cryptic numerical constants, I would use strings 'free' or 'sequential' for this settings. Makes the data more self-documenting. Also, makes this one fewer thing to change if we ever decide to make this a type of plugin.

3. I think navigation method belongs next to 'questions per page', not grademethod. (both in the form and the db) - but you might disagree on this. If so, please explain.

4. I think ideally, logic like switch ($attemptobj->get_quiz_navmethod()) { would not be in the renderer, it should be $attemptobj->can_navigate_to($slot). Also, navmethod is OK for a DB column name, but the API should be $attemptobj->get_navigation_method()

5. I don't think you should just hide the navigation panel when the quiz is in sequential mode. It displays useful status information. I think it should be visible, but without links.

That is all for now. There will probably be more comments one you have fixed those. Thanks, Tim.

Show
Tim Hunt added a comment - Oh, I started looking at the patch quickly: 1. Have you tested the upgrade? You seem to be adding a NOT NULL column with no default. That should not work. 2. Rather than cryptic numerical constants, I would use strings 'free' or 'sequential' for this settings. Makes the data more self-documenting. Also, makes this one fewer thing to change if we ever decide to make this a type of plugin. 3. I think navigation method belongs next to 'questions per page', not grademethod. (both in the form and the db) - but you might disagree on this. If so, please explain. 4. I think ideally, logic like switch ($attemptobj->get_quiz_navmethod()) { would not be in the renderer, it should be $attemptobj->can_navigate_to($slot). Also, navmethod is OK for a DB column name, but the API should be $attemptobj->get_navigation_method() 5. I don't think you should just hide the navigation panel when the quiz is in sequential mode. It displays useful status information. I think it should be visible, but without links. That is all for now. There will probably be more comments one you have fixed those. Thanks, Tim.
Hide
Tim Hunt added a comment -

By the way, if you want to pay me back, MDL-30484, MDL-26260 and MDL-30854 all need review by someone other than me before they can be submitted for integration. Feel free to pick one Now I must go and catch a bus to Cambridge.

Show
Tim Hunt added a comment - By the way, if you want to pay me back, MDL-30484, MDL-26260 and MDL-30854 all need review by someone other than me before they can be submitted for integration. Feel free to pick one Now I must go and catch a bus to Cambridge.
Hide
Chris Collman added a comment -

Geeez Louise, two wishes and Charles is working on both! Guess I better get the updates and do some testing this weekend on this or one of Tim's. And I see that Kooz is one of the top 10 best beer cities in the US, so I am not sure Pig's Ear will meet Charles' standards.

My CSS solution, while it works is hardly ideal. Chris

Show
Chris Collman added a comment - Geeez Louise, two wishes and Charles is working on both! Guess I better get the updates and do some testing this weekend on this or one of Tim's. And I see that Kooz is one of the top 10 best beer cities in the US, so I am not sure Pig's Ear will meet Charles' standards. My CSS solution, while it works is hardly ideal. Chris
Hide
Charles Fulton added a comment -

Hi Tim,

Sorry, I'm only now getting back to this.

1) Yes, and it worked fine. The upgrade code sets '1' (QUIZ_NAVMETHOD_FREE) as the default.
2) I thought QUIZ_NAVMETHOD_FREE and QUIZ_NAVMETHOD_SEQ were pretty self-explanatory and line with current practice, but I'm open to a better way of handling this.
3) Your suggestion makes sense to me.
4) Renamed as suggested. I've moved the logic to the new function, although I didn't see any need in the current implementation for passing $slot since all the matters is the quiz's configuration.
5) I'm about 90% of the way there--the boxes render in both methods now but aren't "active" when using sequential navigation.

Rebased and amended.

Show
Charles Fulton added a comment - Hi Tim, Sorry, I'm only now getting back to this. 1) Yes, and it worked fine. The upgrade code sets '1' (QUIZ_NAVMETHOD_FREE) as the default. 2) I thought QUIZ_NAVMETHOD_FREE and QUIZ_NAVMETHOD_SEQ were pretty self-explanatory and line with current practice, but I'm open to a better way of handling this. 3) Your suggestion makes sense to me. 4) Renamed as suggested. I've moved the logic to the new function, although I didn't see any need in the current implementation for passing $slot since all the matters is the quiz's configuration. 5) I'm about 90% of the way there--the boxes render in both methods now but aren't "active" when using sequential navigation. Rebased and amended.
Hide
Tim Hunt added a comment -

Regarding 2) I mean that instead of QUIZ_NAVMETHOD_FREE = 1 and QUIZ_NAVMETHOD_SEQ = 2 (or whatever it is) you should define QUIZ_NAVMETHOD_FREE = 'free' and QUIZ_NAVMETHOD_SEQ = 'sequential', and change the DB column to be VARCHAR(16).

Show
Tim Hunt added a comment - Regarding 2) I mean that instead of QUIZ_NAVMETHOD_FREE = 1 and QUIZ_NAVMETHOD_SEQ = 2 (or whatever it is) you should define QUIZ_NAVMETHOD_FREE = 'free' and QUIZ_NAVMETHOD_SEQ = 'sequential', and change the DB column to be VARCHAR(16).
Hide
Charles Fulton added a comment -

@Tim. Amended and updated (thanks).

Show
Charles Fulton added a comment - @Tim. Amended and updated (thanks).

People

Vote (18)
Watch (10)

Dates

  • Created:
    Updated: