Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

为脚本类型的学生答案编写评判

当您编写测试来评判脚本类型的习题的答案时,MATLAB® Grader™ 提供了用于检查变量等式以及特定关键字和函数是否存在的评判方法。

以下概念和过程可以帮助编写评判:

您可以查看示例:“Symbolic Taylor Expansion”编程习题的评判中提供的一些评判示例。

阅读测试学生答案,了解影响学生答案评判的因素。

MATLAB Grader 测试类型

您无需编写代码即可轻松创建最常见的评判。要创建评判,请选择测试类型并指定要测试的方面:

  • 变量等于参考答案 - 检查学生答案中是否存在指示的变量以及该变量是否等于参考答案中的相同变量。容差仅适用于数值数据类型。

  • 函数或关键字存在 - 检查学生答案中是否存在特定函数或关键字。

  • 函数或关键字缺失 - 检查学生答案中是否未包含特定函数或关键字。

通过点击将测试转换为代码,将任何测试转换为 MATLAB 代码。

如果您希望编写自己的评判代码,请选择 MATLAB 代码测试类型。您可以使用内置评判函数 assessVariableEqualassessFunctionPresenceassessFunctionAbsence 来整合上列测试。

执行模型

执行模型说明了如何在 MATLAB Grader 中运行评判和标记评判结果。

  • 当学生提交脚本类型的答案以进行评判时,系统会运行参考答案和学生提交的答案。然后,您的评判将用来评估学生答案。

  • 每个评判依次独立于其他评判运行。如果学生答案未通过某个评判,系统仍会运行后续评判。

  • 在一个评判中创建的变量在下一个评判中不可用。应在每个评判中定义所有必需的变量。

  • 评判可以通过使用 referenceVariables.variable_name 语法来访问参考答案中的变量。

  • 如果代码终止运行且没有报错,则系统会将评判标记为正确。如果代码返回错误,则系统会将评判标记为错误。

  • 如果学生答案包含语法错误,则系统会将该答案的所有评判都标记为错误。

如果评判是自测,则无论答案是否通过评判,学生都可以通过点击测试名称左侧的箭头查看评判代码。

给定编程习题的每个评判都会影响运行答案和评判的执行时间。有关更多详细信息,请参阅提交的时间限制

示例:“Symbolic Taylor Expansion”编程习题的评判

本节使用的的代码示例来自 Symbolic Taylor Expansion 习题,您可以在 MATLAB Grader 主页的 Getting Started with MATLAB Grader 下的 MATLAB Grader 习题目录中找到该习题。

在此示例中,学生需要编写一个脚本,使用符号变量计算 f(x)=e to the -x sin(x)cos(x)(当 x = 0 时)的泰勒级数(n = 8)近似值。评判中包括三项编程准确度测试。

测试是否存在泰勒函数

在此评判中,教师会检查是否存在特定函数,并在学生答案未通过评判时提供相应反馈。

Example of test type function or keyword is present

测试变量是否正确定义

此评判检查指定变量在学生答案和参考答案中的值是否相同,并在学生答案未通过评判时提供相应反馈。

Example of test type variable equals reference solution

测试学生代码是否正确(MATLAB 代码)

此评判使用 MATLAB 代码和内置评判函数来测试学生答案。教师还指定学生答案未通过评判时要向学生显示的相应反馈。

Example of MATLAB code used to calculate and then assess variable equality

尝试解答示例脚本习题

本主题中使用的示例来自 Symbolic Taylor Expansion 习题,您可以在 Getting Started with MATLAB Grader 下的 MATLAB Grader 习题目录中找到该习题。

要尝试像学生一样解答习题,请打开习题,然后点击学生预览。在答案框中输入您的代码,然后点击提交以运行评判(实际上系统不会记录任何提交答案)。请尝试评判正确代码和错误代码,以查看获得的反馈。

相关主题