软件基础 - 自动评分

Software Foundations - automatic grading

为了学习Coq, I downloaded Benjamin Pierce's ebook Software Foundations from here,提取了内容。我现在开始完成 Basics.v 中的练习,方法是直接在 Vim.

中编辑文件

我想自动为我的答案评分(例如,根据时间跟踪我的分数)。

为此,我 运行 coqc 按照 Makefile 中给出的顺序对每个 .v 文件进行了处理。因此,我是 now able to invoke,例如coqtop -batch -l BasicsTest.v.

但是,虽然这会报告该章节的可用分数,但不会报告我的分数。 (我正在阅读本章的中途,并且相信我到目前为止的答案是正确的,因为 coqtop -batch -l Basics.v 执行时没有错误。)

我怀疑我忽略了 Make 或 Coq 的调用,它们会为我目前的答案生成分数。如果有,那是什么?

BasicsTest.v 不会在当前版本的 Software Foundations 中生成成绩。您可以单步执行它并查看它的作用:它只是完成练习,执行一些基本检查并报告它们的结果。但是,不会根据这些检查的结果生成分数。

如果您的定义和证明是完整的(例如,不是 Admitted)并且 Coq 的类型检查器接受它们,您可以有理由相信答案是正确的,除非您的开发中的某些东西破坏了 Coq 逻辑的一致性(在这个早期阶段不太可能)或者你偶然发现了一个错误(也极不可能)。

自动评分器当前不完整。我们希望在接下来的几个月内完成它,并在完成时提供。但正如 Rob 所说,它实际上并没有告诉你比当前测试版中 运行 BasicsTest.v 得到的更多信息。

2018 年 12 月更新:自动分级机已完成。我们还没有为 public 分发打包它(除了像 BasicsTest.v 这样的实际测试文件),但我们很高兴向想要使用的讲师提供对 Git 存储库的访问权限它。