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
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 |
Hashes for qpt_generator-0.1.7-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bb79aeb2b5b1147322a3d8bb4269e75fb30d2b8a521ad94939197789a85bfc4 |
|
MD5 | f0f8a1b31a83a75fe2d9e0197055ed11 |
|
BLAKE2b-256 | 62ffd945fe6ddeaca02a6f26603be11f3f5f6b8d94a7aaebd3369c5b97c8a236 |
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 |
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 |
Hashes for qpt_generator-0.1.7-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71e02dd10ad1c6b0236fb714f8ea1e5d0a3726c1edcdd8e47955952e61959159 |
|
MD5 | 64b4f11e3c5b53eac8a3ba9ebd03d7a0 |
|
BLAKE2b-256 | 81d4ac5947c58047851c29a073d7e0c56ec7b381fc009914c5232e72fc02e726 |
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 |
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 |
Hashes for qpt_generator-0.1.7-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bac7e4d6634a6d12769a9e0119e6859c4f8c487143da783ee8155fddea790db9 |
|
MD5 | cf2352a44417790383106abc5e0efa1e |
|
BLAKE2b-256 | 32f657e6fd554cefe9511ff28a9022eb86af8c18ed02e42bdbbbd60b0680c1f8 |
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 |
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 |