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:
- 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
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8eb6df56dd77fed7fb3205d8afea862b33033e267fe28fa32e2b3fd1896bb0f |
|
MD5 | a4d9b1cec051a4feba3daafce9750d39 |
|
BLAKE2b-256 | c0381fbb5213305467fdb47108d9401120feb81c0cec6108eaf945e51d8d3a88 |
File details
Details for the file qpt_generator-0.1.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: qpt_generator-0.1.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 337.1 kB
- Tags: CPython 3.9, manylinux: glibc 2.12+ 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.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff1db9d2f24d7e797a58dadc7b646bfd379f7b5b834985652f78246f3dfffbe0 |
|
MD5 | efdf0a5b0c6bc69ffb637dbdc44ee7ee |
|
BLAKE2b-256 | 1ad4fa18358c5ee13102712d737d65a27dd60d4475fbfb7311ac0a7c49631d84 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bb79aeb2b5b1147322a3d8bb4269e75fb30d2b8a521ad94939197789a85bfc4 |
|
MD5 | f0f8a1b31a83a75fe2d9e0197055ed11 |
|
BLAKE2b-256 | 62ffd945fe6ddeaca02a6f26603be11f3f5f6b8d94a7aaebd3369c5b97c8a236 |
File details
Details for the file qpt_generator-0.1.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: qpt_generator-0.1.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 336.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.12+ 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.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3838ef7056d2d02cb2ba8975ccf2d909db10b96d3e34e1c1b1bb2b63bac92ee7 |
|
MD5 | ec4a0c3c7d29c9b387f93deaa2adb98e |
|
BLAKE2b-256 | 015597a9cdb9676a2ddeacb706b9353d838c08d814e7796cab5886c19536a6e7 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccc81f620d5994a0b0e787d20a6bb8e1cddba67e3ce8eaf50a608aafd6fcb592 |
|
MD5 | a5ad1bdfb99e57715ff02f2a29961c08 |
|
BLAKE2b-256 | 09d5996af4c0194badebf70904d15794f35aea605d957a460b9ce796da6f92f1 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71e02dd10ad1c6b0236fb714f8ea1e5d0a3726c1edcdd8e47955952e61959159 |
|
MD5 | 64b4f11e3c5b53eac8a3ba9ebd03d7a0 |
|
BLAKE2b-256 | 81d4ac5947c58047851c29a073d7e0c56ec7b381fc009914c5232e72fc02e726 |
File details
Details for the file qpt_generator-0.1.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: qpt_generator-0.1.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 334.2 kB
- Tags: CPython 3.7m, manylinux: glibc 2.12+ 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.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4566490173114eedf6ed93308f00d14e69e9bfa319cdea71e4d2bdd3c5ba0ab2 |
|
MD5 | 6838f7cce417b0ba3691a7f9985b4356 |
|
BLAKE2b-256 | d743223f8651f7547a5da3c10685ac807ca57b0befc0364be9647a2e81f041be |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 768dcd3b71fb54c1b69ce2591c177927c0ae2769eaa7d7e3c8149691f42b6931 |
|
MD5 | 1d1497a076d2d07b660564fcc0e63668 |
|
BLAKE2b-256 | 74fc78653ffe61609505197b993c77fd5ebdd6c9539a14190556fb0bb4460d09 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | bac7e4d6634a6d12769a9e0119e6859c4f8c487143da783ee8155fddea790db9 |
|
MD5 | cf2352a44417790383106abc5e0efa1e |
|
BLAKE2b-256 | 32f657e6fd554cefe9511ff28a9022eb86af8c18ed02e42bdbbbd60b0680c1f8 |
File details
Details for the file qpt_generator-0.1.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: qpt_generator-0.1.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 333.9 kB
- Tags: CPython 3.6m, manylinux: glibc 2.12+ 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.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2cc126076aa9b3d67cea1bb7e3250eeceb5b2c81d89d395b0a71ba8b6b6771b |
|
MD5 | f7e6477de730a23a9d3eeb2680c98f47 |
|
BLAKE2b-256 | 3bb21a0b9c44caa95d67816facd0406979bc1fd043db848c8af59363451c5561 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0957b5418e33cf04bf8512a0d93ab6f427d1f82a24f6d86fb0bfaf7ef7c8556d |
|
MD5 | 80986e307d9da47f5e783aaf81340b5d |
|
BLAKE2b-256 | 342cd1e0ce5c3178aef7489c4f11ffb399d837de37da98c77d04d6ed7ed4f498 |