Skip to main content

Generates variants of exam questions using texsurgery, keeps a question database, exports to pdf and moodle

Project description

pyexams

Generates variants of exam questions using texsurgery, keeps a question database, exports to pdf and moodle.

Much like R exams, but with the following (main) differences:

  1. R-exams requires use of R for both creating exam variants and managing R-exams itself, while pyexams allows any language for exam creation and is called from a command which can be incorporated into your favorite LaTeX editor.
  2. R-exams keeps each question in a separate file, then use a simple R script to compose the whole exam, while pyexams use a single LaTeX file for the whole exam.
  3. Both R-exams and pyexams keep a record of past exam questions, but pyexams also keeps a database that can be queried in order to find, for instance, all questions with the tag derivative that appeared in exams at least two years ago. The question code is also saved in plain text and managed in a git repository, which simplifies the management of a shared question bank, whether group-private or totally open.
  4. Last but not least, R-exams is a mature and feature rich project, while pyexams is a very young project that still has to deliver.

Other important design decisions involved in pyexams:

  • The syntax for the questions is exactly that of auto-multiple-choice
  • We will use amc2moodle (or a custom version of it) to generate the moodle question bank.
  • pyexams strives to feel as close to LaTeX as possible to its users, which paradoxically is better done through texsurgery than through a LaTeX package.

Warning: Proof of concept

This is still a very early version, published to share some points with our colleagues, but that still does not deliver the expected results. Please do not use yet it for your real exams.

Installation

python3 -m pip install pyexams

Usage

cd examples
# generates a pdf for the first student in the list (useful for testing)
pyexams amc2moodle.tex
# generates one pdf for each first student in the list (runs in parallel)
pyexams amc2moodle.tex -all
# generates a moodle question bank
pyexams amc2moodle.tex -moodle  

Talk at ENSEMAT II

The motivation behind this project and its design decision was presented (in spanish) at a talk at ENSEMAT II

Project details


Download files

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

Source Distribution

pyexams-0.0.4.tar.gz (7.3 kB view hashes)

Uploaded Source

Built Distribution

pyexams-0.0.4-py3-none-any.whl (9.1 kB view hashes)

Uploaded Python 3

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