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

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

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

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

图1所示。弗吉尼亚理工大学的MATLAB综合课程。

一个根本性的改变

为了容纳140多名学生,计算方法过去是一门传统的以讲座为主的课程。每周两次75分钟的讲座由MATLAB的家庭作业补充,旨在加强课堂上涵盖的材料。

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

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

改变课程结构使我们能够教授一个140到180名学生的班级,同时为每个学生提供定期、直接接触教师的机会。这一变化导致了另一项调整,以使课程更加有效:用在线MATLAB教程补充授课材料。

利用交互式MATLAB教程

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

虽然工程学生在他们的第一年接触MATLAB,在第一次实验室会议之前,他们回顾介绍MATLAB教程,他们已经看到,使他们回到速度。然后,他们被分配的部分额外的模块,从基础MATLAB教程和交互式计算数学教程,匹配教学大纲的主题,因为他们继续。让我特别高兴的是,MathWorks开发了我建议的更高级的计算数学教程,一旦我们看到了基础教程的好处。

交互式MATLAB教程的格式满足了修改后课程的需要。在提供新材料之后,指导课程会提出问题并对学生的回答进行反馈。在某些情况下,学生必须输入MATLAB命令来响应。然后,在学生需要使用这些概念和命令来完成家庭作业之前,该模块会评估他们回答的正确性。这种互动在课堂和计算机实验室之间布置的自主学习活动中特别有用。

用MATLAB Cody Coursework实现作业自动评分

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

解决方案是使用MATLAB Cody Coursework自动评分作业。助教们现在每周开始都会和我和我的同事Kevin Wang见面一小时。然后,他们将100%的剩余时间用于教学实验和办公时间;他们不花时间评分。学生将每周的Cody Coursework作业复制到当地的MATLAB环境中,并按照自己的节奏解决问题。更急切的工作,并开始解决下节课交的家庭作业问题。由于在提交作业时使用了测试套件来评分,学生们就他们的结果得到即时反馈,绿色的复选标记表明是正确的解决方案(图2)。

图2。在MATLAB Cody Coursework中的学生作业结果示例。

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

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

将MATLAB集成到课程中

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

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

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

航空航天和海洋工程的学生每学期都变得更加熟练,处理越来越有挑战性的问题和设计项目。一些过去的学生告诉我,他们已经把在我的课上学到的数值方法应用到他们的实验课和高年级的设计课程中——而且使用的方式出乎他们的意料。

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

教学分析思考

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

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

我和我的同事们认为,培养学生的分析思维能力是很重要的,这是学习如何编写算法所带来的。即使它们最终服务的公司使用高度专业化的应用程序,也几乎总是需要修改算法和分析。通过在第二年采用MATLAB的实际操作方法,并将MATLAB集成到工程项目中,我们让我们的学生具备公司要求工程毕业生的关键分析技能,包括使用数值方法解决实际工程问题的能力。

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

关于作者

Robert Canfield是弗吉尼亚理工大学航空与海洋工程系的教授和学术事务助理主管。他的研究兴趣包括多学科设计优化,高空长航时传感器,以及飞行器概念设计的空气弹性灵敏度。在加入弗吉尼亚理工学院之前,坎菲尔德博士在美国空军工作了24年。他持有杜克大学(Duke University)机械工程学士学位、斯坦福大学(Stanford University)航空航天硕士学位和弗吉尼亚理工大学(Virginia Tech)工程力学博士学位。

发布于2015 - 91984v02