技术文章及通讯

用MATLAB和MOOC向各地学生教授计算机编程

作者:迈克·菲茨帕特里克(Mike Fitzpatrick),范德堡大学(Vanderbilt University) Ákos Lédeczi


几年前,我们写了一篇文章,用MATLAB和电子书向一年级工程学生教授计算机编程,讲述了我们在范德堡大学(Vanderbilt University)的编程入门课程CS 103的故事。该球场现已更名为CS 1103,规模已扩大了一倍。随着越来越多的学生认识到编程是一项重要的工作技能,编程的受欢迎程度也在不断增长。

基于我们在范德比尔特大学课程的成功,我们决定创建一个大规模开放在线课程(MOOC),让所有人都能免费获得这些材料。我们将MOOC命名为MOOCMATLAB编程入门.虽然我们预计它的受众会超过范德堡大学每年注册的300名学生,但参与大规模在线开放课程的人数超出了我们最大胆的预期。

在第一年开设的三期课程中,有8万多名注册学生观看讲座的次数超过200万次,提交了10万多套习题集用于评分。在注册的学生中,通过习题集的及格成绩来完成课程的人数大约是过去15年在范德堡大学完成课程的总人数的两倍。根据“班级中心”(Class Central)的说法,“班级中心”是MOOC列表和学生评论的管理者,MATLAB编程入门在2015年最佳在线课程排行榜上排名第二,在该网站有史以来评出的6000门慕课中排名第五。

为什么要用MATLAB教授计算机编程?

MATLAB编程入门是一门大学水平的入门课程,教学生如何应用计算机科学的原理、词汇和结构,用MATLAB解决科学和工程问题®

许多涉及入门编程的慕课使用通用语言,如c++、Java®,以及Python®.我们决定使用MATLAB,因为它是通用的,容易学习。此外,该语言的设计使得用几行代码就可以编写出功能强大的程序(图1)。虽然问题可能相对复杂,但解决这些问题的MATLAB程序要比用通用语言编写的等效程序简单得多。最后但并非最不重要的是,MATLAB在广泛的领域中使用,包括自然科学和金融,以及工程,并且在工业中大量使用。许多学生被我们的慕课所吸引,仅仅是因为它使用了MATLAB。

图1所示。在MATLAB中绘图的视频讲座,演示如何创建一个螺旋的3D绘图,只需两行MATLAB代码。

图1所示。在MATLAB中绘图的视频讲座,演示如何创建一个螺旋的3D绘图,只需两行MATLAB代码。

制作视频讲座

该课程提供了超过40个视频课程,涵盖矩阵和操作符、函数、绘图和调试、选择(条件语句)、循环、数据类型和文件输入/输出。根据主题的不同,讲座的长度从几分钟到将近一个小时不等。在那些讲座中,我们鼓励学生查阅MOOC课程的电子书,并强调学生学习编程最好的方式是做而不是看。尽管如此,我们还是花了相当多的时间制作视频,因为我们希望讲座尽可能吸引人,信息量大。

我们依靠多年在课堂上教授这类材料的经验,克服了所有教育工作者在制作教学视频时面临的挑战:即,我们不了解我们的观众,我们不能在教学时观察他们的反应,我们在讲座中得不到即时反馈。此外,我们必须考虑到我们的目标受众的多样性,不仅包括大学生,还包括中学生和大学毕业生。

在视频中,我们慢慢地学习课程材料,尽可能清晰地表达观点(图2)。我们还加入了幽默,希望为讲座增添活力。事实证明,这本身就是一个挑战:当你不知道观众是否会笑的时候,在无声的演播室里对着摄像机讲笑话需要勇气。值得庆幸的是,在这方面的反馈一致是积极的。下面这些评论很典型:“我喜欢他的幽默感。”“他也很有趣,让你很有兴趣。“老师很幽默,这让我一直微笑着,很享受这门课!”至少他们在微笑!

图2。Fitzpatrick教授在MATLAB中进行了关于数据类型的视频讲座。

图2。Fitzpatrick教授在MATLAB中进行了关于数据类型的视频讲座。

事实上,这些视频总体上受到了学生们的好评。一位学生总结了许多学生的共同主题,他说:“我很欣赏这些视频看起来干净、流畅和专业,非常感谢你们的解释非常透彻和清楚……每个视频对我来说都有一个‘顿悟时刻’。对于科学家来说,顿悟的时刻很少,这对我来说意义重大。”

开发作业和自动评分器

