Jupyter笔记本作业格式和分发

dsassign的Python项目详细描述


ds分配:Jupyter笔记本分配

创作和分发Jupyter笔记本作业的格式和工具

需要:Python 3(即使安装了它,也要检查它是您的工作版本python --version

背景

这是dsassign(https://github.com/DS-100/ds-assign)的数据100分支。 迄今为止的重大变化: 将学生反应细胞类型从“降价”设置为“原始”,似乎可以解决很多乳胶问题。在

入门

课程教师通过创建一个 包含要验证的设置代码、问题、解决方案和测试的笔记本 这些解决方案。此项目准备分配给 学生和后来自动得分。在

notebook format不是特定于编程的 语言或自动签名框架,但设计用于 okpy,这是基于Python的。对 支持其他测试框架,如[nbgrader, and other programming languages are welcome.

An example notebook appears in ^{}, which uses the notebook format。要转换它,请运行:

dsassigntests/example.ipynbtests/outputsome/course
  • tests/example.ipynb:一个示例笔记本路径,您需要将其替换为指向主解决方案笔记本的路径,该路径使用来自notebook format的元数据和命令进行了扩充。在
  • tests/output:将存储输出的路径
    • 输出包含两个目录autograderstudent
    • autograder目录包含一整套测试和一个解决方案笔记本(解决方案笔记本不同于主笔记本,因为它不是按照notebook format格式化的,而是看起来像有解决方案的学生笔记本)
    • student目录包含自动创建的修订版本。在
    • Note:当前,输出目录将包含您在创建主笔记本时使用的数据文件,例如csv或json文件:确保在将其发布给学生之前将其添加到student目录中
  • some/course是okpy上列出的作业的端点/路径(通常以您的大学缩写开头,其中有一个课程名称,以作业名称结尾)。在

在运行dsassign命令之前,请确保自上而下(Cell -> Run All)运行整个笔记本以确保每个单元格都有正确的输出——这些单元格的输出将被转换为存储在所提供的输出目录中的相应测试(dsassign命令的第二个参数)。如果更改测试,则需要重新运行笔记本和dsassign命令来重新生成文件。Notedsassign将发出一个错误并退出(如果输出目录已经存在)。在

然后可以根据结果生成PDF:

^{pr2}$

小心

题外测试

File "/opt/conda/lib/python3.6/site-packages/dsassign/to_ok.py", line 141, in gen_ok_cells
    assert not is_test_cell(cell), 'Test outside of a question: ' + str(cell)
AssertionError: Test outside of a question:

如果您得到这个错误,这意味着在声明问题的markdown单元格(即包含#BEGIN QUESTION)和包含{}的单元格之间,不止一个单元格。在

SOLUTION:删除解决方案单元格和带有#BEGIN QUESTION的降价单元格之间或解决方案单元格与# TEST单元格之间的额外代码/降价单元格。在

最后一行空白的测试单元

因此,如果测试的末尾有一个空的测试,那么在测试的末尾会自动添加一个分号。在

示例:

# TEST
movies.head(1)['plots'][0]=='Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.'

在学生的笔记本上显示以下未通过的测试:

>>> movies.head(1)['plots'][0]=='Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.';
>>> 

# Error: expected
#     True
# but got

^ {STR 1 } $解决方案< /强>:删除^ {CD17>}单元结尾的空白行。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同