Skip to main content

Question Paper Template Generator

Project description

qpt_generator

An implementation of Question Paper Template Generation Algorithm written in C++ to provide high performance. It uses Cython internally to create python package.

Introduction

Generation of question papers through a question bank is an important activity in learning management systems and educational institutions. The quality of question paper is based on various design constraints such as whether a question paper assesses different problem solving skills as per Bloom's taxonomy, whether it covers all units from the syllabus of a course and whether it covers various difficulty levels.

I have implemented algorithm written by Vaibhav M. Kale and Arvind W. Kiwelekar for question paper template generation in C++ to provide fast performance. Implementation is extensible in terms of constriant it support to create question paper template.

The qpt_generator package was motivated by the needs of my academic project Question Paper Generator.

Installation

You can install qpt_generator using easy_install with following command:

pip install qpt-generator

or

easy_install qpt-generator

Usage

After installing module, you can import it using following command:

from qpt_generator import QPTGenerator

You have to provide two inputs to the constructor of QPTGenerator:

  1. A dictionary of constraints and lists of distribution of mark
    Ex: if you want to generate paper with 4 constraint:
  • Unit-wise distribution of marks
  • Difficulty level-wise distribution of marks
  • Cognitive level-wise distribution of marks
  • Question-wise distribution of marks
  1. A list of question no. associated with list of question-wise mark distributions. Repitition of same question no. indicates subquestions of that question.

Output will be generated when you call generate method of the QPTGenerator class. Here, output is a dictionary of list of the alloted unit, cognitive level, difficulty and mark by question no.

from qpt_generator import QPTGenerator
mark_distributions = {
    "question": [5, 5, 10, 4, 6, 5, 5],
    "unit": [8, 8, 8, 5, 11],
    "difficulty": [13, 15, 12],
    "cognitive": [12, 18, 10],
}
question_no = [1, 1, 2, 3, 3, 4, 4]
qpt = QPTGenerator(mark_distributions, question_no)
output = qpt.generate()

# output = {'cognitive': [2, 3, 2, 3, 3, 1, 3, 1, 1, 2],
#           'difficulty': [3, 1, 2, 2, 1, 3, 3, 1, 2, 3],
#           'question': [5, 5, 8, 2, 2, 1, 1, 6, 5, 5],
#           'question_no': [1, 1, 2, 2, 3, 3, 3, 3, 4, 4],
#           'unit': [4, 5, 1, 3, 2, 2, 3, 5, 2, 3]}

To satisfy all given constraints: question 1 should have 2 subquestions:

  • first question should have cognitive_level = 2, difficulty = 3, unit no.= 4 and mark = 5
  • second question should have cognitive_level = 3, difficulty = 1, unit no.= 5 and mark = 5

You can randomly select this kind of questions from your question bank database if it exists.

References

  1. An Algorithm for Question Paper Template Generation in Question Paper Generation System

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

qpt_generator-0.1.7.tar.gz (40.5 kB view details)

Uploaded Source

Built Distributions

