atutor.no

Here be links.

Improving "multiple answer" question type

Vegard A. Johansen's picture

We are moving more into automated tests where the system takes care of what the pass score or pass percent is, and then gives the user a certificate to download (more on our new Certify module coming soon).

In this process we have discovered a problem with the "multiple answer" question type, that can be best illustrated with this screen shot:

ATutor tells the user how many points are available, and in this case there are 10 questions with 10 point available, which for the not-very-observant student means that all alternatives are right. The problem is still there if there was 5 points available: the student could check all alternatives and reach maximum score for that question.

The underlying problem here is that you can only give point per question, not per question alternative, which means that you need a human beeing to correct all tests and this automatic correcting is not possible.

To solve this I believe we need to be able to set points per alternative, and also to set negative points (so you can't just check all and get away with max score).

let's take a look at one question:

This is how I believe this question type must work. Now, this will create a new issue, which is that creating these questions will be harder, so we need to take that into account as well.

As this is pretty simple calculating I believe the system should do it by taking the point value set on a multiple answer question, and then divide it as positive and negative scores on each alternative, which if needed can be changed by the creator at a later time:

We are willing to do this job, but need feedback on how to best solve it! I also wonder if there will be any consequences for backups and restoring of tests, and the IMS QTI Question and Test Interoperability Support?

Comments

Vegard A. Johansen's picture

come to think of it..

there are some issues here to think more about.

one thing is that in the example above you would get 0 points by answering one right alternative and one false.

a different issue is that you could get negative points on a question. in the example above you could get -1 if you only answered the wrong alternative.

both these scenarios might be just fine, but should be discussed. the solution to the last one (if it needs one) is that we could say that if the student gets a negative score on a quiestion that would equal a score of 0, but I'm having a harder time to think of a solution for the first one (if it needs one).

you would be able to get decimals in results, which might be fine, but I don't know if the test results table in ATutor allows for floating values?

Serhiy Kostyshyn's picture

Re: Improving "multiple answer" question type

Not sure that I get the point.
Currently, ATutor substracts number of mistakenly checked choices from the number of correctly checked ones. If that number matches the number of correct answers, the question is marked as correct. If not, it's wrong.
Does that cause any problems?

Or do you want the questions to be marked proportionally to the number of correct answers (like Matching questions)?

Vegard A. Johansen's picture

Re: Improving "multiple answer" question type

Thanks for clarifying Serhiy, I guess I was in a bit of a hurry when writing that post :)

Yes, we wish the questions to be marked proportionally to the number of correct answers. If you see my first screen shot all alternatives are correct, but for this course the instructor does not want to give 0 points if the user has 9 correct..

However, negative points will not work I can see. In this case the user would get 0 point if answering 5 alternatives (+5 and -5). Not giving negative points will cause the user to get a max score by filling out all alternatives.

Hm, it strikes me that this might not be easily solvable. Any ideas?

Also, if we find a way would it be better to create a new question type, or could we this "proportionally marking" available as an option on questions. On one hand we cannot destroy the current functionality of these questions, on the other hand we need to use the data we have on these questions for this case so we don't need to create the questions again, and require all the students to take them again..

Serhiy Kostyshyn's picture

Re: Improving "multiple answer" question type

Now I see. In fact, in our local installation we've already changed the marking algorithm to be consistent with that of Matching type. I'll send you the changes if you need. I didn't look into the QTI compatibility though.

Still, in 1.6.2 the question type is marked as I describe above (I remember the code clearly since the customization, and also have tested once more in the demo). So there should be no possibility of cheating in that way.

Vegard A. Johansen's picture

I'd like that!

thanks Serhiy, we haven't used the matching type questions much so I wasn't aware that they worked like this - I'd very much like to have a look at the changes you've done in the code, and I'll take it to a test run on a test install of this course here!

I guess I still struggle a bit to see how you are not able to cheat with checking all alternatives (how many point would you get if you checked all alternatives on a question where 8 of 10 are correct?), but I'll probbaly find out when I try it out :)

The export isn't a big issue unless this would be a part of core I guess..

Serhiy Kostyshyn's picture

Here you are

Sure, I'm sending you the changes by e-mail. Sorry for the delay. :)

klaus melf's picture

Lessons learned from the above mentioned screenshots

