much: a program to generate random multiple-choice questionnaires using LaTeX

much is a program to help generate and grade lots of similar but different multiple-choice questionnaires. The output of much is a LaTeX file which contains the questionnaires.


The program was developed with the following situation in mind: suppose you need to administer a test to a few hundred students and that you have decided that this test will be a multiple-choice test, which makes for easy grading. Just feed the answers to a simple computer program and out come the grades of the tests. But you would also like to make sure that the students' answers are not influenced in any way by the answers of those sitting next to them, a subtle point for multiple-choice testing as the information regarding the answers to the test can be represented in such a compact form.


much is a command-line tool. It works in either creation (much create ...) or grading (much grade ...) mode. The tests to be created as well as some parameters of the grading process are described in a single file written in a simple language.

The approach taken with much is to generate a big number of tests, possibly even one for each student who takes the test. The questions asked on each test will not be the same, although we usually take care to select the same number of questions to go on each test from each of some desirable categories of questions. For example, we might want to make some tests using 2 questions from category A (which contains, say, 5 questions), and 3 questions from category B (which contains 6 questions). much will choose then, for each test it generates, a random subset of size 2 from the 5 questions of category A and a random set of size 3 from the 6 questions of category B. Finally, once the questions of each test have been decided upon, their location in the test is also randomized as is the ordering of the answers for each question.

Each such test receives a serial number and information is kept about which answers are the correct ones for each serial number. much can grade the answers to these tests if it knows for each answered test the serial numbers and the corresponding given answers.

much creates a file in LaTeX which can be read in by an appropriate wrapper LaTeX file. This file specifies the general look of each exam paper. The wrapper LaTeX file is then compiled by the user as usual and its resulting dvi file printed.

Examples and documentation


much-0.03.tgz, source for Unix/Linux. (69 KB, 29 Apr 2006), binary for MS Windows (80 KB, 29 Apr 2006). If you do not have cygwin installed on your machine you'll need to get the file cygwin1.dll (e.g. from here) and copy it somewhere inyour PATH, for example in your \WINDOWS directory.

I would appreciate any comments/bug reports.

Mihalis Kolountzakis (kolount AT