qpt_generator-0.1.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (337.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp38-cp38-win_amd64.whl (76.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

qpt_generator-0.1.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (336.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp38-cp38-macosx_10_14_x86_64.whl (71.0 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

qpt_generator-0.1.7-cp37-cp37m-win_amd64.whl (75.6 kB view details)

Uploaded CPython 3.7m Windows x86-64

qpt_generator-0.1.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (334.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp37-cp37m-macosx_10_14_x86_64.whl (71.0 kB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

qpt_generator-0.1.7-cp36-cp36m-win_amd64.whl (75.8 kB view details)

Uploaded CPython 3.6m Windows x86-64

qpt_generator-0.1.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp36-cp36m-macosx_10_14_x86_64.whl (71.1 kB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

File details

Details for the file qpt_generator-0.1.7.tar.gz.

File metadata

  • Download URL: qpt_generator-0.1.7.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for qpt_generator-0.1.7.tar.gz
Algorithm Hash digest
SHA256 a8eb6df56dd77fed7fb3205d8afea862b33033e267fe28fa32e2b3fd1896bb0f
MD5 a4d9b1cec051a4feba3daafce9750d39
BLAKE2b-256 c0381fbb5213305467fdb47108d9401120feb81c0cec6108eaf945e51d8d3a88

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for qpt_generator-0.1.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ff1db9d2f24d7e797a58dadc7b646bfd379f7b5b834985652f78246f3dfffbe0
MD5 efdf0a5b0c6bc69ffb637dbdc44ee7ee
BLAKE2b-256 1ad4fa18358c5ee13102712d737d65a27dd60d4475fbfb7311ac0a7c49631d84

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: qpt_generator-0.1.7-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 76.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.10

File hashes

Hashes for qpt_generator-0.1.7-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7bb79aeb2b5b1147322a3d8bb4269e75fb30d2b8a521ad94939197789a85bfc4
MD5 f0f8a1b31a83a75fe2d9e0197055ed11
BLAKE2b-256 62ffd945fe6ddeaca02a6f26603be11f3f5f6b8d94a7aaebd3369c5b97c8a236

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for qpt_generator-0.1.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3838ef7056d2d02cb2ba8975ccf2d909db10b96d3e34e1c1b1bb2b63bac92ee7
MD5 ec4a0c3c7d29c9b387f93deaa2adb98e
BLAKE2b-256 015597a9cdb9676a2ddeacb706b9353d838c08d814e7796cab5886c19536a6e7

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: qpt_generator-0.1.7-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.11

File hashes

Hashes for qpt_generator-0.1.7-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ccc81f620d5994a0b0e787d20a6bb8e1cddba67e3ce8eaf50a608aafd6fcb592
MD5 a5ad1bdfb99e57715ff02f2a29961c08
BLAKE2b-256 09d5996af4c0194badebf70904d15794f35aea605d957a460b9ce796da6f92f1

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: qpt_generator-0.1.7-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 75.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.9

File hashes

Hashes for qpt_generator-0.1.7-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 71e02dd10ad1c6b0236fb714f8ea1e5d0a3726c1edcdd8e47955952e61959159
MD5 64b4f11e3c5b53eac8a3ba9ebd03d7a0
BLAKE2b-256 81d4ac5947c58047851c29a073d7e0c56ec7b381fc009914c5232e72fc02e726

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for qpt_generator-0.1.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4566490173114eedf6ed93308f00d14e69e9bfa319cdea71e4d2bdd3c5ba0ab2
MD5 6838f7cce417b0ba3691a7f9985b4356
BLAKE2b-256 d743223f8651f7547a5da3c10685ac807ca57b0befc0364be9647a2e81f041be

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: qpt_generator-0.1.7-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.11

File hashes

Hashes for qpt_generator-0.1.7-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 768dcd3b71fb54c1b69ce2591c177927c0ae2769eaa7d7e3c8149691f42b6931
MD5 1d1497a076d2d07b660564fcc0e63668
BLAKE2b-256 74fc78653ffe61609505197b993c77fd5ebdd6c9539a14190556fb0bb4460d09

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: qpt_generator-0.1.7-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 75.8 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.6.8

File hashes

Hashes for qpt_generator-0.1.7-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 bac7e4d6634a6d12769a9e0119e6859c4f8c487143da783ee8155fddea790db9
MD5 cf2352a44417790383106abc5e0efa1e
BLAKE2b-256 32f657e6fd554cefe9511ff28a9022eb86af8c18ed02e42bdbbbd60b0680c1f8

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for qpt_generator-0.1.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a2cc126076aa9b3d67cea1bb7e3250eeceb5b2c81d89d395b0a71ba8b6b6771b
MD5 f7e6477de730a23a9d3eeb2680c98f47
BLAKE2b-256 3bb21a0b9c44caa95d67816facd0406979bc1fd043db848c8af59363451c5561

See more details on using hashes here.

File details

Details for the file qpt_generator-0.1.7-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: qpt_generator-0.1.7-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.6.14

File hashes

Hashes for qpt_generator-0.1.7-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0957b5418e33cf04bf8512a0d93ab6f427d1f82a24f6d86fb0bfaf7ef7c8556d
MD5 80986e307d9da47f5e783aaf81340b5d
BLAKE2b-256 342cd1e0ce5c3178aef7489c4f11ffb399d837de37da98c77d04d6ed7ed4f498

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