Skip to main content

TentaMaker

Project description

TentaMaker

This Python package provides a system for building exams (tentor) at Chalmers.

Based on a pool of questions and solutions, the system generates exams both in the form of PDF files for printing and PNG files for inclusion in online exam systems such as Inspera or Canvas.

Documentation

First, install the package by the following command:

$ pip install tentamaker

Then, create a directory where you want to create and store the generated exams and enter the directory, for example:

$ mkdir exams
$ cd exams

Then, run the following command to create the initial structure for your exams:

$ init-exam

This will populate the current directory with a number of directories where the output will be stored. This will also create a directory named config containing the configuration of the exam.

To create an exam, you first need to build a pool of questions. Edit the file config/pool.tex to build the pool of questions. Each question should be entered in LaTeX in the following format

% X.y.z
Formulation of question.
% Answer
Solution to question.
%

See the file config/pool.tex for examples of how to write questions and solutions.

Each question has a label in the format X.y.z where X is a capital letter (A, B, C, ...) denoting which part of the exam that the question belongs to. The number y denotes the number of the question within the part X and the number z denotes a variant of the question. Each question can have many variants.

When generating exams, the last variant of each question is selected, unless the randomization option is set (see below).

The next step is to edit the configuration file conf/conf.toml to set the title of the course, the course code, name of examiner etc.

Once this is done, you may proceed to generate the exam by running the following command:

$ make-exam yyyy-mm-yy

Here, yyyy-mm-yy is the date of the exam. This will generate PDF files in the directory pdf and snapshots of the questions in the directory png.

The command make-exam supports a number of optional command-line arguments described below.

Add --randomize to randomize the selection of questions. The randomization uses the seed specified in conf/conf.toml. If the seed is missing, the seed will use a "non-deterministic" seed from the operating system.

Add --verbose to see more detailed output. This is useful for example if the process hangs at "Building PDF file..." to see what might have gone wrong when running LaTeX (pdflatex).

Add --no-snapshots to skip generation of PNG snapshots. This is useful during the creation of an exam (not creating PNG files until the exam is final).

Authors (in order of appearance)

License

This project is licensed under the MIT license.

Copyright is held by the individual authors as listed at the top of each source file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

tentamaker-0.1.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file tentamaker-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tentamaker-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for tentamaker-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3aed0b37108cb3a84be551224b3c0eced90f69318f04cd1edb2acc3d08a70dea
MD5 ab34766c3f65be9098fc58e37747df45
BLAKE2b-256 655d953613ff6c95d35eafab5499bb8bf436825e24cdc557bcd6753995636c89

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page