This tutorial explains how to create paper-based individualized multiple-choice examinations with isomorphic questions. Digital examinations are inherently insecure, whereas paper-based assessments offer a significantly higher level of security. The same authored questions can still be exported to learning management systems or digital platforms for practice or take-home use, but for high-stakes assessments, paper is preferable.
The steps below guide you through setup and exam creation. While there are several steps, most involve one-off preparation (such as installation and sample downloads).
dotnet --version
.
If the installation succeeded, you will see a version number such as 8.0.404
.
C:\Dividni
~/Dividni
C:\Dividni
.
Confirm with OK
until all windows are closed.
dotnet ~/Dividni/McqTestGen.dll -version
(MacOS/Linux) or
dotnet C:\Dividni\McqTestGen.dll -version
(Windows).
On Windows, you may instead run McqTestGen.exe -version
once PATH is set.
A successful installation prints something like McqTestGen version 24.11.12
.
A multiple-choice exam paper has three essential parts: (1) a cover page or section (prologue) with exam details and instructions, (2) the questions, and (3) an OMR (optical mark recognition) sheet, where students record their answers. Sample files are provided so you can try the workflow before creating your own. Download them here: https://dividni.com/tutorial/samples.zip and extract to a folder such as:
C:\Users\John\samples
~/samples
The McqTestGen
tool (part of Dividni) generates multiple versions of an exam paper.
Each student receives a unique but isomorphic script.
cd C:\Users\John\samples
(Windows)
or cd ~/samples
(MacOS/Linux).
McqTestGen.exe -prologue SampleCover.html -paperCount 2 ApplesAndOrangesMCQ.cs
(Windows)
or
dotnet ~/Dividni/McqTestGen.dll -prologue SampleCover.html -paperCount 2 ApplesAndOrangesMCQ.cs
(MacOS/Linux).
0000000000.html
and 0000000001.html
.
Open them in a browser and notice that questions differ slightly between versions.
The version number (with checksum digits) is shown at the top of each script.
-paperCount
(e.g., to 4) and check the additional scripts.-startID
to set the starting script ID, e.g. -startID 42
.McqTestGen.exe -proof -prologue SampleCover.html -paperCount 2 ApplesAndOrangesMCQ.cs
(Windows)
or
dotnet ~/Dividni/McqTestGen.dll -proof -prologue SampleCover.html -paperCount 2 ApplesAndOrangesMCQ.cs
(MacOS/Linux).
.html
scripts, .txt
answer files are generated.
Open 0000000000.txt
or 0000000001.txt
to see the tab-separated format:
question number, answer code, and mark.
(Answer codes: 1=A, 2=B, 4=C, 8=D, 16=E).
... NationalCapitalsMCQ.cs PrancingPonyLocationMCQ.cs
.xx
between questions:
... NationalCapitalsMCQ.cs .xx PrancingPonyLocationMCQ.cs
.
McqTestGen.exe -startId 42 -paperCount 200 -prologue SampleCover.html -omr OmrTemplateSouthernHem.svg ApplesAndOrangesMCQ.cs NationalCapitalsMCQ.cs PrancingPonyLocationMCQ.cs
(Windows)
or
dotnet ~/Dividni/McqTestGen.dll -startId 42 -paperCount 200 -prologue SampleCover.html -omr OmrTemplateSouthernHem.svg ApplesAndOrangesMCQ.cs PrancingPonyLocationMCQ.cs
(MacOS/Linux).
Proficient C# programmers can write questions directly in C#. However, most instructors will prefer the online editor at Dividni.online, which allows you to create questions without coding.
McqTestGen
.
Once your question looks satisfactory, copy the downloaded C# code to your local machine.
Use it with McqTestGen
as shown earlier (see point 3 of “Creating your first exam paper”).
<img>
tag.
Example: <img src='hello.png' style='width: 75%;' alt='pix'/>
-math katex
or -math mathjax
.
Example (Windows):
McqTestGen.exe -math katex -paperCount 2 -prologue SampleCover.html ApplesAndOrangesMCQ.cs QuadraticEqMCQ.cs
Example (MacOS/Linux):
dotnet ~/Dividni/McqTestGen.dll -math katex -paperCount 2 -prologue SampleCover.html ApplesAndOrangesMCQ.cs QuadraticEqMCQ.cs
ApplesAndOrangesMCQx2.cs
.
Replace ApplesAndOrangesMCQ.cs
with ApplesAndOrangesMCQx2.cs
to try it.
-css exam.css
.
Example:
McqTestGen.exe -css exam.css ...
(Windows)
dotnet ~/Dividni/McqTestGen.dll -css exam.css ...
(MacOS/Linux)
To conduct exams, print the generated HTML exam papers. Optionally, you can convert them to PDF and merge into a single file for easy distribution to printers. You can use tools such as ChromiumHtmlToPdf to batch-convert HTML to PDF.