Exam-o-Matic 3000

Latest Version

Description

This collection of Python scripts is intended to serve as a workflow manager for exam creation, versioning, and learning-outcome assessment. Because all of the parts are written in Python, it should run on Windows, Linux, or macOS.

The setup script will create a virtual environment into which it will install the needed libraries (docx and openpyxl) to create .docx and .xlsx files. Because it uses a virtual environment, it should not interfere with any other Python projects on which you are working.

Installation

Windows

You need to have Python installed. Then, run:

setup.bat

to create the virtual environment. Run the workflow manager with:

eom3000.bat

Linux/macOS

Again, you need to have Python installed. Then, run:

./setup.sh

to create the virtual environment. Run the workflow manager with:

./eom3000.sh

Test Banks

Test banks are stored in the testbanks folder and are in .json format. The individual items can be edited using a text editor. The scripts understand a simple markup language to provide superscripts and subscripts. Perhaps future versions will allow for LaTeX equations and similar formatting.

The included test banks are for Chem 351—Physical Chemistry I. They were originally created by feeding the learning objectives for each chapter (MLO), the course learning objectives (CLO), and the program learning objectives (PLO) for a BS in Chemistry, along with the text of the given chapter, to ChatGPT. Because the items are AI-generated, they warrant significant scrutiny before being issued as the final versions of an exam. The review stage can be used for this purpose.

Features

Exam-o-Matic 3000 will create versioned exams as well as an Excel-style workbook for grading and assessment. If used, it will indicate not only the total score for each student but also report class performance on each learning objective, which can provide useful information.

In the future, I hope to add LaTeX-style formatting for equations, algorithmic questions, and the ability for each question to have multiple versions, along with a few other features that I have yet to imagine.