Tim Hunt bb93fc24aa MDL-6340 quiz: avoid reusing random questions between attempts
There are several improvements over what we had before:

1. We track all the questions seen in the the student's previous
quiz attempts, so that when they start a new quiz attempt, they get
questions they have not seen before if possible.

2. When there are no more unseen questions, we start repeating, but
always taking from the questions with the fewest attempts so far.

3. A similar logic is applied with variants within one question.

There is lots of credit to go around here. Oleg Sychev's students Alex
Shkarupa, Sergei Bastrykin and Darya Beda all worked on this over
several years, helping to clarify the problem and shape the best
solution. In the end, their various attempts were rewritten into this
final patch by me.
2015-03-26 17:45:49 +00:00
..

ACTIVITY MODULES
----------------

These are main modules in Moodle, allowing various activities.


Each of these modules contains a number of expected components:

  mod_form.php: a form to setup/update a module instance

  version.php: defines some meta-info and provides upgrading code

  pix/icon.gif: a 16x16 icon for the module

  db/install.xml: an SQL dump of all the required db tables and data

  index.php: a page to list all instances in a course

  view.php: a page to view a particular instance

  lib.php: any/all functions defined by the module should be in here.
         constants should be defined using MODULENAME_xxxxxx
         functions should be defined using modulename_xxxxxx

         There are a number of standard functions:

         modulename_add_instance()
         modulename_update_instance()
         modulename_delete_instance()

         modulename_user_complete()
         modulename_user_outline()

         modulename_cron()

         modulename_print_recent_activity()


If you are a developer and interested in developing new Modules see:

   Moodle Documentation:  http://moodle.org/doc
   Moodle Community:      http://moodle.org/community