Skip to main content

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:

  1. 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
  1. 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

  1. An Algorithm for Question Paper Template Generation in Question Paper Generation System

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qpt_generator-0.1.7.tar.gz (40.5 kB view hashes)

Uploaded Source

Built Distributions

qpt_generator-0.1.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (337.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp38-cp38-win_amd64.whl (76.0 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

qpt_generator-0.1.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (336.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp38-cp38-macosx_10_14_x86_64.whl (71.0 kB view hashes)

Uploaded CPython 3.8 macOS 10.14+ x86-64

qpt_generator-0.1.7-cp37-cp37m-win_amd64.whl (75.6 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

qpt_generator-0.1.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (334.2 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp37-cp37m-macosx_10_14_x86_64.whl (71.0 kB view hashes)

Uploaded CPython 3.7m macOS 10.14+ x86-64

qpt_generator-0.1.7-cp36-cp36m-win_amd64.whl (75.8 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

qpt_generator-0.1.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (333.9 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

qpt_generator-0.1.7-cp36-cp36m-macosx_10_14_x86_64.whl (71.1 kB view hashes)

Uploaded CPython 3.6m macOS 10.14+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page