技术文章及通讯

使用MATLAB教授一年级文科学生解决问题的技巧

罗伯特·塔尔伯特博士,富兰克林学院


今年春天在富兰克林学院上CMP 150:解决问题的计算机工具的学生不是那些通常上MATLAB课程的学生。很少有工程或科学专业的人,有编程经验的人更少。大多数人都在攻读教育学学位,他们之所以选择这门课程,是因为这是微积分3的先决条件。

虽然学习MATLAB似乎不是文科教育的必要条件,但使用技术和批判性思维解决问题的能力无疑是必要的。我知道大多数学习CMP 150的学生最终都会忘记函数名、命令和其他细节,但这并不重要。重要的是他们学会了如何使用MATLAB自己解决问题。

课程的动机

CMP 150的创建是为了在第一年为学生提供编程经验,并使他们能够满足我们双学位工程课程的要求。

多年来,富兰克林学院的数学专业学生都被要求学习c++编程入门课程。几位以前的学生告诉我们,如果有更多适用的编程经验,他们会受益。这些应届毕业生中有许多人指出,虽然他们不会用c++编写软件,但他们经常需要编写快速的功能代码块来解决问题或执行使用电子表格很难完成的分析。

将CMP 150添加到我们的数学课程中,使我们能够回应从富兰克林学院毕业生那里收到的反馈。它还帮助我们实现了课程修订的一个主要目标:将编程集成到更多的课程中,包括线性代数、微积分3和数值方法。

CMP 150还帮助富兰克林学院的本科生注册了我们与普渡大学工程技术学院(印第安纳波利斯)的双学位工程项目,该项目需要在富兰克林学院学习三年,然后在印第安纳大学-普渡大学-印第安纳波利斯(IUPUI)学习两年。在过去,这些学生在IUPUI上了必修的MATLAB课程。在课程修订期间,我们决定创建自己的版本,涵盖与普渡大学课程相同的主题,但与我们的其他课程更紧密地结合起来。

franklin_ws.jpg
Robert Talbert博士的课程“计算机工具解决问题”的大部分学生以前从未写过计算机程序,几乎所有人都是第一次接触MATLAB。塔尔伯特博士拥有范德比尔特大学(Vanderbilt University)的数学博士学位,他采用的是一种倒置课堂模式,授课内容、阅读材料和作业都发布在网上,课堂时间用于实际操作的实验室工作。他的教学法是基于这样的信念:“当你给自己时间去玩、去犯错和改正错误时,学习计算机工具会更有趣——有时间去培养计算机人使用的那种专业行为。”

倒置教室

CMP 150每周只进行一次,每次75分钟。为了充分利用这有限的课堂时间,我雇了一名教师倒教室模型。在这种模式下,学生在家观看视频讲座,完成在线教程,并完成要求的阅读。课堂时间主要是动手做实验,几乎没有讲座。这种安排使我有时间和学生们在一起,因为他们每周的作业是两三个人一组(图1)。尽管学生们花了一些时间来适应这种学习方式,但到学期结束时,他们已经掌握了一项宝贵的技能:自己学习和应用新概念的能力。

franklin_fig1_w.jpg
图1。塔尔伯特博士和他的学生在进行cmp150实验。

视频讲座和教程很容易扩展。在由助教支持的课程中,我提供的一对一关注可以扩展到数百名学生。

MATLAB是这种方法的理想选择。mathworks.com上的入门视频做得非常好,非常适合学习MATLAB的基础知识。我在mathworks.com上没有看到任何我觉得可以改进的材料,所以我就保留了它们。随着MathWorks教程变得越来越高级,我每周都制作了自己的关于新概念的屏幕视频,学生们在上课前观看。进一步的支持可通过MATLAB获得医生命令,使学生能够直接从命令提示符中获得任何MATLAB能力的信息。学生们发现,他们不需要被告知输入什么,他们可以通过使用来学习他们想要的任何东西医生自己做实验。

