技术文章及通讯

在弗吉尼亚理工大学向140多名二年级工程学生教授计算方法

罗伯特·a·坎菲尔德博士,弗吉尼亚理工大学


MATLAB®多年来一直是弗吉尼亚理工大学《AOE 2074:计算方法》的核心计算工具。这个二年级的课程为工程专业的学生提供了他们在整个学术生涯和以后都需要的两套技能。第一个是使用数值方法解决工程问题的能力,这些问题包括寻根、联立线性方程、线性回归、插值、数值积分和微分。第二是应用MATLAB作为计算工具和编程语言的能力。

当我开始教授这门课程时,我想给学生更多的MATLAB实践经验,并与助教进行更多一对一的指导。这些变化要求对课程结构进行重大改革。修订后的课程为整个系范围的方法提供了基础,旨在在整个航空航天和海洋工程课程中更深入地集成MATLAB(图1)。

VirginaTechArticle_Fig1_w.jpg
图1。弗吉尼亚理工大学的MATLAB综合课程。

根本性的改变

为了容纳通常入学的140多名学生,计算方法以前是传统的以讲座为基础的课程。每周两次75分钟的讲座,辅以MATLAB的家庭作业,旨在加强课堂上所涵盖的材料。

这种形式的一个主要缺点是,在介绍一个概念和让学生自己尝试之间花费了太多时间。当学生学习编程和解决问题时,他们需要在学习过程中应用所学到的知识。按顺序展示太多的主题,而不让学生解决相关的问题,这会让他们很难吸收所学的知识。

为了解决这个问题,我把第二个75分钟的讲座变成了一个实验环节。教学助理(助教)负责这些课程,每个助教与大约30名学生一起工作。这些实验室不仅能让学生和他们的助教进行一对一的互动;他们还可以让学生在一起做例子的同时互相学习。更重要的是,学生在学习一种新的数值方法后,很快就可以在助教的指导下动手使用MATLAB。

改变课程结构使我们能够教140到180名学生,同时为每个学生提供定期的、直接的指导。这一变化促成了另一项调整,以使课程更有效地运行:用在线MATLAB教程补充课堂材料。

利用交互式MATLAB教程

因为我把讲课时间减少了一半,所以我想用学生可以自己完成的学习活动来补充讲课。交互式的在线MATLAB教程非常适合。除了提供MATLAB的基本介绍外,它还包括课程中涉及的许多主题的模块,包括计算数据分析、曲线拟合、数据可视化和MATLAB编程基础知识。

虽然工程专业的学生在第一年接触MATLAB,但在第一次实验之前,他们会回顾他们已经看过的MATLAB入门教程,以使他们恢复速度。然后,他们将从基础MATLAB教程和交互式计算数学教程中分配额外模块的部分,这些模块与教学大纲的主题相匹配。我特别高兴MathWorks开发了更高级的计算数学教程,这是我在看到基础教程的好处后建议的。

交互式MATLAB教程的格式满足了改版后课程的需要。在呈现新材料后,教程提出问题并反馈学生的回答。在某些情况下,学生必须通过输入MATLAB命令来响应。然后,在学生需要使用这些概念和命令完成家庭作业之前,该模块评估他们回答的正确性。这种互动性对于在讲座和计算机实验室之间安排的自主学习活动特别有帮助。

自动作业评分与MATLAB Cody课程

对于助教来说,新的课程结构强调教学和与学生一对一的互动。为了适应这种转变,我需要减轻助教们的一些负担。在过去,五名助教每周25到30个小时的大部分时间都花在批改实验和家庭作业上。我希望助教们花更多的时间直接与学生打交道,而不是增加他们的工作量。

解决方案是使用MATLAB Cody Coursework来自动评分作业。助教们现在每周开始和我以及我的同事Kevin Wang开一个小时的会。然后,他们将剩余时间100%用于教学实验室课程和办公时间;他们不花时间评分。学生将每周的Cody课程作业复制到他们当地的MATLAB环境中,并按照自己的节奏解决问题。更积极地提前工作,开始解决下节课要交的家庭作业问题。因为使用测试套件对提交的每个作业进行评分,学生可以获得关于结果的即时反馈,绿色的复选标记表示正确的解决方案(图2)。

