Skip to main content

A mini framework to implement auto-evaluated exercises in Jupyter notebooks

Project description

# nbautoeval

nbautoeval is a very lightweight python framework for creating auto-evaluated exercises inside a jupyter (python) notebook.

Given a text that describes the expectations, students are invited to write their own code, and can then see the outcome on teacher-defined data samples, compared with the results obtained through a teacher-provided solution, with a visual feedback.

At this point, due to lack of knowledge/documentation about open/edx (read: the version running at FUN), there is no available code for exporting the results as grades or anything similar (hence the autoeval name).

There indeed are provisions in the code to accumulate statistics on all attempted corrections, as an attempt to provide feedback to teachers.

# Try it on mybinder

Click the badge below to see a few sample demos under mybinder.org - it’s all in the demo-notebooks subdir.

NOTE the demo notebooks ship under a .py format and require jupytext intalled to be opened in Jupyter.

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/parmentelat/nbautoeval/master?filepath=demo-notebooks)

# History

This was initially embedded into a [MOOC on python2](https://github.com/parmentelat/flotpython) that ran for the first time on [the French FUN platform](https://www.france-universite-numerique-mooc.fr/) in Fall 2014. It was then duplicated into a [MOOC on bioinformatics](https://github.com/parmentelat/flotbioinfo) in Spring 2016 where it was named nbautoeval for the first time, but still embedded in a greater git module.

The current git repo is created in June 2016 from that basis, with the intention to be used as a git subtree from these 2 repos, and possibly others since a few people have proved interested.

# Requirements

Target currently is any python-based notebook running on jupyter-v5. It is not quite clear at this moment which version(s) specifically will work smoothly with nbautoeval, but in essence there is very little dependency to the jupyter version.

It was initially written in python2 but is now targetting primarily python3; hopefully it still works for python2 :)

# Installation

Initially, nbautoeval was used in MOOC courses, that in turn were implemented as git repos; in this context nbautoeval was simply injected in this code using git subtree.

It is now also available at pypi:

` pip install nbautoeval `

# Overview

In this early stage the framework supports the following types of exercises
  • ExerciseFunction : the student is asked to write a function

  • ExerciseRegexp : the student is asked to write a regular expression

  • ExerciseGenerator : the student is asked to write a generator function

  • ExerciseClass : tests will happen on a class implementation

A teacher who wishes to implement an exercise needs to write 2 parts :

  • One python file that defines an instance of an exercise class. This in a nutshell typically involves * providing one solution (let’s say a function) written in python * providing a set of input data * plus optionnally various tweaks for rendering the results

  • One notebook that imports this exercise object, and can then take advantage of it to write jupyter cells that typically * invoke example on the exercise object to show examples of the expected output * invite the student to write their own code * invoke correction on the exercise object to display the outcome.

# Known issues

see https://github.com/parmentelat/nbautoeval/issues

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

nbautoeval-1.0.1.tar.gz (32.2 kB view details)

Uploaded Source

File details

Details for the file nbautoeval-1.0.1.tar.gz.

File metadata

  • Download URL: nbautoeval-1.0.1.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for nbautoeval-1.0.1.tar.gz
Algorithm Hash digest
SHA256 15c49ef9541f4e2c942798d7a945a7e023b8209bd5b099fc73e1f42d9ced4df4
MD5 c532bb7f0a111913335a3fc45b992e5e
BLAKE2b-256 edf73e4f03a65994f9eec20ef4818bd6aefb7075176d74a338b0e9dfc02237dd

See more details on using hashes here.

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