Ten-Minute Tests: instructions

To produce these you will need

  • the Fortran program multchqn.f;
  • a "question" file, carrying the questions and proposed answers in a special format based on plain TeX;
  • a "student" file multchqn.datin, with the students' names and lists of questions which should be given priority for each student;
  • the TeX macro files multch.aux and fremtex.tex.
    The output comes as two files:
  • a TeX file with the name multch.tex;
  • a "student" file multchqn.datout.

    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.