OK, so to start making the promised follow-up posts.
2. & 6. Who should be in control, and a good example of that is, what question behaviours should we allow, and who chooses - that is a good specific example of the general question 2.
So, when a student starts a new practice session, Moodle needs to know a number of options for how that session will work. For example we might have three option:
Question behaviour: Immediate feedback, Immediate feedback with CBM, etc.
Stopping criterion: Open ended, After 10 questions, etc.
Question selection method: Chosen at random from topic 1, etc.
For each of these options, there are a range of possibilities, and let us use behaviour as an example.
There are a range of behaviours installed in Moodle, by default:
- deferred feedback
- immediate feedback
- deferred feedback with CBM
- immediate feedback with CBM
- interactive with multiple tries
- adaptive (no penalties)
- manually graded
Now straight away we can eliminate 1, 3 and 8. For practice, the students need to be able to submit their response and get a grade while interacting with the question. So, that leave 5 possible behaviours that we can use with question practice.
Ultimately, when a practice session is started, a single possible option must be chosen. Starting a practice session is done by the student, so they get to make the final decision.
How much control should we give teachers? Well, my suggestion is that we let them decide which options are available to students. So, on the form where a teacher sets the settings for the question practice, we will have
Available question behaviours: [ ] adaptive
[ ] adaptive (no penalties)
[x] immediate feedback
[ ] immediate feedback with CBM
[x] interactive with multiple tries
Then, only the options that the teacher things are relevent are presented to the student.
Now, a teacher may only allow one possible option. That is both bad (the goal of this activity is to put students in charge) but also good (the student does not have to make a decision about this themselves, they can just concentrate on answering questions.
I think that this approach that works for behaviours can be generalised to all the options: for each option there are a range of possible settings, and the teacher gets to select which of those possibilities are available to students.
Now, as we have said, it is a big advantage if the student can just click once to start a practice session, without having to set any options. (It also has disadvantages.) One way you can achieve that result is for the teacher to fix all options, so the student has no choice. A better approach, as already suggested by Joseph Thibault it to have a system of presets. The settings to start a practice settings are just a chunk of date: Option1 => value1, Option2 => values2, etc. We can, of course store data like that in the Moodle database. What this means is that we can let the teacher (or student) create preset or default practice sessions, and we can let students start one of those practice sessions with a single click of the mouse (without removing their freedom to create completely custom sessions).
I think that is something that should be added in version 2.0 of the practice module. It is not necessary for the first version, and is clearly something that can be added later.