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.3.post1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a78e82a3ea482d15b637b7798c96994a434c76945b727c1e1ceb55967ee3362 |
|
MD5 | 7350d94e1cbf5107c71e5e5ad700632f |
|
BLAKE2b-256 | 91c17a5206eb5880fe7075a95e0cdc53abb99a42766b2950c74edf37e070b08a |
Hashes for qpt_generator-0.1.3.post1-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 637627be9342fcb1db03b90c1432592afbd5ead42fcc49b4d353991b32f8334c |
|
MD5 | 83d8ca69787a94b6c256f8b1602e4725 |
|
BLAKE2b-256 | 2b5c577ffda2ff740b9e8684f9d0919162f3d6b72a8fb767377820fb21972905 |
Hashes for qpt_generator-0.1.3.post1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e695434cd45b328ddbd72dffaf5110661c686843650b5951388a739e52b8765f |
|
MD5 | b1266e788b3c5668ce7ebeae33b7f325 |
|
BLAKE2b-256 | 5a5e8e6545fbfa34893cb099d40a109f5f3ef982e2ff38c0404b866447b5c267 |
Hashes for qpt_generator-0.1.3.post1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b01cf3ceacf6e0c9043ba60e2eb80c1b6c5931ca78030e9663e16863e176d553 |
|
MD5 | e366ddd73267426ec5878ed468b209c7 |
|
BLAKE2b-256 | d2cebaf5b194235d7e305042a07b1d652be66279ed6393b3f8504147ea5a20fd |
Hashes for qpt_generator-0.1.3.post1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af5d89496be31181fa65315bb5b6e2561f2ea172d8232c9f2066dd6b76fa6413 |
|
MD5 | 0701b68744eb16bee2cb16654db0ce4e |
|
BLAKE2b-256 | 38a960937b8c4563f8e1723874675b85494ac0a9d81a3586985b95869e1472a3 |
Hashes for qpt_generator-0.1.3.post1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de83513aa25ded83dd6b603654a088a15abac184ecd82fae41fbe4f8dd6c1632 |
|
MD5 | ee965a309251b415fbaf94977988b2ba |
|
BLAKE2b-256 | 84df6b16ce955f25c3700f9e2aa964b941a08d4f187fbfbf303a7ff3c8cbe531 |
Hashes for qpt_generator-0.1.3.post1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 138837c7ee6a7e92717ecb32698f04087191c9443ec5c135a1d8084533a3db37 |
|
MD5 | ea5c74dc2392ca974fa9776ad8c5dae7 |
|
BLAKE2b-256 | 4031cc6c3080725c309179716e3cbc6813ec3e5e107c4fdddcdcc42e530ca9ac |
Hashes for qpt_generator-0.1.3.post1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35bae51c5d060df09f1daa6eccff81191ab2f01d3aab0518126700760a81051d |
|
MD5 | bfb2a48df3bac49d229ec9ad9d0e0af5 |
|
BLAKE2b-256 | 5b48453f083d2736c69dfb6264433c6ad405236e89f475e6be36fbb4f443d6f6 |
Hashes for qpt_generator-0.1.3.post1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 385be89572b5e09af8a71588d61a616edd7ebca722a2ac309906caa947bcfbd5 |
|
MD5 | 38bde1114e0ebce074927089d6755ba5 |
|
BLAKE2b-256 | fd5bb73f310d18730c36ea0d7d660ea55c85508814b01f64453682c746d2735a |
Hashes for qpt_generator-0.1.3.post1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 685f3928b96d47ee895d1c45d490a545dadd2b72f4446aab2ef71ff729867ae3 |
|
MD5 | 72d226ba1ee137b15d66afa4aa13eeae |
|
BLAKE2b-256 | e3549976b8370111c65a3b9f52332d71cf013cde9655f8b888ab6f7a1f2cc33c |
Hashes for qpt_generator-0.1.3.post1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e996f33c1a689e8e817177f4a9e1e793da25b5cd71d5c4bde74f27b5c91cb5b2 |
|
MD5 | f9cd07a6f059d1f8d2556f55a762df2b |
|
BLAKE2b-256 | d17c188f4a3fb1185ecc58798b6b9348a7fa2b927f4b8ebe43e37a531727b039 |