VirginaTechArticle_Fig2_w.jpg
图2。样本学生作业结果在MATLAB Cody课程。

鼓励学生在提交解决方案之前在本地调试他们的代码。金宝搏官方网站

起初,因为学生们在Cody课程中看到了一套必须通过的测试用例,我们担心作业可能太简单了,但我们的担心被证明是没有根据的——这种方法可以让学生更快地从他们自己的错误中学习。从教学角度来看,转向科迪课程已被证明是有益的,学生的反馈也很积极。一个学生告诉我:“我活着就是为了绿色的对号!”总的来说,科迪课程提高了学生在课程中的参与度。

将MATLAB集成到课程中

计算方法是所有航空航天和海洋工程专业二年级学生的必修课。在重新设计课程时,我向系里的同事询问了他们布置的需要使用数值方法和MATLAB的问题。王教授和我结合了他们的意见,用他们的一些课程材料来补充Steven Chapra的教材中提供的例子应用数值方法与MATLAB工程师和科学家。

Chapra用一个蹦极的例子说明了几个概念。我们的学生使用MATLAB来模拟单个蹦极者和几个连接在一起的蹦极者的动力学。其他指定的问题包括模拟火箭的轨迹,计算机翼上的空气动力,以及从风洞实验中拟合数据。像这样的例子可以让学生参与进来,帮助他们可视化系统行为。课程内容大致遵循教科书中的材料,从建模和编程开始;继续到根和优化,线性系统,曲线拟合,积分和微分;最后以简单的微分方程结束。

在大二第二学期,我们已经将计算方法作为入门课程的先决条件。教授初级和高级课程,要求学生找到数值解依赖于学生有经验解决他们用MATLAB。金宝搏官方网站因为教师现在可以依靠我们的学生掌握MATLAB的基础知识,他们可以更深入地学习课程材料(见图1)。我们预计,随着更多的课程纳入MATLAB,这种效果将被放大。

航空航天和海洋工程专业的学生每学期都会变得更加熟练,解决越来越具有挑战性的问题和设计项目。过去有几个学生告诉我,他们已经把在我的课上学到的数值方法用在了他们的实验实验课和高级设计课上——而且是以他们意想不到的方式。

改革后的课程已取得积极成果。我们系教授一门天体动力学课程,在这门课程中,学生使用MATLAB来完成一些家庭作业。在课程开始时,教师会给出一个评估测试来测试学生的MATLAB知识。一旦他的班上有学生参加了修订后的计算方法,他注意到他们在MATLAB评估测试中的得分明显高于前几年的学生。

分析思维教学

在他的讲座中,王教授经常使用MATLAB交互式地创建图表来说明新概念,或演示教科书中的示例。使MATLAB成为优秀教学工具的许多特性(包括交互式执行命令和可视化结果的能力)也使其成为有效的学习工具。学生不必用低级语言编译、执行和调试代码。相反,他们可以通过交互式输入MATLAB命令来开发算法。例如,他们使用绘图功能来验证他们对一个下落的蹦极者达到终端速度的模拟,然后将所有步骤组装到一个脚本中(图3)。

VirginaTechArticle_Fig3_w.jpg
图3。交互式MATLAB绘图和脚本,用于向学生介绍数值方法。看动画。

我的同事和我相信,培养学生的分析思维能力是很重要的,这是学习如何编程算法的结果。即使他们最终工作的公司使用高度专业化的应用程序,也几乎总是需要修改算法和分析。通过在第二年采用MATLAB的实践方法,并在整个工程课程中集成MATLAB,我们为学生配备了公司要求工程毕业生的关键分析技能,包括使用数值方法解决实际工程问题的能力。

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

作者简介

罗伯特·坎菲尔德是弗吉尼亚理工大学航空航天与海洋工程系教授兼学术事务助理主任。他的研究领域包括多学科设计优化、高空长航时传感器和飞行器概念设计的气动弹性灵敏度。在加入弗吉尼亚理工大学之前,坎菲尔德博士在美国空军工作了24年。他持有杜克大学机械工程学士学位,斯坦福大学航空航天硕士学位,弗吉尼亚理工大学工程力学博士学位。

发布于2015年9月19日