技术文章及通讯

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

杜阿尔特·格雷罗Tomé安图内斯,埃因霍温工业大学


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

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

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

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

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

虽然我的学生来自广泛的背景,大多数进入课堂已经熟悉MATLAB。少数不懂MATLAB的转校生随着课程的进行很容易就学会了;他们没有经验从来都不是障碍。

自动评分作业与科迪课程

将科迪课程引入课堂很简单。我为学生们提供了一些关于如何提交解决方案的建议;不需要长时间的训练。

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

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

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

图1。科迪课程中关于第二次作业中问题的结果总结。

图1。科迪课程中关于第二次作业中问题的结果总结。

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

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

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

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

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

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

我们设计了科迪课程使用的测试,以逐步检查学生工作中更复杂的方面。例如,对于包含成本函数的问题,我们创建了一个没有终端成本的测试和一个有终端成本的测试。将终端成本考虑在内的学生解决方案将通过两个测试,而那些没有通过的解决方案将只通过第一个测试。我们还使用了可见测试(其中显示了测试的正确输出)和隐藏测试(其中测试只显示了代码是正确还是不正确)。这种级别的粒度提供了一种更公平的方式来分配分数,并帮助我们更好地了解学生吸收材料的情况。

扩展科迪课程的使用

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

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

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

学生的反馈

学生对科迪课程的反馈是压倒性的积极。以下是我们收到的一些回复:

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

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

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

“Cody Coursework最有用的功能是能够根据各种测试用例检查我们的解决方案,这有助于调试我们的代码,并以更通用的方式制定它。”Amrith V

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

作者简介

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

发布日期:2016年9月25日

查看相关功能的文章

Baidu
map