在Matlab编程课程中自动分级分配

由Duarte GuerreiroToméAntunes,Technische Universiteit Eindhoven


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

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

MATLAB教学最优控制与动态规划

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

Matlab使我能够在理论和实践之间取得平衡。学生学习讲座的概念,然后在Matlab实施和测试。例如,他们了解如何在Matlab中使用数字方法解决双点边值问题来应用Pontryagin的最大原理。学生需要的许多其他功能都建立在Matlab中;例如,当他们想要使用线性二次调节器(LQR)或卡尔曼滤波器时,它们可以简单地从脚本中调用它而不是必须自己实施。动态编程和决策问题,例如生成销售资产的最佳策略,在Matlab中很容易编码。

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

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

向课程引入Cody课程是简单的。我为学生提供了一些关于如何提交解决方案的提示;金宝搏官方网站不需要冗长的培训课程。

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

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

对于最终作业,要求学生调整LQR控制器的矩阵以满足特定的一组约束。再次,他们使用Cody课程立即检查他们的解决方案并继续炼制它们,直到他们达到要求。金宝搏官方网站教学助理和我依靠Cody课程筹集分配并提供了我们用于监控进展的结果的摘要(图1)。

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

自动分级的意外好处

我使用Cody课程的主要目标是最大限度地减少教学助理花费分配的时间。我发现Cody课程作业有其他好处。

关于作业的即时反馈被证明是一个重要的动机。看到一个人的同学成功完成了一项任务,表明它可以完成,并激励努力坚持不懈的学生。在频谱的另一端,掌握了物质的学生更容易互相竞争,成为第一个找到正确解决方案的学生。

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

图2. Cody课程解决方案地图显示正确和不正确提交的学生解决方案,以及其尺寸和抵达顺序。金宝搏官方网站

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

扩大科迪课程的使用

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

与此同时,我正在倡导在TU / E的扩展使用Cody课程。由于我的一些同事已经发现,对于使用MATLAB的任何课程,Cody课程是一个高效的工具,节省了时间和工作,并完全从事课程任务中的学生。

注意:Cody课程在2018年7月成为Matlab Grader。

学生的反馈

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

“你可以在一个相当复杂的代码上获得直接反馈(或确认)的事实真的很整洁,而且没有它,调试自己的代码真的是一团糟。它还激励我在所有Matlab作业中获得100%的分数。“Joost P.

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

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

“Cody课程的最有用的特点是能够检查我们解决各种测试用例的解决方案,这有助于调试我们的代码并以更广泛的方式制定它。”金宝搏官方网站Amrith V.

“我喜欢你立即收到反馈,这使得在代码中找到问题更容易......我在相对短期内从Matlab作业学到了很多东西。“ruud s.

关于作者

Duarte GuerreiroToméAntunes是埃因霍温的Technische Universiteit助理教授。他从里斯本的Instituto高级Técnico(IST)的电气和计算机工程中获得了Licenciatura。他掌握了博士学位。来自IST系统和机器人研究所。他的研究兴趣包括网络控制系统,随机控制,多速率和采样数据系统,优化和动态编程。

发布2016年 - 93065V00

查看相关功能的文章