Hello Quizers,
I'm working in a very small group at Wageningen University, a small university aimed at life sciences. We've been doing research on the design and development of learning material for the past nine years and we've recently decided to move from our home-grown scripts to a more solid foundation: Drupal, maybe using the Quiz module.
A lot of our material involves questions with feedback, so that's why I'm looking at the Quiz module to see if I can avoid a lot of duplicate work. So I'm trying to find out if the Quiz module does what we need and, if not, if the work I'm going to do to make something that does what we need can benefit the Quiz module.
The way we mainly use questions is in cases. The student is presented with a large (design) problem, and is guided through this problem with questions and feedback. A student can answer a question as often as he likes/needs. After every incorrect try he'll get two types of feedback: feedback specific for why his answer was incorrect and general hints. Both types of feedback can get more elaborate and specific for every try the student needs (though for most questions this is only used for the general hints).
example: http://pkedu.fbt.wur.nl/webman7/includes/guest_login.php?type=1&module=m...
Go to question 1 (Your Roommate) and try some answers, you'll see an increasing list of hints.
These cases are used for learning, there's no scoring or timing, the students can lookup things as much as they want.
In our old system we store the question as XML, as files at the moment. The xml for above question 1 is or example: http://pkedu.fbt.wur.nl/webman7/cases/mixing/questions/q1.xml Currently we have a nice set of question types: MC (single or multiple), Drag&Drop, Hotspot, Number, Select&Order, Fillblanks and some custom types. The answer of every question type is simply serialized to a text field. This gave us lots of flexibility, it was a research project after all :)
It seems to me that there is plenty of overlap, but also some big differences between what Quiz offers and what we need. What do you think?

