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.5-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bf50801348ababe0bc71d44aad77e96da5f16324826babae3399a04c7126f84 |
|
MD5 | 83ec606cfa6246ac0326d04edd1d2dc5 |
|
BLAKE2b-256 | 4ace6696627703b5617ab4b089ad2858b2ed20c4be6ccb16d791779821a0dc94 |
Hashes for qpt_generator-0.1.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce0cd81554775a6ad1fc6924f19e8ba49e367a274c04bb0c20a68c56fd34d755 |
|
MD5 | 0e5456adeeecf81db4aaa3e8b6d55cbc |
|
BLAKE2b-256 | a5c020805df699c179bf09094561009d935d755514ada8648106b08407cd5173 |
Hashes for qpt_generator-0.1.5-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9096185460c3b33ea57faaf675d3499974fda8ca315dc1eea280d39ea6982d02 |
|
MD5 | 62ed949b471463bcae4a2cafa836f2cd |
|
BLAKE2b-256 | a97058278199bba9698cf916a4686eb28910f39b39b415de485cba32151ed0c5 |
Hashes for qpt_generator-0.1.5-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eebd8f74fdcd063d840ff8e35d12012bec7546cdd3b0c47428f813d8b40c49a7 |
|
MD5 | ff53b77591c846e55f824b94ef4f334d |
|
BLAKE2b-256 | 3e802e8361d290845a6312d61af58485587d0d0f35c9f476049307a372b63b4b |
Hashes for qpt_generator-0.1.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7415fa7515ce6a637a5c71b44297b81fa38b9acf65e08379ffacaf65d020e23f |
|
MD5 | 8af45bdde5834dcccb7a0c530e92cde4 |
|
BLAKE2b-256 | 899439b65004b6cc309b563ea9c74f171b941e036281d69c9432c4312dc8c39c |
Hashes for qpt_generator-0.1.5-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62dea5ae1ecead9d19f20e68794511a9443e9fb7f7aa16a967b594ba942bbdbe |
|
MD5 | 248633f133c828e61004a2dd37a42265 |
|
BLAKE2b-256 | 59fef02e1cbdb6b8f215461ba154d99169e8043b70d5334fb360657c831cdfbf |
Hashes for qpt_generator-0.1.5-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5194eab1b10a55cca382a9bfa5efb52fb584cec831e0a73600e1a4a177e6ac6a |
|
MD5 | fcb3b75e1d66449d58011452fd766d2f |
|
BLAKE2b-256 | 1a1ce76020c37a8f88e64cc5772a644f37a0339ee7ec30ef81ffd915d815aef7 |
Hashes for qpt_generator-0.1.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e783bff3f2af230672bc3e38f87a12aaf568fa6a7d4a20600cc7c631e49b84b3 |
|
MD5 | e51106e07ffddaf7993e5534bfafae65 |
|
BLAKE2b-256 | c9b1a4a07d61f32c92f0e4c1214ff10b97b58f897ccb46c2f0c3dd3aa2dc18c8 |
Hashes for qpt_generator-0.1.5-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7adde6f2e6ea3933407e96d8cb8858a3046165efc91b796ae2a8cc7df94de96 |
|
MD5 | 0605c38e1bcd89d1e18f9293235098f1 |
|
BLAKE2b-256 | 61ff4a6402c6cb1e06e3e8a664d7ac56c406e5b782544d399d71cf74331d8df1 |
Hashes for qpt_generator-0.1.5-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c8a1c6c1971efc5739078bd0516d158cd67092d86e1853c45e80bcf2948c704 |
|
MD5 | 8a8c9c8120f89d1f732e1ddcb97bbb98 |
|
BLAKE2b-256 | c8bca61ebb4a40f06be34c4ce38ca77730c8baa40a78eed803b782da6ef68f75 |