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 Distributions
Built Distributions
Hashes for qpt_generator-0.1.2-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45641c0767a79dc8be8b48a6d088111e8be886659af81da60b67a447ff906721 |
|
MD5 | 12e0875254230a15320c9ad9f2c8b2af |
|
BLAKE2b-256 | 6ae9b85709b4423821116d8c86d56e1770115b6a5cdc0583ec09a1545d9825e6 |
Hashes for qpt_generator-0.1.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc156906d65dff523320e22c1d0a973c98abc253bf40e82db94a8e42d3e8a1f3 |
|
MD5 | 2907ba15dea083820fb170b8292f62ed |
|
BLAKE2b-256 | 56e4c7697b09a5363d11f865b2424e06fcf2ccdaf5b7ae81664936fd99cae0ff |
Hashes for qpt_generator-0.1.2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1137d7fa795c9e70fffacccf2afacb7f3fd330766c076e11f6b76770e0a0e03b |
|
MD5 | 94212156568086f85ef135bf53196c97 |
|
BLAKE2b-256 | bf7a157fec5201138f6c49923f4decca17eb465b27646b7fee4d62a754296b40 |
Hashes for qpt_generator-0.1.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae4c9d050314e92408d540c51b08b6226a25011aa528b9819a4e9144487e7569 |
|
MD5 | 3a183054874c29ceb5f6c75dafa01f31 |
|
BLAKE2b-256 | d9029ea1a64d800c3c24da6932973b2472862349318bc13017784ca6731971e4 |
Hashes for qpt_generator-0.1.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 325dbf684cf4f7294a037ffc4ac027bddb9ac870704ebc07eb65dcfa5dba877e |
|
MD5 | e248508c243fbe8557be97a32b9b1b4c |
|
BLAKE2b-256 | 31ceabc2f431f6f646381d635e11480e9333dc8400d36ead6b4021dcf9be6fe6 |
Hashes for qpt_generator-0.1.2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2675a33ad957bf5c5dc9ba06e6465ca17790c08da498ef2a2681f195e8fa96d |
|
MD5 | 799fc99f19a3462c49ef2d2cc426fa3a |
|
BLAKE2b-256 | d3a252f859b5890271ea680361ae76a09ed05d46aaeee56861c0cb7b3b203f37 |
Hashes for qpt_generator-0.1.2-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d10bf7e0011edf321c4e5a958288c659c57560e7313cf4dffad522c52b314840 |
|
MD5 | bace4fc2252a08578cc0cd774e987d8f |
|
BLAKE2b-256 | 4faab03b97168fbf26002813d538c2aa199bed14fa92efd94c889c8578e9ebf6 |
Hashes for qpt_generator-0.1.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e57205b7960c66b50c1d84dae32f726117a67f37d75a62253c71d9cf2d1b859 |
|
MD5 | f79dbb70f1ce5b783bbced8d91646a08 |
|
BLAKE2b-256 | b589cb27b4001525c2e29b568300a27798dc283ea6e9a466cc246c9bca7e049f |
Hashes for qpt_generator-0.1.2-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c41c8883b5f4e844964abae87e6c0854a9071dbe934a050fd19f0fe7ebf196e |
|
MD5 | c239150aae6b19b14e15cf91e94c088e |
|
BLAKE2b-256 | 284c39253c13608a08768e3b77888cc084183c9d25800d257bf5279868a0c8d0 |
Hashes for qpt_generator-0.1.2-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87f7c0e4b80a2b7d6d8f12f2cf4c93e986f4cee1f8188990c1fe2a9fed049e85 |
|
MD5 | 23cd8cbde446f0acd5975a80b76016e1 |
|
BLAKE2b-256 | 9fae87e5eb5c5db6e64a161963ba079a3d858ba91a04df807b34f9c07d04103b |