After having manually corrected the answers of five students to all the Multiple Choice and Multiple Answer questions of the MPW course (about 79 tests x 5 questions x 5 answer possibilities):
1. MAQs are easy for the author to design, while the production of good (!) MCQs is a quite difficult job.
2. (Probably because of 1!) Our MCQs seem to be easier for the students to answer (or guess) correctly.
3. To give negative points (and not only "0") for wrongly marked MCQs, increases the quality level of our course (it reduces the guessing): Please give negative points for wrong answer in MCQs!
4. To give only one point (positive or negative) per MAQ is frustrating for the student as he/she might have marked correctly several positive answers, but maybe not the last one (see Vegard's screenshot 2. However, there is a mistake in the red comment to choice 3; the student should get 0 for not-marking this correct answer, and in total +2 points for correctly marking choice 1 and 2.): Please give one point per correct answer in MAQs!
5. If we give several possible points for MAQs (because of several correct answers), but not give negative points for wrongly marked answers, this makes it quite easy for the student: Please give negative points also for MAQs! (We give therefore the following instruction to our students: "Multiple Choice means one answer is correct, Multiple Answers means one or several answer/s is/are correct. Please be aware that wrong answers give negative points. If you do not know, it is better not to mark an answer.")
6. If we in addition show the maximum possible point score in MAQs, in which all or most answers are correct, our questions become meaningless: Please don't show the maximum possible point score.
7. Summa summarum: Each MAQ choice should be evaluated individually with -1/0/+1 point, and then summed up per question. This can result, for example, in (up to) +10 points for one MAQ (see screenshot 1), or in -4 points for another MAQ.
8. I have ignored in our course evaluation the possibility to weigth one choice higher (more difficult = more points) than another one. This would make it even more complicated to calculate the correct point sum, and I think this option is not necessary either.
9. It takes now about one working day (!) to go through and evaluate all answers of one student. An automatic calculation of the correct score is highly requested.

Vegard A. Johansen's picture

thanks for this

hi Klaus, thanks for your feedback here! I do agree that it is not possible to run a course like MPW in the long run without some form of automated test calculating and certificates.

After letting this sink for a bit my thoughts are that IF we can avoid negative points and at the same time make sure that it's not possible to cheat by just checking all alternatives that would be preferrable. I fear that giving +1 for correct answer, 0 for not answered and -1 for incorrectly answered will mean a whole lot of programming that could be solved easier, but I will run this by the programmers too, and also first try out the changes Serhiy has done with this.

You are still able to make the tests harder or easier to pass by adjusting the pass percent of them.

I agree that there is no particular good reason to show the max possible point score on questions. I know I had fixed this before with a quite simple theme change, but it must have been reintroduced in an upgrade. I'll have a look at it again.

Vegard A. Johansen's picture

First tests

Thanks Serhiy - it looks like this might be what we are looking for! Here's a screenshot of a test I made which shows the calculations:

So to make sure: the logic / flow is:

  • The median score per alternative is calculated from the max possible score on the question (in this example it's 1 for all alternatives, but it would be a different number if you had a higher max possible score on the question)
  • For this example, when median = 1: one correctly marked alternative gives 1 point, one falsely marked gives -1.
  • it is not possible to obtain negative score, as 0 is the lowest you can go.

For me it looks like this solves the problem, however not entirely in the way Klaus describes above, as you will not be able to get a negative score for MCQs or MAQs. 0 is bottom. However it's still better to not mark if you're unsure as not maked equals 0 points while wrongly marked equals -1 point.

Now the tests are set to be passed when user has reached 80% of the maximum score. This can be adjusted up or down to make the tests easier or harder to pass..

One more issue, though: For this course we have a lot of tests that are taken, but where it seems that the scores are calculated from the original algorithm. I guess the score was calculated and stored when the user took the test, and for the new algorithm to calculate it the user would have to take the test again..?

We cannot ask for that here, so I believe we need some way to "flash" this, so the scores are calculated again, with the new algorithm.. Any ideas how this can be done? If we could manually run a SQL on the db to do that, that would work just fine!

And thanks again, Serhiy! :)

Serhiy Kostyshyn's picture

Re: First tests

You're welcome. Glad to hear it works for you.

Concerning existing submissions – yes, they remain unchanged. Indeed, you can re-mark them with a SQL query, taking "raw" data from AT_tests_answers (using AT_tests and AT_tests_questions along the way).
In an hour I'm to leave to a conference, so I won't be able to write anything this week; maybe after the weekend (if you don't come up with your own solution by that time).

Cheers!

Vegard A. Johansen's picture

SQL appreciated :)

well, we haven't been able to solve it yet so if you happen to have the SQL in the back of your head you are welcome to jot it down.. :)

(not that I believe you have these kind of SQLs in the back of your head all the time..)

we will probably use the SQL in a very small admin module created to do this and other update tasks we need for the coming certify module.

BTW: as you think this SQL, would it be on a test-by-test basis, or would you update all tests in the system at once?

..I kinda feel bad that every time I get your help I end up asking for more :)

Serhiy Kostyshyn's picture

Re: SQL appreciated :)

> (not that I believe you have these kind of SQLs in the back of your head all the time..)
Not whole SQL queries of course, but the basic mental gymnastics with AT_tests* mix-and-matching happens to be always there – it's just used all too often. :)

> BTW: as you think this SQL, would it be on a test-by-test basis, or would you update all tests in the system at once?
And which flavor would you prefer? Limiting by test ID (or even by course ID) would be easy.

Vegard A. Johansen's picture

Re: SQL appreciated :)

Not whole SQL queries of course, but the basic mental gymnastics with AT_tests* mix-and-matching happens to be always there – it's just used all too often. :)

Yes, I figured it would be easier for you than for our developer who is not that familiar with that part of ATutor :)

And which flavor would you prefer? Limiting by test ID (or even by course ID) would be easy.

Well, if I can decide, limiting by course ID would probably be just perfect!

Serhiy Kostyshyn's picture

Re: SQL appreciated :)

Fine, I'll write a query ASAP.

klaus melf's picture

Not too bad...

Hi all,
It seems to me that the main problems have been solved. Thank you for that!
I just want to question if it is not possible to give negative scores (e.g. "-1"), and why not? It would not mean very much in MAQs, however quite a lot in MCQ?
Right now we recommend to the student to leave the MCQ blank if the student is not sure about the right answer. And this would mean: 0 points (Leave blank).
But if the student marks a wrong answer (still not knowing the right answer, but using the chance of guessing 20-50% correctly), the student would still have 0 points. Guessing is therefore more favourable than being honest.
I would therefore appreciate if there could be negative scores, at least for the MCQ.
Cheers,
Klaus

Vegard A. Johansen's picture

See your point

I see your point Klaus, and it makes sense, but I'm afraid changing this at this point will have too many implication for other courses so we will have to leave it like this atleast for the time being, sorry about that.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

Hi, this is the atutor.no blog, where the community can blog about things related to use, development or thoughts concerning the open source LCMS ATutor!

Register or log in to start blogging, or get in touch for any reason!

Recent comments