技术文章和通讯

用MATLAB教波士顿大学一年级工程专业学生编程

作者:斯托米·阿塔韦博士,波士顿大学


在我20年的教学生涯中工程计算概论我们使用了几种不同的语言,包括Pascal、Fortran、C和c++,但课程基本保持不变,直到最近,工程学院的一个工作组开会重新考虑了课程目标。

这一改变是由电气和计算机工程系的教师发起的,他们告诉委员会,他们希望所有的学生都能使用MATLAB学习基本的编程概念®这样学生就可以在他们的高级课程和其他课程中有效地使用MATLAB。

bu_collage.jpg
从左到右,从上到下:Attaway博士讲解for-loops,学生演示风力涡轮机数据收集项目,学生在黑板上用MATLAB解决问题,课程教科书,学生在实验室与Attaway博士一起工作,波士顿大学的工程大楼,学生创建的MATLAB图来比较DNA样本。

一些教师最初犹豫不决,认为这是在MATLAB和入门编程之间的选择——没有意识到MATLAB具有所有必要的编程结构。

乍一看,生物医学工程专业的学生只需要知道如何有效地使用MATLAB,计算机系统工程师只需要知道编程概念,但在今天的工程中,这两种技能都是至关重要的。另一个考虑是,在学习MATLAB之前学习低级语言(如c++或Java™)的学生倾向于低效地使用MATLAB,至少一开始是这样。而不是使用代码矢量化技术和许多强大的功能内置到MATLAB中,他们依靠-循环和其他低级结构。这种方法不仅耗时更长,而且得到的解决方案通常没有针对性能进行优化。金宝搏官方网站

由于这些原因,在工程计算导论我们决定采用独特的方法,将编程概念和内置函数并行教授,并使用MATLAB作为两者的载体。每学期,大约200名工程专业的学生学习如何在MATLAB中使用变量、数据结构、循环、条件、函数、输入和输出等编程概念,以及如何有效地使用MATLAB来解决工程问题。

直接进入

当我用c++教授这门课程时,我面临的最大障碍之一就是让学生们入门。我不得不给他们一份两页的单行距讲义,告诉他们如何打开合适的代码编辑器并开始输入,这花了整整一堂课的时间来完成基本的设置步骤。

使用MATLAB,学生可以直接进入;他们在命令窗口中输入命令并立即看到结果。没有任何恐吓。对于初学编程的学生来说,这比其他语言所要求的编辑-编译-执行-调试周期要简单得多,也更有动力。

第一堂课不再讨论如何使用开发环境,现在我可以介绍赋值语句、变量、表达式、操作符、优先级和向量。

当学生能以新的方式想象结果时,他们也会受到激励。我在学期的早些时候讲过MATLAB绘图,因为使用a-循环来创建图形和图表对学生来说比反复打印字符串有趣得多。

课程结构

课程是根据我的书,MATLAB:编程和解决问题的实用入门。它包括每周两次一小时的讲座,每次讲座之后在计算机实验室进行一个半小时的学习。每周结束时的一小时非正式讨论为学生提问提供了更多机会。

在讲座中,我重复五到十分钟的演讲过程,用MATLAB展示一个例子,然后给学生一个问题来解决。过去的课程是在计算机实验室里进行的,学生们直接在MATLAB中解决问题。然而,我发现,当他们通过用笔和纸来思考问题而不是立即去编码时,他们学得更好。(出于同样的原因,测试采用书面问答形式,而不是在MATLAB中进行。)在每堂课之后,他们在实验室中使用MATLAB解决更高级的问题,这使他们有机会立即应用他们刚刚学到的抽象概念。

学生在课程中以两人一组或三人一组的方式完成三个项目。这些项目比我在实验课程中给出的更复杂,旨在让学生了解各种工程学科如何使用MATLAB来解决实际问题。每学期,我通常会在每个工程学院的项目中加入一个项目。最近的项目包括用于涡轮叶片质量控制的图像处理、图像差异检测、指纹识别、热传递应用的有限差异以及用于癌症检测的弹性散射光谱。

超越基本编程概念

MATLAB对学生来说是如此容易使用和学习,我可以涵盖所有的基本编程概念,我们曾经覆盖使用其他平台加上大量的数学和基本的问题解决,包括介绍线性代数,曲线拟合和统计分析。

MATLAB也使我能够尝试新的教学方法。例如,在暑期班,学生们使用乐高®MINDTORMS®NXT系统和MATLAB来制造机器人并对它们进行编程,让它们通过障碍赛道。最近,我们在风洞中搭建了一台台式风力发电机,并使用MATLAB进行数据收集和分析,进行曲线拟合,计算发电量,并进行仿真。

积极的反馈

在与大二和大三的学生的公开会议上,我们一遍又一遍地听到他们对在BU的第一年学习MATLAB感到多么高兴。我听到的都是工程学院对这门课的积极评价。我正在与几位教授合作,进一步将MATLAB整合到工程课程中。例如,我们计划在线性代数和工程力学课程中更广泛地使用它。

在我听到的唯一的抱怨中,有一些来自高年级的学生,他们参加了c++版本的课程,并希望他们有机会学习MATLAB(然后以广受欢迎的周六教程的形式提供给他们)。

用MATLAB教授编程概念产生了一些我们想象不到的优点,也产生了一些我们没有想到的优点。我们期望可视化的、交互式的MATLAB环境能够吸引学生,帮助他们学习新的概念。事实证明,MATLAB也让他们对这些概念有了更全面的理解。例如,许多学生通常很难理解嵌套循环的概念。当我们得到矩阵运算时,我通过浏览MATLAB文件来展示这些是如何在MATLAB中实现的。学生们会确切地看到嵌套循环是如何工作的以及它们为什么工作。许多人都很惊讶,一个起初很难的概念现在对他们来说如此简单。

在工程教师中有一个普遍的误解,认为用MATLAB教授计算课程意味着放弃编程概念。这根本不是真的。我们在波士顿大学已经证明,您可以在用户友好的MATLAB环境中传授编程技能、高效编码和基本问题解决方法。

作者简介

Stormy Attaway博士是波士顿大学工程学院的助理教授和课程评估与改进主任。他持有University of South Carolina的地质学学士学位、Boston University的计算机科学硕士学位和跨学科的计算机科学、应用数学和工程博士学位。她是这本被广泛使用的教科书的作者MATLAB:编程和解决问题的实用入门

出版2010 - 91847v00

下载188bet金宝搏产品使用