技术文章和通讯

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

迈克·菲茨帕特里克(Mike Fitzpatrick)和Ákos Lédeczi,范德比尔特大学(Vanderbilt University)


几年前,我们写了一篇文章用MATLAB和电子书向一年级工程学生教授计算机编程,讲述了我们在范德比尔特大学(Vanderbilt University)的编程入门课程cs103的故事。这门课程现在改名为cs1103,规模也翻了一番。随着越来越多的学生认识到编程是一项重要的工作技能,它的受欢迎程度继续增长。

鉴于我们在范德比尔特大学的成功,我们决定通过创建大规模在线开放课程(MOOC),让所有人都可以免费获得这些材料。我们给MOOC命名用MATLAB编程入门.虽然我们预计它的受众会超过范德比尔特大学每年注册的300名学生,但参与MOOC的人数已经超出了我们最疯狂的预期。

在第一年提供的三节课中,有超过8万名注册学生观看了200多万次讲座,提交了10万多套习题供评分。在注册的学生中,通过习题集及格而完成课程的人数大约是过去15年在范德比尔特完成课程的总人数的两倍。MOOC目录和学生评论的管理者Class Central表示,用MATLAB编程入门在2015年最佳在线课程排行榜上排名第二,在该网站评出的6000个mooc中排名第五。

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

用MATLAB编程入门是一门介绍性的大学水平课程,教授学生如何应用计算机科学的原理、词汇和结构来用MATLAB®

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

图1所示。这是一个关于在MATLAB中绘图的视频讲座,演示了如何用两行MATLAB代码创建一个螺旋的3D绘图。

创建视频讲座

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

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

在视频中,我们缓慢地浏览课程材料,并尽可能清晰地展示想法(图2)。我们还加入了幽默,希望为讲座增添生活气息。事实证明,这本身就是一个挑战:当你不知道观众是否会笑时,在一个安静的演播室里对着摄像机讲笑话需要勇气。值得庆幸的是,这方面的反馈都是积极的。这些评论很典型:“我喜欢他的幽默感。”“他也很有趣,能使你全神贯注。“老师很幽默,让我保持微笑,享受课程!”至少他们在微笑!

图2。菲茨帕特里克教授正在做关于MATLAB数据类型的视频讲座。

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

开发作业和自动评分系统

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

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

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

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

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

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

建立在线社区

MOOC成功的最后一个关键因素是学生和志愿者的在线社区,他们随着课程的进行而聚集在一起。我们MOOC的Coursera论坛就课程材料和习题进行了热烈的讨论。三个社区助教(在Coursera上被称为导师)负责全天回答学生的问题,并自愿帮助测试和完善自动评分系统。最忙的导师每人在论坛上发表了1000多条帖子。两名MathWorks工程师还定期查看论坛,并回答了关于MATLAB安装和使用MATLAB环境的问题。

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

下一个步骤

目前,我们已经连续第二年开办MOOC课程。我们更新了一些课程,制定了一套全新的作业。一些去年修完这门课的学生告诉我们,他们今年又要修这门课了,因为他们想要挑战和享受做新作业的乐趣。

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

确认

我们要感谢我们奉献和不知疲倦的课程导师,Brandon Armstrong, Kate Brady, Lee Lafferty, Aatish Kumar, Réal Labrie, Paul Mielke和Matt Tearle。我们感谢MathWorks提供的学生许可和资金支持,感谢Vanderbilt Institute for Digital Learning (VID金宝appL)提供的视频制作和其他后勤帮助。

关于作者

迈克·菲茨帕特里克是范德比尔特大学计算机科学荣誉退休教授。他在大学任教35年,教授计算机科学29年,用MATLAB教授计算机编程11年之后,于2011年退休。他持有the University of North Carolina at Chapel Hill的物理学学士学位和计算机科学硕士学位,以及the Florida State University的物理学博士学位。他在计算机辅助手术研究中使用MATLAB已有20多年。

Ákos Lédeczi是范德比尔特大学(Vanderbilt University)计算机工程教授和计算机科学研究生研究主任,他在那里用MATLAB教授计算机编程已有8年时间。他持有the Technical University of Budapest的电气工程硕士学位,以及Vanderbilt University的电气工程博士学位。他的研究兴趣包括模型集成计算和无线传感器网络。

发布于2016 - 93056v00

查看相关功能的文章