Comments
Good features for Quiz module
I think the use cases you describe could fit well into the more expansive Quiz module functionality currently being discussed. Can you add a note to the "Quiz 4.x planning" thread? Even better, post some feature request issue tickets.
http://educoder.org/
http://openeducationresearch.org/
http://educoder.org/
http://openeducationresearch.org/
ClosedQuestion module
I've converted the question types into a Drupal module, and made sure it also works for anonymous users. A test site with some random questions covering all supported question types is here: http://hylke.pk.wau.nl/drupal/question-tests
Comments are welcome of course :)
ClosedQuestion is very impressive
Hylke, I just checked out your demo and it's quite impressive. How are they authored? Does the user have to type XML?
Quiz is pretty limited right now, as you point out, but it is evolving rapidly and I think your use cases can be accommodated. I'm not sure the best way to go about it, but one might be do add your ClosedQuestion as a new Quiz question type using the new OO mechanism in Quiz 3.x. Then we can add features throughout the rest of quiz so it can be configured the way you've described.
http://chemistry.qcommons.org/
http://openeducationresearch.org/
http://educoder.org/
http://openeducationresearch.org/
Thank you, At the moment
Thank you,
At the moment there is no question editor, so the user will have to type the xml himself. That's one of the things on the ToDo list.
One of the important features is that we can use the questions stand-alone, outside of quizzes, but I guess that should not be too hard to achieve
I'll be on holiday starting next week, so I won't be doing much development coming month :)
Great educational tool ...
This form of interactive questioning with instant feedback would make a great educational tool. The quiz example you pointed to is awesome! It's like having a teacher guide you through the process of learning, first encouraging your to discover the knowledge for yourself and guiding you more directly through the process of figuring out the answer.
It seems to me that this should not be a new question type, but rather extend the existing question types, so that these q/a learning sessions would be able to benefit from all the different question types which exist now and which will be created later. I'm not sure how this would be done, since I've only just begun to look at the quiz module. The multiple choice question type already supports a form of feedback response, although it's significantly different than what you describe here since it's really designed for end-result feedback.
Perhaps you would need to create two modules to extend the cababilities of quiz questions, each of which would add a new section to the end of the create question pages:
Question Feedback - a list of feedback options, each with their own set of criteria defined by which option(s) were selected by the person providing the answer. So, you would enter the feedback into a text area and define the criteria under which that feedback will be given. (options: a selected, not c, not d) You will have to accommodate both single option and multi-option questions here, so the logic and UI could get kinda hairy.
Question Hints - It seems that this is just a list of hints that get displayed: one more for each incorrect answer until the hint basically tells the user what the answer is. Is there any need to also provide specific hints that are dependent upon which question option was selected or is that functionality totally regulated to the feedback module? Does the display order of the hints ever change depending on which options are selected?
Anyway ... just throwing out ideas because I love what I see going on here.
Hints are general hints that
Hints are general hints that are not dependant on the answer of the student. The biggest "problem" with this and quiz is that getting a certain hint after your second try isn't very helpful if you can only try once :)
Making feedback question-independent is really hard I think. The multiple choice case is simple, as the answer is just one identifier of the selected option, but multiple-option is already harder, because the answer is a list of selected options. Drag & Drop gives as "raw" answer a list of coordinates for identifiers. Or possibly a list of identifier-hotspot combinations, and a list of identifiers that did not fit any hotspots. A select & order question generates an ordered list of identifiers. That seems the same as with multiple-option, but in this case the order is also important.
I'm not sure how to go about merging, or at least creating synergy between the closedQuestion and Quiz modules, even though it would be a worthwhile cause. Maybe I'll see the light when I'm a little less busy ;)
Hi HylkeVDS This is an
Hi HylkeVDS
This is an awesome demo and the perfect fit of what I want to accomplish.
I am newbie to drupal and trying to build a similar system for a school but the difference here is I want to give only three attempts per question and store the marks for each attempt. I will have different categories and the question type is only going to be multiple choices. For adding the questions I would rather not use xml . What will be the best way to go about this
Quiz has the limitations that you identified. Did you use the code from quiz and tweak it or is it a whole stand alone system. and did you use taxonomies and CCK?
Please explain a bit on how you achieved in the closed question.
Thank you in advance.
Tsegi
Set up
It's currently a totally stand-alone system that's not based on quiz. It also does not use taxonomies nor CCK.
I do plan on using taxonomies for question classification for the adaptive system.
Every question type has it's own php class that creates and handles the form for the question. There's a question factory that looks at the type definition in the xml and instantiates the right class.
As for the xml, I do plan on building a more teacher-friendly question editor, but that will take some time.
Why do you want to limit the user to only three attempts? I often notice students that try out all incorrect answers, just to get see the feedback, even if they gave the correct answer in one attempt. So for learning you might be better of not putting a hard limit on the number of attempts. Currently it does store the number of attempts, but not the "attempts till correct", so you can't be sure a student did not try out incorrect answers after giving the correct answer. On the other hand, it is not hard to also store that number.
Hi HylkeVDS Thank you for the
Hi HylkeVDS
Thank you for the fast reply. I want to limit it to three attempts because I want it to be kind of quiz but guide them to the right answer by giving feed back until they reach at the right answer so it is in the middle between quiz and a full feedback giving teaching system. Is your code going to be available as a module any time soon?
Tsegi
Yes, it's available
Yes, the module is available at:
http://wmmrc.wur.nl/drupal-modules
I just noticed I forgot to allow anonymous users access to attachments :)
This week I rewrote the Select & Order and the Drag & Drop questions to use jquery, so they're much nicer now.
Hi HylkeVDS Thank you.
Hi HylkeVDS
Thank you. Finally I was able to test closed question as it was giving me a warning of pass by reference at a school machine but I managed to do it from another machine. My other question is how you can make consecutive closed questions like quiz?
That's currently on the TODO list
At the moment ClosedQuestion does not do that yet. You can put your questions in a book and have them in a sequence in that way.
The "pass by reference" error has been fixed in the meantime, a new version is available.
Ordering Closed Questions
I've just released the first version of the module LinearCase that allows you to limit a students navigation through a book containing closed questions.
A linear case is a book that limits a students navigation. A student can progress through the book freely, untill he reaches a page with a question. The student then has to answer the question correctly before being allowed to continue.
http://wmmrc.wur.nl/drupal-modules/linearcase
Regards,
Hylke
Pass by reference
Hi HylkeVDS
Thank you for the suggestion and the pass by reference is at the call of submitAnswer () function at line 189 in closedquestion.module .It seems to be still there.
You're right
You're right, NOW it is fixed (in version 090929)
Hi HyKeVDS Sorted .Brilliant
Hi HyKeVDS
Sorted .Brilliant .Thank you.
Tsegi
Proteus implementation
Hi all,
I've made a first implemented the adaptive question-system Proteus, described in this paper: http://www.editlib.org/d/21709/article_21709.pdf
It has all the basic functionality, and a few rough edges (it doesn't work for anonymous users yet)
From a teacher's point of view:
From a student's point of view:
You can get the module here:
http://wmmrc.wur.nl/drupal-modules
If you can't get the paper, send me a message and I'll send it by email.
closedQuestion, linearCase, and Proteus on Drupal
Hylke,
I really appreciate the work you have put into these modules and for making them available. Is there a reason why you have not submitted them to Drupal.org?
We are experimenting using Drupal and specifically a install of ELMS (https://elearning.psu.edu/elearning/elms) for our online courses. The functionality of the questions would fit well with the ELMS. You may want to contact Bryan (http://drupal.org/user/24286) at the Penn State eLearning Institute to discuss if there is any overlap in your efforts.
They're "in review"
I have submitted them to Drupal.org, but by cvs application review has been on "needs review" for 10 weeks 2 days now. But I'm nearly at the top, only two in line before me. :)
Thanks for the pointer, I'll check it out!
Instructions? (For a dummy?)
Hylke,
This is a wonderful tool. Exactly what I need for my online training site.
But I'm afraid I am very confused about how to use your module.
I have installed both Closedquestion and Proteus. I want to work with Closedquestion first, to get the hang of it.
Do you have a set of simple instructions for how to create a basic question node?
I understand that you have to type your own xml, but that's where I get lost. I am pretty good with html, but I don't know the first thing about xml.
I see that you have several examples, in a folder called "examples".
When I am in the "create closed question" screen, looking at the empty fields, what do I put in the "question xml" field?
I tried copying and pasting the content from one of your examples, but no go.
Please give me a sample of the text I must type into the "question xml" field, and any other settings I should make, and I will learn the rest.
I'm sure you are a busy guy, but I would really appreciate a little advice. Your module is really fantastic.
Thank you in advance.
Working on that
Thank you for the feedback :)
You should be able to just paste one of the examples into the question xml box. What is the result if you do? Any errors?
What filters are used in the Input Format that you are using? You should not use html corrector or html filter, as those will modify the xml. You probably also don't want Line break converter, as that will add linebreaks in bad places.
We are working on the documentation for the xml, and I hope to have something soon.
A simple multiple choice question that should just work would be:
<question type="OPTION">
<text>
<p>Some content that asks a question.</p>
</text>
<option correct="0">
<choice>Choice 1.</choice>
<feedback mintries="1">
Specific feedback for choice 1 after try 1.
</feedback>
<feedback mintries="2">
Specific feedback for choice 1 after try 2.
</feedback>
</option>
<option correct="0">
<choice>Choice 2.</choice>
<feedback mintries="1">
Specific feedback for choice 2 after try 1.
</feedback>
<feedback mintries="2">
Specific feedback for choice 2 after try 2.
</feedback>
</option>
<option correct="1">
<choice>Choice 3.</choice>
<feedback>
Correct!
</feedback>
</option>
</question>
Thanks
Thanks for your quick response.
I went into "create closed question"
I gave the node a title "Sampleq"
Then I pasted the entire content of the multiplechoice.xml example file into the "Question XML" area.
I'm using full html, with no html corrector and no line break converter.
When I hit "preview", I get this error:
Fatal error: Call to a member function loadXML() on a non-object in /home/aesdcco/public_html/elearning/sites/all/modules/closedquestion/closedquestion.module on line 221
I've tried it with each of your examples.
I even tried pasting the exact text of your example above, but I get the same error.
I'm sure I am making a very simple mistake, but I just can't figure it out.
I appreciate any help.
Thanks.
Preview...
Funny, I never even tried the preview button... Looks like I have some work to do :)
Can you try just try hitting Save and see if that works?
New version
Version 0.7 should no longer give an error when you hit preview, but you can't answer the question in the preview, as there is no node yet to store the answer with.
Updates
Quite some updates happened in the past few months. The latest versions of the ClosedQuestion, Proteus and LinearCase modules can be found at: http://wmmrc.wur.nl/drupal-modules
We've started work on a manual for the ClosedQuestion xml format, but we don't have a nice question editor yet.
New is the module LinearCase that allows you to limit a students navigation through a book containing closed questions.
A linear case is a book that limits a students navigation. A student can progress through the book freely, untill he reaches a page with a question. The student then has to answer the question correctly before he can go to the pages beyond that question.
Feedback is always much appreciated.
module doesn't work
Good evening, I've installed your fantastic module that solves me a lot of implementation problem, but, when I try to create a closedquestion content I receive a blank page.
I think that I follow all the steps for the installation and I try to paste one of your example but I have white page as result of my work.
is this an issue of the module? or I get something wrong.
thanks!
It could be the module, hard
It could be the module, hard to say.
Which example did you try? I would advice to start with the multiple choice one, it's the least complex.
it doesn't still work
I tried to create a closedquestion content with multichoice example and with the xml code posted above, but I receive always the same result: blank page both in preview and published.
I tried also to change input format. I tried full html format and a format that I've created with only "Web page addresses and e-mail addresses turn into links automatically" option checked, but nothing changes.
if you want to view the example site this is the link: http://elearning.unistrapg.it/firb/lira
you can use this user: username guest, password guest
I would appreciate a lot your help! thanks!
Wow, that's... interesting...
Wow, that's... interesting...
Even the edit screen is just blank! (http://elearning.unistrapg.it/firb/lira/?q=node/3/edit)
is there anything in the webserver error-logs?
upgrade quiz module
Hi, I had same problem with assignment question type. after upgrading quiz module to 6.x-4.1 (quiz question module upgraded) everything worked well.
upgrade permissions
I've just upgrade the permissions for guest user to view site reports, but I saw that there isn't nothing about closedquestion.
now you can check this.
I've already notice that when I published a closedquestion content I can't delete or edit it.
your module needs some particular configuration for the webserver? because this test webserver doesn't have php 5.2 but php 5.1.
I'm looking for your news. thanks a lot!
I've had a look at our own
I've had a look at our own webserver, and we also use php 5.1, so that's not the problem.
We also have the php-xml package installed, so that might be missing?
webserver logs?
can you add:
if (!class_exists('DomDocument')) {drupal_set_message('PHP XML class DomDocument does not exist, maybe you need to install the php-xml package in your operating system?', 'error');
return;
}
to question/CQ_FactoryQuestion.inc.php at the top of function CQ_QuestionFromXML (line 52)
Also, is there something in the logs of the webserver? Apache logs are somewhere near /var/log/apache/error.log. It seems like php is just crashing...
hook_requirements
Checking for the required PHP class/extension should be done in your module's implementation of hook_requirements.
Thanks for the pointer
Cool, thanks for the pointer. I'll add that to the module!
same problem!
good morning! I've unchecked and remove closedquestion module from my drupal installation and from my webserver. now I download and install the new version of the module (0.24). I run updates and I flush all caches, but I still have the same problem.
when I've installed the module drupal didn't say me nothing warning or error about requirements.
if you want to try you can login to my test platform.
if I could use your module I thank you forever! :)
drupal version
Is it possible that the problem is a different drupal version?
I've instaled my test platform with drupal 6.16. I don't know if this could create all the problems.
what version do you use?
I've spoken with our
I've spoken with our administrator and said me that in our webserver there is installed php-xmlrpc package.
it's ok or I need to have php-xml package?
Depends on the operating
Depends on the operating system and how they divide things into packages. On a RedHat system, the php-xml package is separate, but on a Debian system the XML bits are compiled into the base php package...
the xmlrpc package is something else than the xml package.
our system is a red hat
our system is a red hat distribution, so what can I do?
In that case you should tell
In that case you should tell your sysadmin to install the php-xml package.
yum install php-xml
And while he's doing that, make him check the apache logs (/var/log/httpd/error_log)
:)
It was a missing php-xml
Just to let those interested know the final solution. It was indeed a missing php-xml module. ClosedQuestion now checks for this.
upgrade permissions
I've just upgrade the permissions for guest user to view site reports, but I saw that there isn't nothing about closedquestion.
now you can check this.
I've already notice that when I published a closedquestion content I can't delete or edit it.
your module needs some particular configuration for the webserver? because this test webserver doesn't have php 5.2 but php 5.1.
I'm looking for your news. thanks a lot!
ClosedQuestion updates
Hi All,
ClosedQuestion is nearly through the Drupal.org review process. In the meantime I've released a new version with a cool new feature: ClosedQuestion can now evaluate mathematical expressions and use the results. So if you have a question where a student has to calculate c from a and b, you can have a and b randomly generated each time a student resets the question.
Example:
http://wmmrc.wur.nl/Drupal%20Modules/ClosedQuestion/Example%20Questions/...
The XML used in the example explained:
http://wmmrc.wur.nl/Drupal%20Modules/Manual/Developing%20Questions/math-...
Download:
http://wmmrc.wur.nl/drupal-modules/download
ClosedQuestion
Nice work!
is <matheval /> a mathML tag or is it XML specified in the DTDDid You use any Java?
Thanks for Your time.
It's not MathML
It's not MathML. The matheval and mathresult tags are specific for ClosedQuestion. Unfortunately I've not yet gotten to writing a DTD for the ClosedQuestion XML specification.
I've used the evalMath library (bsd licence: http://www.phpclasses.org/package/2695-PHP-Safely-evaluate-mathematical-...) to do the evaluation of the mathematical expressions.
So the expressions are just a string, for example:
<matheval expression="max = 1+2" />will set the value math variable a to 3. You can then later in the answer-mapping section of the XML use these variable when specifying a range. For example:
<range inlineChoice="c" minval="min" maxval="max" />will check if the answer the student gave for input field "c" is between the values of math variable "min" and math variable "max".
There's no Java, it's all PHP, a bit of javascript for the Select&Order, Drag&Drop and Hotspot questions and the Drupal AHAH functionality to do the checking of a student's answer without a full page reload.
Thanks
phpclasses is a great site that i did not know about. OOP looks like the future, that web site will really help. ClosedQuestion is a great contribution as eLearning is growing leaps and bounds.
i am working on a Tax Continuing Education Site for Tax Preparers. Please do a post after the drupal review - (The best thing about drupal is the security team:)
Thanks again,
Ran
jquery.jstree.js errors
I'va installed the module following the guide and I upload all the js files in the correct folders in libriries folder, but when I try to create a closed question content by a template, I read in the browser console a lot of errors of jquery.jstree.js file.
Why?
Thanks!