MATLAB编程课程作业的自动评分

作者:Duarte Guerreiro Tomé Antunes,埃因霍芬理工大学


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

下次我教导课程时,我们使用Cody PriscorWork™自动级分配。这种方法显着改善了学习结果。它使教学助理能够花更多的时间与学生直接工作,激励学生通过为他们的工作提供即时反馈,并展示了学生学习的概念以及他们需要帮助的概念。

用MATLAB讲授最优控制和动态规划

一些教师教授最佳的控制和动态规划,重点强调数学 - 特别是对髓叉素的最大原则。其他人绕过数学并直接进入应用程序。我试图找到一个平衡,但我大家都赞成后一种方法,因为TU / E是一所技术大学,我们的学生通常更喜欢抽象理论的实际应用。

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

虽然我的学生来自各种背景,但大多数都进入了已经熟悉MATLAB的课程。在课程进展方面,少数不知道Matlab的转移学生很容易学会;他们缺乏以前的经历从来都不是障碍。

自动批改作业与科迪课程

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

对于三个课程任务中的每一个,学生编程Matlab函数以解决特定问题。当学生认为他们所写的功能是正确的,他们将它们提交给Cody课程进行分级。Cody课程作业使用我的教学助理和我创建的测试套件自动评级作业,然后提供关于解决方案的正确性的即时反馈。学生可以自由重新提交解决方案,直到他们对他们的成绩感到满意。金宝搏官方网站

在离散优化的第一个任务中,证明了相对容易。第二个关于近似动态编程,更具挑战性,因为没有最佳解决方案。这意味着学生必须尝试许多次优策略,包括模型预测控制,卷展览和确定性等效控制。在这项任务上,学生来欣赏即时分级的价值。如果他们提交了一个不正确的解决方案,他们可以返回他们的代码,以寻找改善它的方法,而无需等待咨询我或教学助理。

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

图1.第二分配问题Cody课程结果的结果摘要。

自动评分的意想不到的好处

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

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

我的助教和我在Cody Coursework中监控结果,跟踪正确和错误的解决方案,何时提交解决方案,提交的大小,金宝搏官方网站我们使用这些信息来识别学生觉得困难的概念,以便我们以后可以在课堂上回顾这些概念。

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

我们设计了CODY课程使用的测试来检查学生工作的逐步更复杂的方面。例如,在结合成本函数的问题上,我们创建了一个无终端成本的测试,并且一个具有终端成本的测试。考虑终端成本的学金宝搏官方网站生解决方案将通过两个测试,而那些并没有通过第一个测试。我们还使用了可见的测试(其中正确的输出到显示的测试)和隐藏的测试(其中测试仅显示代码是否正确或不正确)。这一粒度水平提供了更公平的方式来分配成绩并帮助我们帮助我们更好地了解学生如何吸收材料。

扩大Cody课程的使用

对于课程的未来版本,我正在考虑使用Cody课程来自动化考试分级。我也开放,使课程更加互动。例如,如果学生没有掌握特定概念,我可以添加额外的,以前没有计划的分配。如果没有自动评分,就像在教学助理上所需的时间一样,这样的苍蝇添加另一个分配是不可行的。

同时,我提倡在TU/e扩大Cody Coursework的使用。正如我的一些同事已经发现,对于任何使用MATLAB的课程,Cody Coursework是一个非常有效的工具,节省时间和工作,并充分参与学生的课程作业。

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

学生的反馈

学生对Cody课程作业的反馈是绝大多数积极的。以下是我们收到的响应的样本:

事实上,对于一段相当复杂的代码,你可以立即得到反馈(或确认),这真的很好,没有它,调试你自己的代码将会是一团乱麻。这也激励我在所有的MATLAB作业上取得100%的分数。”Joost P。

“Cody课程是一个很棒的平台。它让我对解决方案的信心,而不是等待教师评估。“Manoj P.

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

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

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

关于作者

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

发布2016 - 93065v00

查看相关功能的文章