为统计班个性化在线作业

13 投票
4 回答
666 浏览
提问于 2025-04-17 08:36

我教本科统计学,想要进行个性化的在线作业管理。我已经解决了这个问题的一部分,就是使用 latex/markdownknitr/sweave 生成多个版本的问题,利用 seeds 来实现。

现在我想开发一个基于网页的系统,能够使用这些生成的不同版本,为每个学生在线提供不同的作业。我查过几个与表单相关的网站(比如 google docswufooformsite 等),但没有一个支持程序化创建问卷。

我把这个问题标记为 R,因为这是我最熟悉的语言,也是解决问题第一部分的关键。我知道有几个基于网页的 R 框架,不知道有没有适合这个工作的。

我也不排斥使用其他语言的解决方案,比如 RubyPython 等。但最重要的是能够程序化地提供在线作业。我知道有像 WebWork 这样的工具,但它们需要使用 Perl,而且界面通常比较笨重。

如果你觉得我遗漏了更合适的框架,欢迎添加标签。

补充一下,让我通过一个例子来说明。目前,如果我想在线布置作业,我可以简单地创建一个 Google 表单,把链接发给我的学生,然后在电子表格中收集所有的回答,并自动评分。如果只有一个版本的作业,这样做是可行的。

我的问题是,如果我想为每个学生布置不同版本的作业,并收集他们的回答,我该怎么做呢?

4 个回答

2

我知道这个问题很早就有人问过了,但我觉得现在最好的解决方案是使用 exams 这个包和 Moodle。

这个 exams 包现在可以生成 XML 格式的 Moodle 题目,这样就可以上传到 Moodle 平台,学生们可以在线完成这些练习。

下面是一个用 exams 包制作的问题,并上传到 Moodle 的例子。

在这里输入图片描述

2

我找到了一种可能的解决方案,可能可以用RGoogleDocs这个包来实现。因为内容比较长,我把它发在这里作为回答。我仍然希望能找到更好的方法,所以这个问题我会保持开放。

下面是这个想法的要点,虽然还没有经过测试。

  1. 使用knitr/Sweave创建每个作业的多个版本。
  2. 通过uploadDoc把这些版本上传到GoogleDocs
  3. 使用setAccess为每个学生分享一个文档,这个功能可以修改访问权限。
  4. 创建一个公共的Google表单,收集每个学生的最终答案。

我看到的好处有两个。首先,所有的最终答案都可以保存在一个电子表格里,这样我可以用R来访问它们并自动评分。其次,因为我可以访问所有在Google Docs上完成的作业,我可以快速浏览这些作业,并根据需要提供个别的反馈(或者让我的一些助教来做)。

如果我能把这个方法搞定,我会更新进展,甚至可能会创建一个R包,如果对其他人有用的话。

9

你提问的方式让人不太明白为什么你必须在线给学生的作业打分。特别是你提到你是用sweave生成作业的。如果你用R来生成(随机化的)题目,那你其实也应该用R来给它们打分(或者输出数据集)。

对于我的课程,我有几种策略。

  1. 在期末考试时(大约500名学生),每个学生都会得到一个独特的数据集。学生们登录一个简单的网站(我们使用黑板系统,因为学校已经设置好了)。所有学生回答同样的问题,但用的是他们自己独特的数据集。例如,“平均值是多少”。答案是通过一个R脚本离线批改的。

  2. 在我的入门R课程中,学生们上传他们的R函数,我会离线运行并给他们打分。我使用sweave为每个学生生成一个独特的PDF。这个PDF会显示他们扣分的地方。例如,他们没有使用正确的命名参数。

将一个简单的网页表单与离线打分结合起来,给你带来了很大的灵活性,而且相对简单。

撰写回答