每个系列的特定主题的视频讲座之后都有评分作业。一共有六项作业,每项作业有八个问题,学生们必须通过编写MATLAB程序来解决。随着课程的推进,作业变得更具挑战性。例如,在最后一组中,学生被要求编写一个将罗马数字转换为阿拉伯数字的函数和另一个计算保龄球分数的函数。

我们很早就意识到,成千上万的学生提交了成千上万的问题集,手动评分所有的作业是不可能的。为了解决这一挑战,我们在MATLAB中开发了一个自动评分器,一旦学生准备测试完成的作业,它就会提供即时反馈。作业可以直接在MATLAB中完成,也可以通过使用MATLAB Online的web浏览器完成。对于每个作业,学生写一个MATLAB函数来解决一个问题。

在MATLAB中开发函数后,学生用自动评分器检查每个函数,自动评分器检查函数的输出以获得一系列输入。除了测试学生解决方案的功能外,评分员还确保学生在编写解决方案时遵守一定的限制。例如,在逻辑索引分配中,我们不允许使用循环。评分器扫描提交的代码以执行这些规则。

就像学生对视频讲座的反馈一样,对作业和评分系统的反应也一致积极。正如一个学生所说,“作业很好地测试了一个人对学科的理解。”另一位评论道:“作业是这门课最好的部分。作业详细、精确、有挑战性,足以让你自己印象深刻。”

自2016年初,Fitzpatrick博士和Ledeczi博士采用MATLAB Online作为他们的MOOC平台。

“我喜欢MATLAB在线,”菲茨帕特里克博士说。“这是我25年前开始使用MATLAB以来看到的最令人兴奋的补充。它为我提供了我在研究工作中所依赖的同样强大的功能,而我们MOOC的学生几乎可以立即获得同样的功能。你所需要的只是一个网络浏览器和登录,在不到一分钟的时间里,你就可以使用最新版本的MATLAB进行云计算。”

建立在线社区

MOOC成功的最后一个关键因素是,随着课程的发展,由学生和志愿者组成的在线社区走到了一起。我们MOOC的Coursera论坛上有关于课程材料和习题集的生动讨论。三个社区助教(在Coursera上被称为导师)承担起了全天回答学生问题的责任,并自愿帮助测试和改进自动评分器。最忙碌的导师每人在论坛上发表了1000多篇帖子。两位MathWorks工程师还定期查看论坛,并回答有关MATLAB安装和MATLAB环境使用的问题。

我们每天都查看论坛,但经常发现当天所有学生的问题都已经被同学、导师或MathWorks工程师回答了。我们对这个在线社区的反应、耐心和慷慨感到惊讶。

下一个步骤

目前,我们已经连续第二年举办MOOC课程了。我们更新了一些课程,并开发了一套全新的作业。有几个去年修完这门课的学生告诉我们,他们今年又要修这门课,因为他们想要挑战和做新习题集的乐趣。

在听到这么多学生告诉我们,他们对MOOC帮助他们实现目标的方式感到多么高兴之后,在注意到我们的MOOC在2015年排名第二,仅次于排名第一的MOOC之后,幸福充实的生活,我们想对我们的课程做最后的修改:把它的名字改为幸福与实现编程MATLAB!

确认

我们要感谢我们奉献和不知疲倦的课程导师,Brandon Armstrong, Kate Brady, Lee Lafferty, Aatish Kumar, Réal Labrie, Paul Mielke和Matt Tearle。我们感谢MathWorks提供的学生许可证和经济支持,感谢范德比尔特数字学习研究所(VIDL)提供的视频制作和其他后勤帮助。金宝app

作者简介

迈克·菲茨帕特里克(Mike Fitzpatrick)是范德堡大学(Vanderbilt University)计算机科学荣誉教授。他在大学任教35年,教授计算机科学29年,用MATLAB教授计算机编程11年之后,于2011年退休。他拥有北卡罗来纳大学教堂山分校的物理学学士学位和计算机科学硕士学位,以及佛罗里达州立大学的物理学博士学位。他在计算机辅助手术研究中使用MATLAB已有20多年。

Ákos Lédeczi是范德比尔特大学计算机工程教授和计算机科学研究生院主任,在那里他已经用MATLAB教授计算机编程八年了。他拥有布达佩斯技术大学电气工程硕士学位和范德比尔特大学电气工程博士学位。主要研究方向为模型集成计算和无线传感器网络。

发布日期:2016年9月19日

查看相关功能的文章