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.2.post3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0c02351fbfdd5b2255897e16c8030fbb4c515dc55cb42f3fb3ebb58265b2a65 |
|
MD5 | 3512fc17fb7c471cc37d5cb4ae9fd972 |
|
BLAKE2b-256 | 201affbf540ac239066d98428b29e631c8c6af9b0aa21e40b75e65dfe969e1e2 |
Hashes for qpt_generator-0.1.2.post3-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40b941ffa2a999155bceab721c7c18d5ec6be1f0cf79869738b8dd6a489f61c5 |
|
MD5 | 5a30f73d532fa5222f7d95ff6c19476c |
|
BLAKE2b-256 | fe04e555d6f8f6e78a5a8705857c9b780aa5e76a3d6c01571234b653513a8975 |
Hashes for qpt_generator-0.1.2.post3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 210c5428aceaf0f063805ac00ce42c3ff84470f4b4e7e1984d83fd704e900535 |
|
MD5 | 3ee193fd2e418e10c381d7493c0afac0 |
|
BLAKE2b-256 | 5c4e854744ec96d3b85ebd16b29f1648bb80f7a8c9d45a5aba1bb957f9cddc36 |
Hashes for qpt_generator-0.1.2.post3-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a44f7a5f622a7d980bc882edff28e9dd838cac50812c477fbe7b92b0db0a92d3 |
|
MD5 | 420fbb6ff02f0a18d91640f5962d8c75 |
|
BLAKE2b-256 | 9787bfcf2a8095ecd76db7c93da159f4ec77733de0e734e2621e1138f60bc404 |
Hashes for qpt_generator-0.1.2.post3-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 058e755edbe592fada0f443257e6ab17cef88c99876839578388388fb71d94a0 |
|
MD5 | 803d329933fdf36e4223c94e0f11b0ca |
|
BLAKE2b-256 | 05c755fef937ebbb88a31cba2e34c2836e846c1705e18ef3d16c77ff666ddbc1 |
Hashes for qpt_generator-0.1.2.post3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15e8a871e969c3140c54861db3583e60f00c7f4cc7a44d6436e7900243cd1074 |
|
MD5 | 21be4982b6d92b53153b5d6d7302fb51 |
|
BLAKE2b-256 | 298182da4b407b9cb95eba78d17fb4cbed6254ddca22cbe74225cc55ef8dffb6 |
Hashes for qpt_generator-0.1.2.post3-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fa66b0e69fedab0cfec415420472b2e1343ce08b7e4f2fec49824dbff502f43 |
|
MD5 | 461e6933f4b89918c7db9dd50817b956 |
|
BLAKE2b-256 | ccc19a24a9c74cbfca5942c0e6b7535924709317f031c521400d457986d22b78 |
Hashes for qpt_generator-0.1.2.post3-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3f811e13c43c42ecc57fee3472e2264c1f97fa72228974415d4b9fc872c48ca |
|
MD5 | 0c1d28d943e4ae99d15da26c1f870a25 |
|
BLAKE2b-256 | 36d2a6c765445ecea33b369e9a8c86603cb67b86f72634be5767d3c83bfecf03 |
Hashes for qpt_generator-0.1.2.post3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583d79ec7f3156cca6d867a23d8942862e60a9d20406d93454c8a2b7181dddfd |
|
MD5 | e7cce04656a9c6712565bcdb5037d359 |
|
BLAKE2b-256 | 43153fcb538ae717f35d777e4cb694738355cb8188035234c8ca0c8e30c38a52 |
Hashes for qpt_generator-0.1.2.post3-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5150f1f78308944d1f6e13be6e85e6291872eb86034a9077d138aab2c2b98e1e |
|
MD5 | fde221ba3ac8dc997cb5c9414c1084e9 |
|
BLAKE2b-256 | feb5c877c4a34becfd0ae6d5d51305df79614ac7ea9f09a960e4406571fc534f |
Hashes for qpt_generator-0.1.2.post3-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f88ffd32ec0eaee3d069c56e9714c4013612254d0ec3abeddf3566299170f8fd |
|
MD5 | 2ba6c14722b366ebb7ac8b6fee35954c |
|
BLAKE2b-256 | 2811ec8a01c93f6c4cd6211dd27e2557b4116b9e1afaedbd831a1a929dd004aa |