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.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4db59a94202d90ef3d7f6d988b7143a0c5bd254bc75fbf11130495a34f1e86f |
|
MD5 | 3187168ade6d4591077cc4f4d1a31add |
|
BLAKE2b-256 | ae0c0ee941e63d77b88cda139b2383369a554b283d14486176534c3fe557c237 |
Hashes for qpt_generator-0.1.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bf573b99845738faca649f323731a596536f316c704eb12760aba01fe299dd3 |
|
MD5 | 0b36f4ac5eb0843a1c54f7b249a3a85e |
|
BLAKE2b-256 | 2bd42c1ba27d87688fc9dc4866b713105cfcfb5cb6bd0de741849b31cd061578 |
Hashes for qpt_generator-0.1.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c1f599c12cbd676493d819f0f9a61f2f5aa8516cc7ac495386f080b475a3fc1 |
|
MD5 | b920a8ae9e9f0a242fdd52ccca3c7e98 |
|
BLAKE2b-256 | 66db3b3afff86a88555f86bbd9e45ecf2e2764f5452518644993afad59da4ac3 |
Hashes for qpt_generator-0.1.6-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b8a2bce364d5c958eaef6cd19ed09c0777510c86b0d6262bbd62cfe6b1c8e60 |
|
MD5 | 2db7f304477f19d2bf38c93b72059b08 |
|
BLAKE2b-256 | 234689a74198f730d725067c7789921bfcd3cda84acd49485f3546bdf8daf74e |
Hashes for qpt_generator-0.1.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecdc4dc6603cd6babc576f4eb86d8302fad7ef4ad007dd4adf76d1813b629972 |
|
MD5 | 143063358eb76e92ea1e8535552d8dc7 |
|
BLAKE2b-256 | 48a75c3f37818f4c759e3f0af9204f42a632645bd80c3c48c372e699caab003b |
Hashes for qpt_generator-0.1.6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9884e4424e52dce0bb48dcc427772d6e9eb81357182f634c39895005943cf930 |
|
MD5 | d81403a882e0358e9bc1384993523222 |
|
BLAKE2b-256 | 73bffe611aa32afe73c490276a8157f940e220a1472fb850f9eb6f6cc93ab742 |
Hashes for qpt_generator-0.1.6-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f97ec9fe870733a3f1cd0c6b4fdd434662a08f138f992e9010308412ce558f1b |
|
MD5 | 4e1120080363ebe02a8cd65f10119e7c |
|
BLAKE2b-256 | 260f92121cbdd4f2afdf5be195eb9cbacefded5532c653be0bfd1dde5933f23b |
Hashes for qpt_generator-0.1.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56919531fa5275f3e6478b0df6bef673721dda3702c8de1a7f9f911906e3d4c4 |
|
MD5 | 9e54b4daeeaea2cc6b64ff4d5e269aa1 |
|
BLAKE2b-256 | 4c888e3d66ed9be080e4f7d493600771936735f3afee3a46d2112f3dd27fd3c7 |
Hashes for qpt_generator-0.1.6-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2d90079eb98ef5272323a732b3e7c9ce0fe5f084a2ee12eb66951f202cb09ca |
|
MD5 | 8847e0c8c7ef876deef5c0ab0c1aa70b |
|
BLAKE2b-256 | 7156b1732f0bb673f28f218e9bd7c7287e8be46b5fdae68e52c375b88cd14696 |
Hashes for qpt_generator-0.1.6-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80f71149fdd2fbe6c902db0fb17255404d8fc0fed0c70febc76344712149a7be |
|
MD5 | e0923bdd0e74c5235ced9dee78a438c2 |
|
BLAKE2b-256 | bca91a51c430abdf5960f124ab3c3722a50120f0ab3109bb40bef7b28c7131ce |