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

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


当我开始教书的时候最优控制与动态规划用MATLAB®在Technische Universiteit Eindhoven(TU / E),我预计班级大约约40级。到我的意外,150名学生注册。我最初是高兴的,但我很快意识到课程的普及呈现了重要问题:我只有两名教学助理。这个学期,一位助手几乎所有的时间分级;他花了三天来测试学生的Matlab代码并记录单一分配的成绩。

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

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

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

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

虽然我的学生来自广泛的背景,大多数进入班级已经熟悉MATLAB。少数不懂MATLAB的转校生随着课程的进展很容易地学会了它;他们以前缺乏经验,但这并不妨碍他们。

使用Cody课程自动分级分配

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

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

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

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

图1所示。Cody课程中关于第二次作业问题的结果总结。

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

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

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

我的教学助理和我在Cody课程中监控了Cody课程的结果,以跟踪正确和不正确的解决方案,当提交解决方案时,以及在代码行中测量的提交的大小(图2)。金宝搏官方网站我们使用这些信息来识别学生发现困难的概念,以便我们稍后可以在讲座中查看这些概念。

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

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

扩展Cody课程作业的使用

对于未来版本的课程,我正在考虑使用Cody Coursework自动考试评分。我也愿意让课程更具互动性。例如,如果学生没有掌握一个特定的概念,我可能会增加一个额外的,以前没有计划的作业。在没有自动评分的情况下,像这样匆忙地增加另一份作业是不可行的,因为它会占用助教的时间。

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

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

学生反馈

学生对科迪课程的反馈非常积极。以下是我们收到的回复样本:

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

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

我对Cody课程作业的经验非常积极。绿色复选框是获得高档的额外动力。“Koen B.

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

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

关于作者

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

发布2016 - 93065v00

查看相关功能的文章