我使用Cleve Moler的在线教科书中的练习和例子MATLAB实验.除此之外,CMP 150没有必修教材。相反,我建议学生掌握MATLAB和Simulink学生版。我指出,这是一项投资,他们将在整个大学期间使用。

进入MATLAB

起初,学生们发现计算机编程的概念很难掌握。我以他们可以立即联系到的主题开始课程,使用现实世界的数据使它们更加有趣和引人注目。因为大多数学生都熟悉绘图,而绘图和可视化数据是MATLAB的一大优势,所以我从绘图开始(图2)。

franklin_fig2_w.jpg
图2。由学生用MATLAB绘制图。

学生们分析从印第安纳州交通部和其他在线资源下载的数据。在一项实验中,他们使用了一个大型数据集,其中包括25年多来每个月的汽油平均价格。数据采用矩阵形式,列为月份,行为年。为了创建图表,学生们必须学会如何处理数据。这个练习是对MATLAB矩阵运算的一个很好的介绍。学生创建一个MATLAB脚本,使用重塑函数访问不同月份的价格数据并生成这些价格的图形。然后他们用这些图表得出关于数据的结论。

本课程的下一部分涉及统计绘图、回归分析和曲线拟合。在微积分课程中,学生们使用电子表格进行回归,熟悉其中一些主题。他们很快就了解到,对于这类工作,MATLAB比电子表格强大得多,对多项式系数提供了更高的精度和更好的控制。

实验与符号数学

当学生熟悉MATLAB环境并具有绘图、使用变量和运行脚本的一些经验时,我会介绍基本的编程结构,包括条件和循环。虽然编程对大多数学生来说都是全新的,但我鼓励他们去尝试。犯错误并改正错误是学习新技能的好方法。

在一项作业中,学生编写一个简单的程序,该程序采用数字等级并产生相应的字母等级。例如,91分的成绩是A-。我不会把学生引向一个特定的解;我让他们自己设计。一些人被一系列的如果条件;其他人则选择开关声明。当我们在课堂上讨论他们的解决方案时,他们发现在MATLAB中有很多方法来解决相同的问题。

在课程结束时,学生将使用符号数学工具箱来象征性地解决问题。上个学期,一位教授微积分2的同事告诉我,他的一些学生正在与无穷级数作斗争。由于那次谈话,我改变了下周的计划。我向我的学生展示了如何使用MATLAB脚本数值计算级数的部分和,然后让他们使用MuPAD笔记本界面象征性地解决相同的问题,该界面包含在符号数学工具箱中。这个练习不仅帮助他们理解了他们苦苦挣扎的数学概念;它还提供了一个很好的例子,说明他们如何在CMP 150之外的课程中应用MATLAB和符号数学工具箱。

期末考试及其他

在期末考试中,学生必须展示四个方面的能力:绘图和可视化、数据处理、数学分析和编程。他们有两个小时的时间用MATLAB解决每个类别中的一个问题。其中一个编程问题要求他们创建一个函数来近似的值ex用泰勒多项式。另一种选择是编写一个生成第一个的脚本N斐波那契数列中的数字,其中N脚本的整数输入。我对学生们的考试表现感到满意;这表明他们在短短14周内取得了长足的进步。

我们继续将MATLAB整合到其余的课程中。学生们已经在微积分3中使用MATLAB,我正在与科学和商业部门的同事合作,以增加他们对MATLAB的使用。学生的反馈是积极的。有几个后来上过c++编程课的学生告诉我,他们非常怀念用MATLAB编程。许多学生表示,课程中最有价值的部分是学习如何自己解决一个新概念——如何找到文档或其他信息来源,并坚持下去,直到他们理解它。

批判性思考、获取和理解信息是文科教育的核心知识技能。MATLAB是学生在大学生涯早期发展和磨练这些技能的绝佳环境。

作者简介

罗伯特·塔尔伯特博士是富兰克林学院数学和计算科学副教授。他拥有范德比尔特大学的博士学位,在那里他专门研究代数拓扑学。

发布于2011 - 91906v00

查看相关功能的文章

Baidu
map