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.post1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | be2e2a9806dc5570e377dc243a2465f4dd0c3d95c37c200194f39a2fbca88ae9 |
|
MD5 | db08f237f8206f7799fe5340de458be3 |
|
BLAKE2b-256 | 26ebe67cc1833a96dfe26234cf5a812d37f722379f333551e2758e44615bff8e |
Hashes for qpt_generator-0.1.2.post1-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 498653ea80a30a8a9c1034f6525dc28126b32ddb5ffa495731a53986cbd74701 |
|
MD5 | 33fedab15ccff77009ca28290c555e6c |
|
BLAKE2b-256 | 4cd9a0ddfdfc2d5691fe07c093767a34520ffa2da05bb78896b7b2630607249a |
Hashes for qpt_generator-0.1.2.post1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4521f57138777a3ec033cc565eb231f7e4a96df00211616d4d8d8c138799405e |
|
MD5 | 6ef8a91ca33d6243fde2a72a95dd5de8 |
|
BLAKE2b-256 | a47a6711897b9e84c784ff9ea74e4b4475c52b0a68fc2e3bf0c9733ef9713fa7 |
Hashes for qpt_generator-0.1.2.post1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d428a6f6c7d51d764834f6491430d7fd385bc9d749e1e7075a2e8c848b932810 |
|
MD5 | 03731de04cc422a15f561953b939ff8f |
|
BLAKE2b-256 | 721a84bd4a141c39f9a774846125406c89749bac71d291239093cdc6bb0e3dd7 |
Hashes for qpt_generator-0.1.2.post1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20438c32af26509f19476c7a23623dc6c7027a3eab5794c1e7638948a62333a7 |
|
MD5 | 1febaa70e0efc7466a415e488b62a1a2 |
|
BLAKE2b-256 | bb01a3abdc48cd12023d46d4b9d162b7587d0720ee0d4cf71acfbe2d28de8e3a |
Hashes for qpt_generator-0.1.2.post1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b17865ae9bd44cfd24ee12936400a07721107296dedcea38c9c07ad814b9211 |
|
MD5 | 5dbd9355f61f3329471532584f9dc914 |
|
BLAKE2b-256 | 16563221413c0330911344f33bd5fef44ea805a93e77584d199bbf50c45b9ae1 |
Hashes for qpt_generator-0.1.2.post1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb2cf4ac05a8503c0e7833c587db330d48c3894bbe600bff8becfe1221359a87 |
|
MD5 | c0a0235927adf2c223df2a77ac7ab22b |
|
BLAKE2b-256 | ef813d0fb7a4243eecf2d038a99450d805182a3a7a22ae16139c79d6a0330a39 |
Hashes for qpt_generator-0.1.2.post1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d28c7f44bbc2d4693ec517bf571d5e5c81ee480a7be87485bda8ea37e30f60f |
|
MD5 | 62952cc4335d8329550bdc2312c61dbb |
|
BLAKE2b-256 | ef037b03b93b5ef7d25221b2fc8637ffcbbd09b59ac96b270c48a8eecac6eb24 |
Hashes for qpt_generator-0.1.2.post1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64f042930824372e4dcb4e37d128d543fcee4e0fbd29a76881b6e2f5d5bed4c4 |
|
MD5 | f3b82b9466270839a8e31005aac6ce32 |
|
BLAKE2b-256 | ba821293cec7374c4957d7f9acb6dbe33b12b37f9dccfdf3fb6ea5b6506c3e53 |
Hashes for qpt_generator-0.1.2.post1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9733dbd6b7cbbbac229d464b17d1cc9e8fd98101e212e111aacb896a06e27d3 |
|
MD5 | 58765b0d6f7f206971d02b8217aaf467 |
|
BLAKE2b-256 | 0cbe6b28c58f0ac0230b5f2e5ffe35fe7b835d75d75a4756186e075bbd8dd41e |
Hashes for qpt_generator-0.1.2.post1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98e833f654dab30ac2205d48c3db599645675d50d0c723f15121183faada92df |
|
MD5 | 51482ca10a0fc730849a85ebf4ee3606 |
|
BLAKE2b-256 | e774d15faaff1ec6e239611d7e513b57dfaa43839b1fc81c807b713c80fb767e |