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

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

MATLAB®多年来一直是弗吉尼亚理工大学AOE2074:计算方法的核心计算工具。这门二年级课程为工科学生提供了两套技能,这两套技能是他们在整个学术生涯以及以后的职业生涯中所需要的。第一种是使用数值方法解决工程问题的能力,这些问题涉及根查找、联立线性方程组、线性回归、插值以及数值积分和微分。第二是将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实现作业自动评分

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

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

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

鼓励学生在提交解决方案之前在本地调试他们的代码。万博 尤文图斯

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

将MATLAB集成到课程中

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

查普拉用蹦极跳的例子说明了几个概念。我们的学生使用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