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

Duarte Guerreiro Tome Antunes, Technische Universiteit Eindhoven

当我开始教最优控制和动态规划与MATLAB®在埃因霍温理工大学(TU / e)的,我预期的约40每班令我惊讶的是,150名学生就读。我最初是高兴,但我很快意识到,该课程的普及提出了显著的问题:我只有两个助教。这学期,一个助理花了几乎所有的时间分级;他花了三天测试学生的MATLAB代码并记录牌号为分配一次。

接下来的时间,我教的过程中,我们使用了科迪习作™等级的任务自动完成。这种方法显著提高学习效果。它使助教花更多的时间直接与学生一起工作,通过对他们的工作提供即时反馈激励学生,并给我看什么概念,学生学习好,他们需要帮助。

用MATLAB进行最优控制和动态规划的教学

一些教师教最优控制和动态规划与重点强调的庞特里亚金的最大值原理数学特异性。其他绕过数学和直接进入应用程序。我试图找到平衡,但我大多倾向于后一种方法,因为TU / e是一所技术大学和我们的学生通常更喜欢抽象的理论的实际应用。

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

虽然我的学生来自不同背景,大部分进入了阶级已经熟悉MATLAB。谁也不知道MATLAB的几转学生容易掌握它作为课程的进展;他们缺乏以往的经验从来就不是一个障碍。

自动评分作业与科迪作业

科迪介绍习作的类是直接的。我公司提供的学生如何提交他们的解决方案的一些技巧;万博 尤文图斯没有被要求冗长的培训课程。

对于这三个课程作业,学生编程功能的MATLAB解决具体问题。当学生认为他们所写的功能是正确的,他们提交给科迪习作进行分级。科迪习作自动年级使用的测试套件,我的助教,我创建了分配,然后提供解决方案的正确性,及时反馈。直到他们满意自己年级的学生可以自由地重新提交解决方案。万博 尤文图斯

第一次分配,离散优化,证明相对容易。第二,在近似动态规划,是更具挑战性,因为没有最优解。这意味着学生们尝试了一些次优策略,包括模型预测控制,部署,并确定相应的控制。在此作业,学生们开始欣赏即时分级的价值。如果他们提交了不正确的解决方案,他们可以回到自己的代码,以寻求新的方式来改善它,而无需等待咨询我或助教。

在最后的作业中,学生们被要求调整LQR控制器的矩阵以满足一组特定的约束条件。再次,他们使用Cody Coursework立即检查他们的解决方案,并继续完善,直到满足要求。万博 尤文图斯教学助理和我依靠Cody Coursework对作业进行评分,并提供结果总结,我们用它来监控进度(图1)。

图1概要科迪课程作业结果用于在所述第二分配的问题。

自动评分意想不到的好处

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

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

我的教学助理和我监测科迪习作结果跟踪正确和不正确的解决方案,在方案提交,及意见书的大小,代码行测(图2)。万博 尤文图斯我们使用这些信息来确定学生们发现困难,使我们可以在以后回顾讲课这些概念的概念。

图2。科迪课程作业解决方案地图显示正确和不正确提交的学生解决方案,以及他们的大小和到达的顺序。万博 尤文图斯

我们设计使用的科迪习作来检查学生的作业的逐步更复杂方面的测试。例如,在该引入的成本函数的问题,我们创建了一个测试不使用终端的成本和一个与终端成本。学生的解决方案,万博 尤文图斯把终端成本的考虑将通过这两个试验,而那些没有只通过第一。我们还使用可见光测试(其中正确的输出到测试显示)和隐藏测试(其中只测试显示代码是否正确或不正确的)。这粒度级别提供一个更公平的方式分配等级,并帮助我们更好地了解如何以及学生们吸收材料。

扩大科迪的课程使用

对于课程的未来版本,我使用的科迪习作自动化考试等级考虑。我也开使课程更具互动性。例如,如果学生不抓一个特定的概念,我可以添加一个额外的,以前无计划分配。如果没有自动分级,将在这样的飞行另一项任务不会是因为对时间的要求,将放置在助教的可行性。

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

注:Cody Coursework于2018年7月成为MATLAB Grader。

学生的反馈

在科迪习作学生的反馈是非常积极的。这是我们收到的回复的示例:

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

“科迪习作是一个很好的平台。它给了我关于我的解决方案更有信心,而不是等待教师评价。”马诺P.

我在科迪课程的工作经历非常积极。绿色的复选框是获得高分的额外动机。”柯恩B。

“Cody Coursework最有用的功能是能够根据各种测试用例检查我们的解决方案,这有助于调试我们的代码,并以更通用的方式编写代码。万博 尤文图斯“Amrith V

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

关于作者

Duarte Guerreiro Tome Antunes是Eindhoven科技大学的助理教授。他获得了里斯本高级技术研究所颁发的电子和计算机工程执照。他拥有IST系统和机器人研究所的博士学位。他的研究兴趣包括网络控制系统、随机控制、多速率和采样数据系统、优化和动态规划。

出版于2016 - 93065v00


查看相关功能的文章