gpt4 book ai didi

Python 评估和评分学生的代码

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:06 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




对于一个类(class),我想自动评估(部分)学生的编码作业。我想到的设置是这样的:

  • 学生得到一个类(class)骨架,他们必须填写。
  • 学生将此类定义“上传”到服务器(或通过网络界面)
  • 服务器运行脚本对特定函数进行测试,例如 class.sigmoid(x),并检查函数的输出是否正确并可能给出建议。

  • 这种设置带来了很多问题,因为您正在评估不受信任的代码。但是,对于我的许多类(class)来说,这将是非常有用的,所以我愿意花一些时间来思考它。我记得 Coursera 有类似的 matlab/octace 作业,但我无法获得详细信息。

    我查看了许多在线 python 接口(interface)(例如,codecademy.com、ideone.com、c9.io);虽然它们似乎非常适合通过在线评估来学习和/或共享代码。我确实错过了评估脚本对学生“隐藏”的选项(即评估脚本应包含正确的引用实现以比较随机生成的数据的输出)。此外,我提供的类(class)需要一些数据(例如图像)和包(sklearn/numpy),这并不总是可用的。

    具体来说,我的问题是
  • 我是否想念一个实际上提供这种功能的在线环境。 (这将是最简单的)
  • 为了自己设置这个,我想把它托管在(例如)亚马逊云上(所以大学的基础设施没有问题),但是在沙箱化评估中你可以推荐任何 python 实践吗?

  • 在此先感谢您的任何建议!

    很遗憾听到这个问题不适合 StackOverflow。感谢人们(部分)回答这个问题。

    在通过其他 channel 获得更多反馈后,我认为我的做法如下:
  • 学生得到骨架并填写
  • 学生也有评估脚本。
  • 在脚本中,与服务器建立了一些连接
  • 登录
  • 获取一些随机数据
  • 检查学生代码的输出在数字上是否与服务器期望的相同。

  • 通过这种方式,学生代码在本地进行评估,但只有输出被发送到服务器。这限制了可能的评估类型,但仍然允许对代码进行自动评估。

    最佳答案

    一般来说,沙盒 Python 是不可能的。您可以尝试防止危险操作,这将意味着显着限制学生代码可以执行的操作。但无论如何,这可能会留下开放的攻击媒介。更好的选择是使用操作系统级别的沙盒来隔离 Python 进程。 CodeJail例如,库使用 AppArmor 来提供安全的 Python 评估。

    作为 Python 沙盒化难度的示例,请参阅 Eval really is dangerous ,或考虑将此输入到您的沙箱:9**9**99 ,它将尝试按 googolplex 的顺序计算一个整数,在很长一段时间后消耗所有的 RAM。

    关于Python 评估和评分学生的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26303388/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com