To produce these you will need
Question file This should be written in a mixture of TeX and
special codes, as follows. It should begin with two lines in the form
%!c maxxxqn
\def\coursename{MAXXX}
to tell the program multchqn.f the correct name of the file
(maxxxqn.tex) and the name of the course (MAXXX) to appear on the
question papers. Following these is the list of questions.
Each question should be preceded by a line
of the form
%!l nn
(where nn is an integer; there must be at least two blank spaces
after the %!l ) to tell the program multchqn.f when the question can
be used (on and after the nn'th lecture, so that the first test,
in lecture 2, will use only questions preceded by %!l 1
or %!l 2). The question itself must be written in
the form
\def\qnXX{[question]
\def\ansa{[answer 1]}
\def\ansb{[answer 2]}
\def\ansc{[answer 3]}
\def\ansd{[answer 3]}
\def\anse{[answer 4]}}
(note the exact arrangement of the braces { and }), where
any string of letters can be used in place of XX (but any particular
string can be used only once). The sections [question] and
[answer 1], etc., can be any correct TeX expressions, but must not
include blank lines (use \par if you need a new paragraph).
Example:
%!l 2
\def\qnAA{Which of the following
are true for all real numbers $x$ and $y$? \dbhfill[AA]
\def\ansa{$|x+y|\le|x|+|y|$}\def\ansb{$|x-y|\le|x|-|y|$}
\def\ansc{$|x+y|=|x|+|y|$}\def\ansd{$|x+y|\ge|x|+|y|$}
\def\anse{$|x+y|<|x|+|y|$}}
I recommend the interpolation "\dbhfill[XX]" so that when marking
the question you can refer it at once to its name as used in the
Question and Student files. In my experience students rarely learn
the code.
Student file This is a list of students' names followed by
priority questions, one line per student, each line being in the form
Albert EC RBB TC TD TC TB TB SC SB NC GD AM GD AM
The codes EC, RBB etc. correspond to the questions \qnEC, \qnRBB
in the Question file. The student's name (here "Albert") must be
without spaces.
"Priority questions" can be repeated indefinitely (as on the example
offered). I have found that putting a question on a student's list
twice each time it is answered incorrectly leads to sensible patterns;
the weakest students get rather a lot of repeats, which I think is
what they need.
I myself always include a dummy line (e.g., with the name "Sample" and no
priority questions)
so that I can see at once that the output is sensible.
If for any reason you wish not to include a particular student
in a package of test papers, you can exclude him/her by
putting a # at the start of the line, as
#Frances HA NC RBA KCA EC EA AK SC RA FB TD TC IA LB EB LB EB
multchqn.f I make no claim for this program
except that it compiles
and runs on the Unix server at the University of Essex and the
random-number generator has period 494872.
The program will start by demanding "Lecture number please"; you
reply with an integer to tell it when the test will be
taken. It picks eight questions out for each student, in each
case offering four of the five answers presented (in random order)
together with a final alternative "(e) none of these". The questions
chosen are taken from three lists:
(i) the questions "new" at the current lecture;
(ii) the questions on the student's priority
list;
(iii) all questions permitted so far.
It starts with three questions from list (i), one question from
list (iii), and then up to about a fifth of the questions from list (ii).
If the package of eight questions is not yet reached, it works through
the lists in turn to fill the basket. At all times it takes care
not to ask the same student the same question twice on the same
paper (provided, that is, that you have
not duplicated the question in the Question file.)
Output file multch.tex This is a plain TeX file to generate question papers, one or more sheets for each student; you compile it with "tex multch" or whatever you usually do with TeX files.
Output file multchst.datout This is an updated version of the Student file, deleting (one instance of) a question from the appropriate priority list if it has been set on the current paper.
Remarks Of course the files multchst.datin, multchst.datout and multch.tex are temporary, used once only for each run of the program multchqn.f . I use simple batch programs to copy the "real" files in and out. Note however that it is rather easy to make mistakes (for instance, you will regularly have to tweak the lecture numbers in the Question file, and you may forget; and of course if you put a new question in you may find that the TeX code doesn't work). So I recommend not moving the file multchst.datout to its proper place until you have printed the test papers out and are sure they are what you want.
After half a dozen lectures it will be obvious that certain questions are giving disproportionate difficulties. In the second half of the course I think it is worth while taking the time to discuss a specific question in each lecture, if this can be done without breaking a proof in two.
Back to ten-minute-test introductory page.