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-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0113b99ee89a94b18c0a8935764221e381c4b61852ab54f7d166e13dd6b2582 |
|
MD5 | 57c16c2a261dd39358dcf59a1f8bf1e4 |
|
BLAKE2b-256 | 5b489db0e66168e71db19ac4732a82d74dbccfc89927c131d5a0282831dc1b3b |
Hashes for qpt_generator-0.1.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c335c2e8575280be11a402e63345fb964dcb6a574e50a373ff1288eac20f6fa |
|
MD5 | 0407eb6beef906ec8e0b4b0808f34425 |
|
BLAKE2b-256 | 3dae8b9f1b5653009afd2480e02d39e2dac3beb3e8f58176fe512707c4c88c38 |
Hashes for qpt_generator-0.1.3-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43f5321824bc5490cd60a3a8d2058f62a44ad17389eb7943497a4efabcfa7612 |
|
MD5 | 7a2ac30f19ee5192287c68e4b9249369 |
|
BLAKE2b-256 | fe771e9ec93d9c27601987c6632a5db1200c20b1727b83ddccb6ccd6e9834b8c |
Hashes for qpt_generator-0.1.3-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbee992d1425258dc5d6b624a08aed58ec9a001812de2274a3deff64d0c6bb8e |
|
MD5 | 3e901d24e8702bf422115c026388fb46 |
|
BLAKE2b-256 | dda906ff47a2f76598cc27b1015d17a230963f8a81b19f7e3588485cce3b03f1 |
Hashes for qpt_generator-0.1.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d8defe883616654d29e7555dedf100d979f0199f525a3c42a88f306f374a1ff |
|
MD5 | 0c584329225ae2f360c018e7744fc6b0 |
|
BLAKE2b-256 | e8493195a7de5c01fe31553e63f09a096215ae5971e58c747c53b428ca0bcd50 |
Hashes for qpt_generator-0.1.3-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e34806e642eafc986babab5a064a08762051fd01f4961a0da40118559c746eb |
|
MD5 | 3b26010efd845d1c9fa8f5df00e5421a |
|
BLAKE2b-256 | 69b34cabe9a032929633c2e72369c50445585633bdefa07c2e0d97d50fa39c19 |
Hashes for qpt_generator-0.1.3-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec6dddfb5dcfae578ee344e3048c6c9dbc685d9f7b3b695ffbe9244e6e4071d3 |
|
MD5 | ce4dea09859229d3f81871b5563eb8f2 |
|
BLAKE2b-256 | c41c52f333329e5cd2cb408cd1c99090539e26f17818269b0645452dc38a633e |
Hashes for qpt_generator-0.1.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dae89eac3be0fac37834a2feb8c1b0cc8ce64c0e4ddbaf752ddc4f61a677b35b |
|
MD5 | dacb6681a749b830a66502d9b002bb37 |
|
BLAKE2b-256 | f167ef7974434f7f85d2146fc779602be49bafff7949e345ace2f6ad5d4ba0c3 |
Hashes for qpt_generator-0.1.3-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7833312c0956b611e6fd679623877be9a302cb488fe421f5293f7bdeede7423f |
|
MD5 | 6bf399bba473a91361380fbec4f5bc4e |
|
BLAKE2b-256 | 2244883f67c9129cd57259cec19ca41c0b7de823330784bb9c0b27611c90087d |
Hashes for qpt_generator-0.1.3-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27e752516fa0a685f4b780a88f4725c92039369b3bd45a77953d0c7aed390e17 |
|
MD5 | e84e7ada8f52b01ef0ae437b82d447d1 |
|
BLAKE2b-256 | ed107b4a14e11a6c718d34ce39e7be01c38a32d407cd5363bbcb0ac60aca1292 |