技术文章和通讯

MATLAB程序设计课程作业自动评分

Duarte Guerreiro Tomé Antunes,埃因霍温科技大学


当我开始教书的时候最优控制与动态规划用MATLAB®在埃因霍温理工大学(TU/e),我预计班级规模约为40人。令我惊讶的是,有150名学生报名。起初我很高兴,但我很快意识到这门课的受欢迎带来了一个严重的问题:我只有两个助教。那个学期,一位助理几乎把所有时间都花在了评分上;他花了三天时间测试学生们的MATLAB代码,并记录了单个作业的成绩。

下次我教这门课时,我们使用Cody Coursework™自动评分作业。这种方法显著提高了学习效果。它使助教能够花更多的时间直接与学生一起工作,通过对学生的工作提供即时反馈来激励学生,并向我展示学生学习得好的概念和他们需要帮助的地方。

用MATLAB教授最优控制与动态规划

一些教师在教授最优控制和动态规划时,非常强调数学,特别是庞特里亚金的极大值原理。另一些人则绕过数学,直接进入应用程序。我试图找到一个平衡,但我更喜欢后一种方法,因为TU/e是一所技术大学,我们的学生通常更喜欢实际应用而不是抽象的理论。

MATLAB让我在理论和实践之间找到了平衡点。学生在课堂上学习概念,然后在MATLAB中实现和测试。例如,他们在MATLAB中通过数值方法求解两点边值问题,学习如何应用庞特里亚金极大值原理。学生需要的许多其他函数都内置到MATLAB中;例如,当他们想要使用线性二次调节器(LQR)或卡尔曼滤波器时,他们可以简单地从脚本中调用它,而不必自己执行它。动态规划和决策问题,如为出售资产生成最优策略,很容易在MATLAB中编码。

虽然我的学生来自广泛的背景,但大多数进入课堂已经熟悉MATLAB。少数不懂MATLAB的转校生随着课程的进行也轻松的学会了MATLAB;他们缺乏以往的经验从来不是一个障碍。

自动评分作业与科迪课程作业

把Cody Coursework介绍给全班同学很简单。我给学生们提供了一些如何提交解决方案的建议;金宝搏官方网站不需要长时间的训练。

对于三个课程作业中的每一个,学生都要编写MATLAB函数来解决具体问题。当学生认为他们写的函数是正确的,他们提交给Cody Coursework进行评分。Cody Coursework使用我和我的助教创建的测试套件自动为作业评分,然后对解决方案的正确性提供即时反馈。学生可以自由地重新提交解决方案,直到他们对自己的成绩感到满意金宝搏官方网站为止。

第一个任务,关于离散优化,证明相对容易。第二个是关于近似动态规划的,因为没有最优解,所以更具挑战性。这意味着学生必须尝试一些次优策略,包括模型预测控制、推出和确定性等效控制。对于这项作业,学生们开始意识到即时评分的价值。如果他们提交了一个不正确的解决方案,他们可以回到他们的代码中寻找改进的方法,而不必等着咨询我或助教。

在最后的作业中,学生被要求调整LQR控制器的矩阵以满足特定的约束集。再次,他们使用Cody Coursework立即检查他们的解决方案,并继续完善它们,直到它们满足需求。金宝搏官方网站我和助教们依靠Cody Coursework给作业评分,并提供结果总结,我们用它来监控进度(图1)。

图1所示。科迪课程第二项作业中问题的结果总结。

图1所示。科迪课程第二项作业中问题的结果总结。

自动评分的意外好处

我使用Cody Coursework的主要目的是尽量减少助教批改作业的时间。我发现科迪课程还有其他好处。

对任务的即时反馈被证明是一个重要的激励因素。看到自己的同学成功地完成了一项作业,这表明它是可以完成的,并激励那些正在努力坚持下去的学生。另一方面,更容易掌握材料的学生相互竞争,第一个找到正确答案。

我和我的助教监控了Cody Coursework的结果,以跟踪正确和不正确的答案,答案提交的时间,以及提交的数量,金宝搏官方网站用代码行数来衡量(图2)。我们使用这些信息来识别学生觉得困难的概念,以便稍后在课堂上复习这些概念。

图2。科迪课程解决方案地图,显示正确和不正确的学生提交的解决方案,以及他们的大小和到达顺序。金宝搏官方网站

图2。科迪课程解决方案地图,显示正确和不正确的学生提交的解决方案,以及他们的大小和到达顺序。金宝搏官方网站

我们设计了Cody Coursework所使用的测试,以逐步检查学生作业的更复杂方面。例如,在包含成本函数的问题上,我们创建了一个没有终端成本的测试和一个有终端成本的测试。考虑到终端成本的金宝搏官方网站学生解决方案将通过两个测试,而那些没有通过的只通过第一个测试。我们还使用了可见测试(其中显示了对测试的正确输出)和隐藏测试(其中测试只显示代码是正确的还是错误的)。这种水平的粒度提供了一种更公平的方式来分配分数,并帮助我们更好地了解学生对材料的吸收程度。

扩大科迪课程的使用

对于该课程的未来版本,我正在考虑使用Cody Coursework自动化考试评分。我也愿意让课程更具互动性。例如,如果学生没有掌握一个特定的概念,我可能会增加一个额外的、事先没有计划的作业。如果没有自动评分系统,像这样匆忙增加另一项作业是不可能的,因为这会给助教带来时间上的要求。

与此同时,我主张扩大科迪课程在理工学院的使用。正如我的一些同事已经发现的,对于任何使用MATLAB的课程来说,Cody Coursework都是一个非常有效的工具,可以节省时间和工作,并让学生充分参与到课程作业中。

注:Cody Coursework于2018年7月成为MATLAB评分员。

学生的反馈

学生对Cody Coursework的反馈非常积极。以下是我们收到的回应样本:

“事实上,你可以在一段相当复杂的代码上获得即时反馈(或确认),这确实是一件很棒的事情,如果没有它,调试你自己的代码将会是一团糟。这也激励我在所有MATLAB作业中获得100%的分数。”Joost P。

“Cody Coursework是一个很棒的平台。这让我对自己的解决方案更有信心,而不是等待指导员的评价。“Manoj P。

我在Cody Coursework的经历非常积极。绿色复选框是获得高分的额外动力。”柯恩B。

“Cody Coursework最有用的特性是能够根据各种测试用例检查我们的解决方案,这有助于调试我们的代码,并以一种更一般化的方式将其公式化。”金宝搏官方网站Amrith V

“我喜欢你能立即收到反馈,这让你更容易发现代码中的问题……在较短的时间内,我从MATLAB作业中学到了很多。”路德。

关于作者

Duarte Guerreiro Tomé Antunes是埃因霍温理工大学的助理教授。他获得了里斯本高等学院Técnico (IST)的电子和计算机工程执照。他拥有IST系统与机器人研究所的博士学位。他的研究兴趣包括网络控制系统,随机控制,多速率和采样数据系统,优化和动态规划。

发布于2016 - 93065v00

查看相关功能的文章