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.post2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca54223e72699c7d7b288d5710d6f43aa62027c2c1d0f082ed579ad703e614f6 |
|
MD5 | 7213d852f12f47300516f6eea9924163 |
|
BLAKE2b-256 | a67c91e1decc278afa25a8626f214333109e6153a299be437f4e41983787435d |
Hashes for qpt_generator-0.1.2.post2-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bac5ad882475cf6d6b2e679e30b297084dd464aeb9677bd7dfe60958bb3b86c5 |
|
MD5 | 61ddf4b8253a5c6e97ebde4aa6ef336f |
|
BLAKE2b-256 | d736e54299bd34d953bcc73806cf13699e11225401c42a9fda92a5ab3efa8345 |
Hashes for qpt_generator-0.1.2.post2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd5c5b60fd96ae2fc87d04a22989bf360065e6f32c604a382ca35ab749f9f4bd |
|
MD5 | e18b47885ee44a5fe774b8657329a85b |
|
BLAKE2b-256 | 247a400062de2a30c443bc3c60fbddca6c6eec68273964785ef8d5039c848592 |
Hashes for qpt_generator-0.1.2.post2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3101ebf9ee65859a6f241de4f4a9872c1a0af88f4d381fbf1b50a527c8d428ff |
|
MD5 | 408f63f875b082fa1744326d64940666 |
|
BLAKE2b-256 | 6895c6af1025f43492fb2fcaa42fffbbe3aa64c9e0f1c96de3f3cdd7fa3c5f85 |
Hashes for qpt_generator-0.1.2.post2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88e485334dce5ec21dd5c9c724c9660c6d8c666e714b0a7666320ee0232450f6 |
|
MD5 | aee65d5e3fb0307e706ceb50821aa3fc |
|
BLAKE2b-256 | a62328062fd49f0998082d032a6f272d5388fb1effe4e03b79c673ad66b07b8c |
Hashes for qpt_generator-0.1.2.post2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c61f192eb9e32017d57e5d259406117db238da84337b7a8c2e020a7dc9921176 |
|
MD5 | f255cc78691041b49b8f0099c2bc0967 |
|
BLAKE2b-256 | 347861c59ee30b1a7c5b4af7aa728f847df81bf3b94bd41930fceee1fbb4db9d |
Hashes for qpt_generator-0.1.2.post2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c866d83ee626c1a3400dcd2b2cfafb3a37401379a76770d68bbacfa6c8d347d |
|
MD5 | 588c1d150f97a6673e18eb282838c789 |
|
BLAKE2b-256 | 100bb8e703ee54dbb73c867d85ee4fee7becbc04aa70025bb9446507d0ed65fa |
Hashes for qpt_generator-0.1.2.post2-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 474729ba1487df9ba2c4629894328da73dca6543d3f9c4df4832a0a466324a31 |
|
MD5 | a323f2e32d387745d88b69ab4615ec95 |
|
BLAKE2b-256 | ae696100b17ec5fc4b79208ef44b90fd73a7cd7b9b43a932443dc6cbe63042e8 |
Hashes for qpt_generator-0.1.2.post2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a63c4d77bad834f063fcda107c38cc7b1a3b4e1d23cf6dd233126d9d19c40cc |
|
MD5 | f42fb30cf902d0b1aba8981165b7d4f5 |
|
BLAKE2b-256 | 1cad462e5d7a2d87bfeaa11af413cf15cc8fa6f5fa122c982570c789cf3aaf40 |
Hashes for qpt_generator-0.1.2.post2-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fe76c0562a628b0a314cbc7411cdb32007983d13cddced97e9a44546bc9785b |
|
MD5 | 6de45f89f74f55e5e7ac500ab83d043b |
|
BLAKE2b-256 | b4f11a1be970d702f1d9128abac488f96de6a6e026b8324a37963b101de073a9 |
Hashes for qpt_generator-0.1.2.post2-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20c61a4c3f254b920251ed309015b8430a60685c2546d9cbbbbf76398236e81f |
|
MD5 | 7e23e7c66c5e0c5fe8c537a3b95ea457 |
|
BLAKE2b-256 | abda11dfd882d9f51c23b09272958bb2372962dddf6806560b9277ae057bbfb3 |