PyRope

PyRope is a Python package for creating randomised (electronic) assessment exercises and for running them in different contexts. It is especially designed for the needs in science, technology, engineering and mathematics (STEM), but not limited to these domains.

In contrast to classical e-assessment systems, PyRope’s philosophy is:

“Coding, not clicking.”

If you want to develop an exercise, you should spend your time on its didactical design, not on the process of getting it into the system. Representing exercises as pure source code allows one to benefit from well established software developing practices and tools, and therefore help to:

  • develop exercises more efficiently

  • use a familiar integrated development environment (IDE)

  • improve documentation

  • spot and fix bugs

  • share exercise pools as open educational resources (OER)

  • better understand exercises authored by others

  • make exercises easily accessible to automated analyses

  • increase confidence in the e-assessment system

Design Principles

Simplicity

Creating exercises should make fun. PyRope aims for simple and fast exercise coding, even for users inexperienced with Python.

Python

With PyRope, you have the full power of Python at hand to create elaborate exercises, limited only by your creativity.

Flexibility

PyRope not only allows you to easily adapt available exercises, but also to create your own, new exercise formats.

Autonomy

You can run PyRope locally, without the need of a database, a remote server or a learning management system. This is particularly interesting for students who want to practice in private, without the fear of being tracked permanently.

Modularity

The modular design of PyRope allows different user frontends and database backends.

Open Source

PyRope is open source and licensed under the GNU Affero General Public License. You are free to run, study, share and modify the source code, provided you distribute derived versions under the same license terms.

To keep PyRope simple, it will not:

  • tie to a Learning Management System (LMS)

  • provide user or course management

  • provide tools for analysing stored user data

  • allow exercises with branched control flow

Features

  • short exercise development cycle using Jupyter Notebooks

  • templates in Markdown format

  • embedding of images, videos or LaTeX

  • typed input fields

  • interactive input validation

  • unrestricted use of powerful Python modules, e.g.

    • Sympy for symbolic manipulation

    • NumPy and SciPy for numeric computation

    • Matplotlib for dynamic generation of diagrams and images

    • Pandas for incorporating external data

  • sophisticated auto-scoring mechanism

  • programmable individual feedback

  • unit testing of exercises for inconsistencies or common errors like missing or inappropriate treatment of trivial user input

  • Jupyter Notebook based frontend

  • flexible configuration

Warning

This package is still in a very early stage of development and therefore subject to heavy changes. Please do not rely on stability or continuity yet, especially not in exam contexts.

Getting started

For the impatient, here is what you need to do to get PyRope up and running. More detailed instructions can be found in the Section Download and Installation.

First, install the following packages:

Then change to your install directory and run the commands below.

python -m venv venv
venv\Scripts\activate
python -m pip install git+https://github.com/PyRope-E-Assessment/pyrope.git
python -m pyrope run

Contribution

You can contribute to this project in several ways:

  • Tell us your user experience.

  • Create your own exercises or exercise pools and make them public. Send us a reference if you do so.

  • Find bugs and report them in our issue tracker.

  • Request features you would like to see in the next version.

  • Participate in the development of the code base.

Contact

Software development:
Exercise pools:

Acknowledgements

This project is developed at the HTWK Leipzig University of Applied Sciences and funded by the “Stiftung Innovation in der Hochschullehre”.

logo Stiftung Innovation in der Hochschullehre

logo Feedback-basiertes E-Assessment in Mathematik, Informatik und Ingenieurwissenschaften