Change questions after x copies with the same question (Support #841)


Added by Josef Eiglsperger over 1 year ago. Updated over 1 year ago.


Status:New Start date:07/15/2022
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:-
Target version:-

Description

I have a question to which I didn't find a solution in the docs to.
I want to have a certain number of copies with the same question (their order can be shuffled), let's say four.
After these, I want to change the questions, like it is really nice to do with AMC. Again, for a certain number of copies with the same questions.
This is really nice when having multiple small exam groups, where every group should get another exam, but the exam for every group should stay the same.
My solution right now would be, to just create a certain number of distinct exams, and then manually photocopy them (to let's say four.
But maybe you already implemented a solution to this, but I couldn't find it myself...


test-question-reprise.tex (1.5 kB) Frédéric Bréal, 07/15/2022 12:56 pm

test-question-reprise-2.tex (1.7 kB) Frédéric Bréal, 07/16/2022 09:46 am

test-question-reprise.tex (1.6 kB) Frédéric Bréal, 07/16/2022 09:46 am

test-question-reprise-3.tex (3.3 kB) Frédéric Bréal, 07/16/2022 02:24 pm

test-question-reprise-4.tex - with shuffle (3.4 kB) Frédéric Bréal, 07/16/2022 02:24 pm


History

Updated by Frédéric Bréal over 1 year ago

I do not understand your request.
Do you want something like that :
copies 1 to 4 : questions A & B
copies 5 to 9 : questions C & D
etc
or
copy 1 : questions A, B , C, D
copy 2 : questions E, F, G, H
etc
?

Updated by Frédéric Bréal over 1 year ago

Sorry i didn't read the title. My first and not tested idea : trying to use a modulo function with the sheet number.

Updated by Frédéric Bréal over 1 year ago

a suggestion

Updated by Josef Eiglsperger over 1 year ago

Thanks for your answer, but after playing around I figured out, the simplest way is to just make x different exams and then photocopy it :)

Updated by Josef Eiglsperger over 1 year ago

But I'll definitely will try out your suggestion as well!

Updated by Josef Eiglsperger over 1 year ago

Nice solution to this problem, I tried it out and it works fine!
But how would you implement it when having multiple groups of questions? So in your example grouß#1, group#2, group#3, etc.?
That would also really nice, but I have no clue, trying to figure that out for a while...

Updated by Frédéric Bréal over 1 year ago

two files with a different modulo.

Updated by Josef Eiglsperger over 1 year ago

Sorry, I think I stated my question not clear enough.
In your solution, you can sample from two groups, but all groups contain all questions when I understood it correctly.
I thought of having multiple groups of questions like history, physics, biology, etc. And then sample e.g. one question from each group, so one question from biology, one from physics, one from history.
So not just having group#1 like in your script, but like group#1, group#2, group#3, etc.

Updated by Frédéric Bréal over 1 year ago

I used a command from an Alexis Bienvenüe's file (\def\fillgroup#1) to create fasterly many groups.
Two files with the common method.

Updated by Josef Eiglsperger over 1 year ago

Ah ok, now I fully understand these commands.. thank you!
Works well and is really easy to do so, nice!

Updated by Josef Eiglsperger over 1 year ago

One last question maybe to this topic:
By setting the option

noshuffle

the order of the answers stays the same. But the order of the questions itself still changes from sheet to sheet or student to student, respectively. How can I keep the order of the questions for every student, who gets the same test, the same?

Updated by Frédéric Bréal over 1 year ago

2 ways

Before onecopy and after \begin{document} : \setdefaultgroupmode{fixed} or option package noshufflegroups.

Updated by Josef Eiglsperger over 1 year ago

As far as I can tell, the package noshufflegroups is in conflict with \shufflegroup{group} commands I set, but the \setdefaultgroupmode{fixed} works quite well, thanks!
I recognized that if I change sampling of the questions for every group like you suggested:

\cleargroup{all}
\copygroupfrom[1]{easy1}{all}{\thecalculate}    
\copygroupfrom[1]{easy2}{all}{\thecalculate}
\copygroupfrom[1]{easycalculations}{all}{\thecalculate}
\copygroupfrom[1]{semiothers}{all}{\thecalculate}
\copygroupfrom[1]{semiregression}{all}{\thecalculate}
\copygroupfrom[1]{semiclassification}{all}{\thecalculate}
\copygroupfrom[1]{semipreprocessing}{all}{\thecalculate}
\copygroupfrom[1]{semievaluation}{all}{\thecalculate}
\copygroupfrom[1]{hard1}{all}{\thecalculate}
\copygroupfrom[1]{hard2}{all}{\thecalculate}
\insertgroup{all}

\ifthenelse{\intcalcMod{\AMCStudentNumber}{4} = 0}
{\addtocounter{calculate}{1}}{\relax}

The questions from one group of questions will stay the same for every group of students, when the students group number exceeds the number of questions in a group. For example, when I sample questions for student group number 5, but questions group semiregression only has 4 questions, student group 5 will get the same questions from question group semiregression like student group 4. That why I reshuffled the questions after this happens:
\ifthenelse{\thecalculate > 2 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{semiregression}}{\relax}
\ifthenelse{\thecalculate > 3 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{semiclassification}}{\relax}
\ifthenelse{\thecalculate > 4 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{easycalculations}}{\relax}
\ifthenelse{\thecalculate > 4 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{semipreprocessing}}{\relax}
\ifthenelse{\thecalculate > 7 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{hard1}}{\relax}
\ifthenelse{\thecalculate > 7 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{hard2}}{\relax}
\ifthenelse{\thecalculate > 8 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{easy1}}{\relax}
\ifthenelse{\thecalculate > 9 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{easy2}}{\relax}
\ifthenelse{\thecalculate > 9 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{semievaluation}}{\relax}
\ifthenelse{\thecalculate > 9 \AND \intcalcMod{\AMCStudentNumber}{4} = 0}{\shufflegroup{semiothers}}{\relax}

And it seems like this doesn't work anymore, when is use the package option noshufflegroups

Updated by Frédéric Bréal over 1 year ago

This my fault, i forgot to delete this paragraph :

Once a group is formed, it is possible to shuffle questions inside this group using the <command>\shufflegroup</command> command. For instance<programlisting>\shufflegroup{mygroup}</programlisting>

\shufflegroup is deprecated.
Choose one mode (fixed, cyclic, withreplacement, withoutreplacement) rather \shufflegroup.

Updated by Josef Eiglsperger over 1 year ago

But when choosing one mode, the question get shuffled within one group of students or stay the same after reaching the last question of a group of questionss (which means that agter that, every group of students will get the same questions from this group of questions).
To prevent this, I added the code above. So that after reaching the last question of a group of questions and after a new group of students starts, the group of questions will be shuffled again.

Updated by Frédéric Bréal over 1 year ago

Could you please post your file on the forum ou mail me (if confidential), if you don’t mind ?
I would like to try an idea.

Updated by Josef Eiglsperger over 1 year ago

I tried to make it not confidential, but still kept the answers, for example. That's why I'll send it to you via Mail and please you to treat it as confidential :)

Also available in: Atom PDF