跳转到主要内容

一个用于在Jupyter笔记本中实现自动评估练习的迷你框架

项目描述

nbautoeval

nbautoeval 是一个用于在Jupyter (Python) 笔记本中创建 自动评估 练习的非常轻量级的Python框架。

目前支持两种练习类型:

  • 代码型:给定一个描述预期的文本,学生被邀请编写自己的代码,然后可以在教师定义的数据样本上看到结果,并与教师提供的解决方案得到的结果进行比较,并提供视觉(绿色/红色)反馈
  • 测验:一个独立的模块允许创建测验

目前,由于缺乏关于open/edx(即:在FUN上运行的版本)的知识/文档,没有可用的代码用于将结果作为成绩或类似的东西导出(因此名为autoeval)。

实际上,代码中确实有累积所有尝试修正的统计数据的提供,作为为教师提供反馈的尝试。

mybinder 上试用

点击下面的徽章以在 mybinder.org 下查看一些示例演示 - 所有这些都在 demo-notebooks 子目录中。

注意 演示笔记本以 .py 格式提供,并在您可以在Jupyter中打开之前需要安装 jupytext

Binder

历史

这最初嵌入到一个Python 2 MOOC中,该MOOC首次于2014年秋季在法国FUN平台上运行。然后在2016年春季的一个生物信息学MOOC中进行了复制,那时它被命名为nbautoeval,但仍然嵌入在一个更大的git模块中。

当前的git仓库是在2016年6月从该基础上创建的,目的是将其用作来自这两个仓库以及可能的其他仓库的git子树,因为有些人已经证明了对它感兴趣。

安装

pip install nbautoeval

概述

以代码为中心

目前支持以下类型的练习

  • ExerciseFunction:要求学生编写一个函数
  • ExerciseRegexp:要求学生编写一个正则表达式
  • ExerciseGenerator:要求学生编写一个生成器函数
  • ExerciseClass:测试将在类实现上进行

希望实现练习的教师需要编写两部分

  • 一个Python文件,该文件定义了一个练习类的实例;总的来说,这通常涉及

    • 提供一个解决方案(例如一个函数)的Python实现
    • 提供一组输入数据
    • 以及可选的渲染结果的各种调整
  • 一个笔记本,该笔记本导入这个练习对象,然后可以利用它来编写Jupyter单元格,通常

    • 在练习对象上调用example()以显示预期输出的示例
    • 邀请学生编写自己的代码
    • 在练习对象上调用correction()以显示结果。

测验

这里同样有两个部分在起作用

  • 推荐的方法是在YAML格式中定义测验

    • 一个YAML文件可以包含多个测验 - 请参阅yaml/子目录中的示例
    • 每个测验包含一组问题
    • 将问题分组到测验中在最大尝试次数方面是有意义的
    • 大部分内容都可以用Markdown编写(目前我们使用myst_parser
  • 然后从一个笔记本中调用run_yaml_quiz()来显示测试

    • 此函数接受两个参数,一个用于帮助定位YAML文件
    • 一个用于在YAML文件中找到测验
    • 使用debug=True运行以定位源代码中的错误

结果和存储

无论它们的类型如何,所有测试都有一个exoname,该名称用于存储有关该特定测试的信息;对于测验,建议使用与在run_yaml_quiz()中使用的测验名称不同的名称,这样学生就不容易猜到。

内容存储在两个不同的位置

  • ~/.nbautoeval.trace包含每个尝试(纠正或提交)的JSON行
  • ~/.nbautoeval.storage仅用于测验,保留以前的选项和尝试次数

已知问题

请参阅https://github.com/parmentelat/nbautoeval/issues

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

nbautoeval-1.7.0.tar.gz (44.5 kB 查看哈希值)

上传时间 源代码

构建分发

nbautoeval-1.7.0-py3-none-any.whl (41.4 kB 查看哈希值)

上传时间 Python 3

由以下组织支持